ディッキー・フラー検定(DF検定)
ディッキー・フラー検定(DF検定)とは?
ディッキー・フラー検定(DF検定)は、時系列データがどのような統計的性質を持っているかを調べるためのツールです。この検定の目的は、時系列データが時間とともにその特性が変化するか(非定常)、それとも基本的に一定の状態を保つか(定常)を見分けることです。
この記事では、ディッキー・フラー検定を発展させた拡張ディッキー・フラー検定(ADF検定)を実際に行ってみたいと思います。
ライブラリのインポート
import numpy as np
import pandas as pd
from statsmodels.tsa.stattools import adfuller
データセットの生成
np.random.seed(0)
n_samples = 100
x = np.random.normal(0, 1, n_samples).cumsum()
numpyを使ってランダムウォークのデータを生成しています。
正規分布からランダムに生成された値を累積しているため、生成されるデータはランダムウォークの形をしています。ランダムウォークは一般的に非定常な時系列とされます。
ADF検定
result = adfuller(x)
print("ADF Statistic:", result[0])
print("p-value:", result[1])
print("Critical Values:")
for key, value in result[4].items():
print(f'\t{key}: {value}')
それではADF検定を行なってみます。ADF検定にはstatsmodelsライブラリのadfullerを利用します。
またadfullerの返却値として、ADF統計量 (ADF Statistic)、p値、臨界値 (Critical Values)を表示しています。
結果は下記の通りとなりました。
ADF統計量 (ADF Statistic)
ADF統計量は、時系列データが単位根を持つ(非定常である)かどうかをテストするために使用されます。この値がより小さい(負の値が大きい)ほど、データが定常である可能性が高いことを示します。
臨界値 (Critical Values)
臨界値は、ADF検定で用いられる特定の信頼水準(通常は1%、5%、10%)に基づいています。これらの値は、ADF統計量がこれらの臨界値以下であれば、帰無仮説を棄却するためのしきい値として機能します。
今回の結果を見てみると、ADF統計量がどの信頼水準の臨界値も下回っておらず、p値が非常に高いため、データは非定常であると言えそうです。