2012-06-29 3 views
4

statsmodels에서 Python으로 Augmented Dickey-Fuller 테스트를 실행하려고하지만 뭔가 빠져있는 것처럼 보입니다.Python의 통계 모델에서 ADF 테스트

Traceback (most recent call last): 
    File "C:\Users\Akavall\Desktop\Python\Stats_models\stats_models_test.py", line 12, in <module> 
    result = ts.adfuller(x) 
    File "C:\Python27\lib\site-packages\statsmodels-0.4.1-py2.7-win32.egg\statsmodels\tsa\stattools.py", line 201, in adfuller 
    xdall = lagmat(xdiff[:,None], maxlag, trim='both', original='in') 
    File "C:\Python27\lib\site-packages\statsmodels-0.4.1-py2.7-win32.egg\statsmodels\tsa\tsatools.py", line 305, in lagmat 
    raise ValueError("maxlag should be < nobs") 
ValueError: maxlag should be < nobs 

내 NumPy와 버전 : 1.6.1 내 statsmodels 버전 : 나는 다음과 같은 오류가

import numpy as np 
import statsmodels.tsa.stattools as ts 

x = np.array([1,2,3,4,3,4,2,3]) 
result = ts.adfuller(x) 

: 0.4.1 I

내가 노력하고 코드입니다 창문을 사용하고 있습니다.

나는 here 문서를보고 있는데, 내가 잘못하고있는 것을 파악할 수 없다. 내가 뭘 놓치고 있니?

미리 감사드립니다.

답변

5

나는 그것을 알아 냈다. 기본적으로 maxlagNone으로 설정되고 정수로 설정되어야합니다. 이런 식으로 뭔가가 작동합니다

import numpy as np 
import statsmodels.tsa.stattools as ts 

x = np.array([1,2,3,4,3,4,2,3]) 
result = ts.adfuller(x, 1) # maxlag is now set to 1 

출력 :.

>>> result 
(-2.6825663173365015, 0.077103947319183241, 0, 7, {'5%': -3.4775828571428571, '1%': -4.9386902332361515, '10%': -2.8438679591836733}, 15.971188911270618) 
+6

문제는 maxlag가 없음없는 경우, 다음 adfuller는 기본 문헌에서 추천 maxlag, INT (np.ceil (12 사용한다는 것입니다 * NP .power (nobs/100., 1/4))). 작은 숫자에서는 작동하지 않습니다. grangercausalitytests https://github.com/statsmodels/statsmodels/issues/347의 최소 관측 수와 유사한 문제. – user333700

+0

@ user333700, 알 수 있습니다. 고마워. – Akavall

관련 문제