株価はランダムウォークでしょうか?
多くの株価は(ドリフトを伴うこともありますが)ランダムウォークに従います。ここでは、DataFrame AMZN に読み込まれている Amazon の株価時系列を用いて、statsmodels ライブラリの「拡張Dickey-Fuller検定(Augmented Dickey-Fuller Test)」を実行し、実際にランダムウォークに従っていることを確認します。
ADF検定では、「帰無仮説」(棄却するか、棄却しないかを判断する仮説)は、その系列がランダムウォークに従うことです。したがって、p値が小さい(例えば 5% 未満)場合は、その系列がランダムウォークであるという帰無仮説を棄却できます。
この演習はコースの一部です
Pythonで学ぶ時系列解析
演習の手順
- statsmodels から
adfullerモジュールをインポートします。 - 終値の時系列(
AMZNDataFrame の列'Adj Close')に対して拡張Dickey-Fuller検定を実行します。 - 検定統計量、p値、そして 1%、5%、10% 水準での臨界値を含む結果全体を表示します。
- 検定の p値だけを表示します(
results[0]は検定統計量、results[1]が p値です)。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the adfuller module from statsmodels
from statsmodels.tsa.stattools import adfuller
# Run the ADF test on the price series and print out the results
results = adfuller(___)
print(results)
# Just print out the p-value
print('The p-value of the test on prices is: ' + str(results[___]))