2016-05-02 15 views
2

私はstatsmodelsでADFテストでmaxlagを設定しようとしましたが、テストで使用されているラグの数は私が設定したものではありません。それはほとんど常に小さいです。ここに私が意味するものの小さな例があります。pythonの統計モデルを使ったADFテスト用にmaxlagを設定していませんか?

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) 

maxlagは1に設定されていますが、結果として、最大ラグは結果の3番目のエントリに対応する0です。

誰もがなぜこれが起こっているのか、おそらくこれを修正する方法を説明できますか?

答えて

1

maxlagパラメータは最大パラメータです。adfullerが試行されますが、必ずしも使用する必要はありません。指定されていない場合は、[ceil(12 *(n/100)^(1/4)]]を計算することによってmaxparを決定するので、より長いデータセットの場合、より高い順位のラグが存在する可能性があるここに)。

次に、情報基準を使用して、どのラグが最良のモデルを与えるかを決定します。情報基準は、モデルの複雑さを最小限に抑えながらバランスを試してみます。アドラー関数のautolagパラメータを使用して、どのモデルがベストであるかを判断するアルゴリズムを指定できます。デフォルトは赤池の情報基準です。

指定した「maxlag」を使用するように強制する場合は、autolag=Noneを使用して最適なモデルの決定をオフにする必要があります。これをやりたいですか?

関連する問題