2014-11-18 2 views
0

numpy를 사용하여 로그 로그 데이터의 선형 회귀를 찾는 가장 좋은 방법은 무엇입니까? 내가 데이터를 플롯 및numpy 로그 로그 선형 회귀

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는 데이터 목록이

을하려고 할 때, 이것은 분명히 잘못된 결과입니다 : enter image description here

답변

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')