2014-11-18 19 views
1

xy 데이터의 간단한 테스트 세트에서 statsmodels의 강력한 선형 모델을 사용하려고합니다. 그러나 model.params를 사용하는 반환 값으로는 단 하나의 값만 가져옵니다. 어떻게 기울기를 얻고 적응을 가로막을 수 있습니까? 최소한의 예 (이 나는 따라서 RLM, 적합성에서 이상 치를 제외하기 위해 노력하고있어) :파이썬 statsmodels 반환 값이 누락되었습니다.

import statsmodels.api as sm 
a = np.array([1,2,3,4,5,6,7,8,9]) 
b = 2. * np.array([1,2,9,4,5,6,7,13,9]) 
model = sm.RLM(b, a, M=sm.robust.norms.HuberT()).fit() 
model.params 

마지막 줄은 array([2.])를 반환합니다. 나는 같은 패키지에서 같은 물건을 시험해 보았다. 그것은 나에게 절편과 경사를 준다.

답변

2

배열을 사용하는 경우 statsmodels에서 자동으로 상수 또는 절편을 추가하지 않습니다. 상수를 추가하는 헬퍼 함수 add_constant가 있습니다. 일정한

>>> a2 = sm.add_constant(a) 
>>> model = sm.RLM(b, a2, M=sm.robust.norms.HuberT()).fit() 
>>> model.params 
array([ 2.85893087e-10, 2.00000000e+00]) 
>>> print model.summary() 
... 

이와

>>> import statsmodels.api as sm 
>>> a = np.array([1,2,3,4,5,6,7,8,9]) 
>>> b = 2. * np.array([1,2,9,4,5,6,7,13,9]) 
>>> model = sm.RLM(b, a, M=sm.robust.norms.HuberT()).fit() 
>>> model.params 
array([ 2.]) 

는 상수 또는 추세에 추가 할 수 있습니다 약간의 시간 시리즈 모델을 제외한 모든 모델에 대해 동일합니다.

수식 인터페이스에는 기본적으로 상수가 추가됩니다.

+0

수식 인터페이스 란 무엇입니까? –

+1

http://www.statsmodels.org/dev/examples/notebooks/generated/formulas.html 대부분의 모델에는 endog 및 exog 배열을 직접 지정하는 대신 문자열 "수식"과 데이터 프레임을 허용하는 from_formula 메서드가 있습니다. – user333700