2016-09-26 3 views
0

나는 StatsModels에서 다음 OLS 모델이 있습니다StatsModels 예측 함수로 전달되는 첫 번째 값은 무엇입니까?

results.predict([1,4]) 

내가 돈 ': 4의 X 값에 대한 새로운 Y 값을 예측하려고 할 때

X = df['Grade'] 
y = df['Results'] 

X = statsmodels.tools.tools.add_constant(X) 

mod = sm.OLS(y,X) 
results = mod.fit() 

, 나는 다음과 같은 통과해야을 첫 번째 값이 '1'인 배열을 예측 함수가 올바르게 작동시키기 위해 전달해야하는 이유를 이해해야합니다. 왜 그냥 말하는 대신에 1을 넣어야합니까?

results.predict([4]) 

여기서의 개념은 분명하지 않습니다. 아무도 무슨 일이 일어나는지 알아?

+0

코드를 results.predict ([1,4])로 실행할 때 나타나는 오류 메시지를 제공해주십시오. –

+0

results.predict9 [1,4]와 올바르게 작동합니다. results.predict ([4])를 실행하면 다음 오류 메시지가 나타납니다. ValueError : 모양 (1,1) 및 (2) 정렬되지 않음 : 1 (dim 1)! = 2 (dim 0) '1'의 의미는 무엇입니까? 첫 번째 값으로 '0'을 전달하면 다른 숫자가 예측됩니다. – user3294779

답변

1

회귀 방정식에 X = statsmodels.tools.tools.add_constant(X)이라는 상수를 추가합니다. 따라서 회귀 X는 두 개의 열을가집니다. 첫 번째 열은 열의 배열입니다.

예측에 사용 된 회귀 분석기와 동일한 작업을 수행해야합니다. 따라서, 1 수단은 예측에 상수를 포함합니다. 대신에 0을 사용하면 상수 (0 * params[0])의 기여도는 0이고 예측은 기울기 효과 만입니다.

수식 인터페이스는 모델의 회귀 변수와 예측의 회귀 변수 모두에 대해 상수를 자동으로 추가합니다. 그러나 팬더 DataFrame 또는 numpy ndarray 인터페이스에서는 모델 및 예측 모두에 대해 상수를 사용자가 추가해야합니다.

+0

Brilliant. 고맙습니다! – user3294779

관련 문제