日次リターンの一つのモデル
どのリスク数値も日次リターンのモデルから始まります。最も単純なモデルは、標本の平均と標準偏差をもつ正規分布です。スチューデントのtモデルは数をひとつ加え、自由度 ν です。ν が小さいと裾が厚く、ν が大きいとt分布は正規分布に近づきます。scipy.stats はどの分布にも同じ4つのメソッドを用意しています。fit は最尤法でパラメータを求め、logpdf は密度の対数、cdf はある値を下回る確率、ppf はその逆、つまり分位点です。一度覚えれば、SciPyのどの分布も同じように使えるので、モデルの変更は単語ひとつの書き換えです。
モデルを選ぶには、点数とテストが必要です。対数尤度 log L=Σᵢlog f(rᵢ) は標本全体がモデルのもとでどれだけ起こりやすいかを足し合わせたもので、赤池情報量規準 AIC=2k-2log L(k は当てはめたパラメータ数)はパラメータを増やすごとに代償を課します。小さいほど良い値です。コルモゴロフ–スミルノフ検定は、標本の累積曲線とモデルの累積曲線の最大の隔たりを測ります。stats.kstest(r, dist.cdf, args=params) がp値とともに返し、p値が極端に小さければ、標本はそのモデルからの抽出には見えないということです。パラメータを同じ標本で当てはめているのでp値は甘めに出るため、最終判断でなくモデル同士の比較に使います。最後にモデルはリスク数値になります。1日のVaRは分位点にマイナスを付けた -dist.ppf(alpha, *params)、悪い日の期待日数は標本数に dist.cdf(-level, *params) を掛けたものです。
実データが語ることSPYには2016年9月から2026年8月まで2,500個の日次リターンがあります。スチューデントt分布の当てはめは ν≈2.6 と非常に厚い裾を示し、AICは正規分布より867小さくなります。KS検定は正規分布を棄却します(p値は約 10⁻²⁵)が、t分布は棄却しません(0.19)。1%のVaRは正規分布で 2.57%、t分布で 3.12% です。5%超下落した日は6日あり、正規分布が10年間に期待するのは 0.01 日、tモデルは 7.9 日です。3%超では32日に対し、正規分布は 8.6、tは 27 です。
- どこでも同じ4つのメソッド:
fit、logpdf、cdf、ppfはscipy.statsのどの分布でも使え、モデルは入れ替え可能です。 - 点数をつけてからテスト:AICはパラメータに代償を課してモデルを比べ、KS検定は標本がそもそもそのモデルから来うるかを問います。
- 裾の日数がモデルを暴く:-5%を下回った日を数えて
n * cdfと比べると、正規分布は数百倍も外れます。
ラボ:採点される内容
- 1列の日次リターン10点
- 2つの当てはめモデル15点
- 対数尤度10点
- AICでモデルを比べる10点
- コルモゴロフ–スミルノフのp値15点
- 分位点からのVaR10点
- 極端な日の観測数と期待数10点
- 研究全体20点