使用numpy找到loglog数据的线性回归的最佳方法是什么?当我绘制数据并尝试
时A = np.vstack([np.log10(X), np.ones(len(X))]).T
m, c = np.linalg.lstsq(A, np.log10(Y))[0]
ax.plot(X, [m*x + c for x in X], 'r')
其中X和Y是数据列表,这是结果,显然不正确:
答案 0 :(得分:1)
如果你在
上进行线性回归log10(y) = m*log10(x) + c
然后在(x,y)坐标中
y = (10**c) * x**m
也就是说,您的数据符合幂律。改变这个
ax.plot(X, [m*x + c for x in X], 'r')
到
ax.plot(X, np.power(10, c) * np.power(X, m), 'r')