回帰診断とモデル適合性検定

導入

統計分析の多くの場合、統計モデルが正しく指定されているかどうかはわかりません。たとえば、ols を使用する場合、線形性と等分散性が想定されますが、一部の検定統計では、さらに、誤差が正規分布していることや、サンプル数が多いことが想定されます。結果はこれらの統計的仮定に依存するため、結果は、仮定が成立している場合にのみ正確です (少なくとも近似的に)。

正しい仕様に関する不確実性の問題に対する 1 つの解決策は、ロバスト回帰やロバスト共分散 (サンドイッチ) 推定値などのロバストな方法を使用することです。2 番目のアプローチは、サンプルがこれらの仮定と一致しているかどうかをテストすることです。

以下では、線形回帰の仕様と診断検定を簡単にまとめます。

異分散性検定

これらの検定では、帰無仮説は、すべての観測値の誤差分散が同じである、つまり誤差が等分散であるというものです。検定は、対立仮説として考慮される異分散の種類によって異なります。また、異分散の種類によって検定の検出力も異なります。

het_breuschpagan

Breusch-Pagan によるラグランジュ乗数不均一分散性検定

het_white

ホワイト によるラグランジュ乗数不均一分散性検定

het_goldfeldquandt

2つの部分標本の分散が同じかどうかを検定する

自己相関検定

このグループの検定は、回帰残差が自己相関していないかどうかを検定します。観測値は時間順に並べられていると仮定します。

durbin_watson
  • 残差が自己相関していないかどうかを検定するダービン・ワトソン検定

  • summary() で印刷

acorr_ljungbox
  • 残差の自己相関がないかどうかを検定するリュング・ボックス検定

  • また、ボックス-ピアース統計量も返します

acorr_breusch_godfrey
  • 残差の自己相関がないかどうかを検定するBreusch-Pagan検定

欠落
  • ?

非線形性検定

linear_harvey_collier
  • 線形仕様が正しいという帰無仮説の乗数検定

acorr_linear_rainbow
  • 線形仕様が正しいという帰無仮説に対する乗数検定。

acorr_linear_lm
  • ラグランジュ乗数検定:帰無仮説は「線形仕様が正しい」という仮定。この検定は特定の関数形式の代替仮説に対して行われます。

spec_white
  • ホワイトの2次モーメント仕様検定:帰無仮説は「分散が等質(ホモスケダスティック)であり、モデルが正しく指定されている」です。

構造変化、パラメータ安定性の検定

すべての回帰係数または一部の回帰係数がデータ サンプル全体にわたって一定であるかどうかを検定します。

既知の変更点

OneWayLS :
  • 事前に定義された部分標本(例: グループ)間で回帰係数が同一であるかを検定するための柔軟なOLS(最小二乗法)ラッパー

欠落
  • 予測検定:Greene、サブサンプル内の観測数が回帰変数の数よりも少ないこと

不明な変化点

breaks_cusumolsresid
  • OLS残差に基づくパラメータ安定性のcusum検定

breaks_hansen
  • モデルの安定性の検定、OLS のパラメータのブレーク、Hansen 1992

recursive_olsresiduals

残差と cusum 検定統計量を使用して再帰 OLS を計算します。これは現在、主に再帰残差ベースの検定のヘルパー関数です。ただし、再帰更新を使用し、個別の問題を推定しないため、拡張 OLS 関数としても非常に効率的であるはずです。

欠落
  • supLM、expLM、aveLM(Andrews、Andrews/Plobergerによる)

  • Rパッケージ`structchange`には、累積和移動検定(musum: moving cumulative sum tests)も含まれています。

  • 再帰的パラメータ推定に基づく検定にはどのようなものが含まれていますか?

多重共線性検定

条件番号 (statsmodels.stattools)
  • -- ニーズ検定 vs Stata --

  • 参照:Grene(第3版)pp 57-8

numpy.linalg.cond
  • (より一般的な条件数についてですが、デザイン準備に関する後方サポートはありません)

分散インフレーション要因

これは現在、影響度および外れ値の測定と一緒に提供されています(他の検定へのリンクはこちら: http://www.stata.com/help.cgi?vif )。

正規性と分布の検定

jarque_bera
  • summary() で印刷

  • 残差の正規分布の検定

scipy stats における正規性検定

リストをもう一度探す必要がある

omni_normtest
  • 残差の正規分布の検定

  • summary() で印刷

normal_ad
  • 平均値と分散を推定した正規性のアンダーソン-ダーリング検定

kstest_normal lilliefors

Lilliefors 検定(正規性検定)は、平均と分散が推定された正規分布に基づく Kolmogorov-Smirnov 検定です。 lillieforskstest_normal の別名です

qqplot, scipy.stats.probplot

scipy.stats の分布に対するその他の適合度検定と機能強化
  • コルモゴロフ・スミルノフ

  • anderson : アンダーソン-ダーリング

  • likelihood-ratio, ...

  • カイ二乗検定、検出力の不一致:ラッピングが必要(ビニング用)

外れ値と影響の診断尺度

これらの尺度は、外れ値、大きな残差、または回帰推定に大きな影響を与える観測値を識別しようとします。ロバスト回帰 (RLM) は、外れ値ロバストな方法で推定するだけでなく、外れ値を識別するためにも使用できます。RLM の利点は、外れ値が多くても推定結果が大きな影響を受けないことです。一方、他のほとんどの尺度は、個々の外れ値を識別するのに優れていますが、外れ値のグループを識別できない可能性があります。

RLM

example_rlm.py からの例

import statsmodels.api as sm

### Example for using Huber's T norm with the default
### median absolute deviation scaling

data = sm.datasets.stackloss.load()
data.exog = sm.add_constant(data.exog)
huber_t = sm.RLM(data.endog, data.exog, M=sm.robust.norms.HuberT())
hub_results = huber_t.fit()
print(hub_results.weights)

そして、重みは、要求されたスケーリングに応じて特定の観測値がどの程度重み付け下げられるかを示します。

Influence

stats.outliers_influence モジュール内のクラスでは、外れ値や影響力に関するほとんどの標準的な指標が、フィット済みのOLSモデルに基づいてメソッドまたは属性として利用可能です。これは主にOLSのために設計されていますが、一部の指標は他のモデルにも適用可能です。ただし、すべてではありません。これらの統計量の一部はOLSの結果インスタンスから計算できますが、他の指標は各変数を除外した状態でOLSを推定する必要があります。

  • resid_press

  • resid_studentized_external

  • resid_studentized_internal

  • ess_press

  • hat_matrix_diag

  • cooks_distance -クックの距離 Wikipedia (他のリンクもいくつかあります)

  • cov_ratio

  • dfbetas

  • dffits

  • dffits_internal

  • det_cov_params_not_obsi

  • params_not_obsi

  • sigma2_not_obsi


最終更新日: 2025年01月28日