検査していない表を信じない
回帰の要約表は常に説得力があるように見えますが、statsmodels にはそれを検査する道具があります。分散拡大係数 variance_inflation_factor(matrix, i) は、ある説明変数が他の変数でどれだけ説明されるかを測り、1/(1-Rⱼ²) に等しく、5〜10を超えると係数が不安定です。行列には定数列を含める必要があり、最初の説明変数は位置1になります。durbin_watson(resid) は誤差が無相関なら2付近、連続しているなら0付近です。het_breuschpagan(resid, exog) は4つの数を返し、2番目が誤差分散が一定という検定のp値です。jarque_bera(resid) は統計量・p値・歪度・尖度を返し、acorr_ljungbox(resid, lags=[12]) は列 lb_pvalue を持つDataFrameを返します。どれもp値が小さければ警告です。
さらに2つの検査で一式がそろいます。クック距離 res.get_influence().cooks_distance[0] は、その観測を除いたら当てはめがどれだけ動くかで各観測を採点するので、値の大きい月が結果を左右しています。そして見せかけの回帰が古典的な罠です。Home Depotの対数価格をLowe'sの対数価格に回帰すると、R²=0.93、ダービン・ワトソン統計量 0.002 になります。トレンドのある2系列は常に関係があるように見えるからです。R² が高くダービン・ワトソンがゼロ近くなら、ランダムウォーク同士を回帰した印です。Appleの3ファクター回帰(258か月)では、ファクターのVIFは1.13、1.13、1.02、ダービン・ワトソンは1.94、ブルーシュ・ペーガンのp値は0.21、ジャルク・ベラのp値は0.015です。市場ファクターの隣にSPYを加えるとVIFは186と177になり、最も影響の大きい月は2008年9月、2022年1月、2008年10月です。
- 心配ごとに1つの数:コピーにはVIF、記憶にはダービン・ワトソンとリュング・ボックス、ばらつきにはブルーシュ・ペーガン、形にはジャルク・ベラ、個々の月にはクック距離。
- 定数列に注意:VIFには定数列を含む行列が必要で、説明変数は位置1から始まる。
- 高いR²だけでは何も証明されない:トレンドのある2つの価格は見事に回帰でき、ダービン・ワトソン統計量が罠を暴く。
ラボ:採点される内容
- 配列APIでのOLS10点
- 分散拡大係数20点
- 4つの残差検定20点
- 影響力の大きい月15点
- 見せかけの回帰15点
- 診断全体20点