如何在Python中进行幂曲线拟合?
How to do power curve fitting in Python?
有一个关于指数曲线拟合的问题,但是我没有找到任何关于如何创建幂曲线拟合的资料,像这样:
y = a*x^b
在 Excel 中有一种方法可以做到这一点,但在 Python 中是否可行?
如果你做一个简单的转换,你可以应用通常的最小二乘回归。
而不是这个等式:
y = a*x^b
两边取自然对数:
ln(y) = ln(a*x^b) = ln(a) + ln(x^b) = ln(a) + b*ln(x)
这是 [ln(x), ln(y)]
的线性方程,斜率为 b
,截距为 ln(a)
。
您可以对转换后的数据使用开箱即用的最小二乘法拟合。
只取对数:
y = ax^b
log(y) = log(a) + b*log(x)
并对 log(x)
和 log(y)
对使用线性拟合。结果在一条斜率为b
,截距为log(a)
的直线上,取指数取参数a
.
有一个关于指数曲线拟合的问题,但是我没有找到任何关于如何创建幂曲线拟合的资料,像这样:
y = a*x^b
在 Excel 中有一种方法可以做到这一点,但在 Python 中是否可行?
如果你做一个简单的转换,你可以应用通常的最小二乘回归。
而不是这个等式:
y = a*x^b
两边取自然对数:
ln(y) = ln(a*x^b) = ln(a) + ln(x^b) = ln(a) + b*ln(x)
这是 [ln(x), ln(y)]
的线性方程,斜率为 b
,截距为 ln(a)
。
您可以对转换后的数据使用开箱即用的最小二乘法拟合。
只取对数:
y = ax^b
log(y) = log(a) + b*log(x)
并对 log(x)
和 log(y)
对使用线性拟合。结果在一条斜率为b
,截距为log(a)
的直线上,取指数取参数a
.