2014-12-13 10 views
3

나는 라인에 일련의 점에 맞게 statsmodels의 OLS를 사용하고 있습니다 :일반 최소 제곱 회귀주는 잘못된 예측

import statsmodels.api as sm 
Y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15] 
X = [[73.759999999999991], [73.844999999999999], [73.560000000000002], 
    [73.209999999999994], [72.944999999999993], [73.430000000000007], 
    [72.950000000000003], [73.219999999999999], [72.609999999999999], 
    [74.840000000000003], [73.079999999999998], [74.125], [74.75], 
    [74.760000000000005]] 

ols = sm.OLS(Y, X) 
r = ols.fit() 
preds = r.predict() 
print preds 

그리고 나는 다음과 같은 결과를 얻을 :

[ 7.88819844 7.89728869 7.86680961 7.82937917 7.80103898 7.85290687 
    7.8015737 7.83044861 7.76521269 8.00369809 7.81547643 7.92723304 
    7.99407312 7.99514256] 

이이 약이다를 10 번이나. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 상수를 추가하려고 시도했는데, 그 값을 1000 배 더 크게 만듭니다. 통계에 대해 많이 알지 못해서 데이터와 관련이있을 수 있습니다.

+1

단지주의 사항 : 그것은 로지스틱 회귀가 아닙니다. – shadowtalker

+2

아마도 X를 Y로 표현할 수 있을까요? –

+1

모델은 종속 변수를 첫 번째 인수로 가지며 자동으로 상수를 추가하지 않습니다. 나는 당신이 'sm.OLS (X, sm.add_constant (Y)).'에 의해 정의 된 모델을 원한다고 생각한다. – user333700

답변

4

마이클 메이어 (Michael Mayer)가 자신의 의견에서 제안한 것처럼 반응과 예측기를 전환했다고 생각합니다. 당신이 당신의 모델 예측과 데이터를 플롯하는 경우는 다음과 같이 뭔가를 얻을 : 당신은 내가 당신이 원하는 생각입니다 X와 Y를 전환하면

import statsmodels.api as sm 
import numpy as np 
import matplotlib.pyplot as plt 

Y = np.array([1,2,3,4,5,6,7,8,9,11,12,13,14,15]) 
X = np.array([ 73.76 , 73.845, 73.56 , 73.21 , 72.945, 73.43 , 72.95 , 
    73.22 , 72.61 , 74.84 , 73.08 , 74.125, 74.75 , 74.76 ]) 
Design = np.column_stack((np.ones(14), X)) 
ols = sm.OLS(Y, Design).fit() 
preds = ols.predict() 

plt.plot(X, Y, 'ko') 
plt.plot(X, preds, 'k-') 
plt.show() 

enter image description here

, 당신이 얻을 :

Design2 = np.column_stack((np.ones(14), Y)) 
ols2 = sm.OLS(X, Design2).fit() 
preds2 = ols2.predict() 
print preds2 
[ 73.1386399 73.21305699 73.28747409 73.36189119 73.43630829 
    73.51072539 73.58514249 73.65955959 73.73397668 73.88281088 
    73.95722798 74.03164508 74.10606218 74.18047927] 

plt.plot(Y, X, 'ko') 
plt.plot(Y, preds2, 'k-') 
plt.show() 

enter image description here

관련 문제