はじめに
統計検定を勉強していると突然でてくる「Cookの距離」。そうゆうものね、と使い方だけ理解して読み飛ばせばよいだろうと普通は思うところですが、、、すこし疑問に感じてしまって調べてみたのですがあまり記事がない。ということで、せっかくなので記事に残しておこうと思います。あまりニーズはないかもしれませんが、興味もっていただける方がいらっしゃいましたら「いいね」をいただけると励みになります。
Cookの距離とは
統計学における回帰分析で使用される診断手法の1つで、データセット内の各観測値が、モデルに与える影響の大きさをを測定するために使われます。
Cookの距離を用いることで、データセット内の影響力の大きな点を識別し、データのクリーニングやモデルの改善を行います。ただし、複数の予測変数を持つ複雑なモデルで有用と言われています(単純なモデルでは、他の方法で外れ値を特定する方が簡単かもしれません)。
また、一般的に、0.5や1といった閾値以上の観測値が影響力が大きく、外れ値とされることが多いですが、実際にはデータのコンテキストと分析の目的に基づいて決定されるべきとされています。
具体的には
ある観測値が除外された場合に、推定される回帰線がどの程度変化するかを示します。
てこ比:$h_{ii}$、標準化残差:$t_i$、観測データ数:$n$ とした時のCookの距離 $D_i$ は、
D_i= \frac{t_i^2}{p}\bigl( \frac{h_{ii}}{1-h_{ii}} \bigr)
Cook本人が書いた記事がこちら
『Technometrics』という、米国品質協会と米国統計協会によって 1959 年以来四半期ごとに発行されている物理、化学、および工学科学の統計ジャーナル Vol. 19, No. 1 (Feb., 1977)掲載記事。
Cookの距離はどのように考えられたものなのか
ここがこの記事のオリジナル部分です。実際にどのような考えのもとCookの距離が考えられたのかをCookが書いた記事をもとに記載していきたいと思います。
- $Y:観測値(n×1ベクトル)$
- $X:説明変数(n×pのフルランクベクトル)$
- $\beta:パラメータ(p×1ベクトル)$
- $e:誤差(n×1ベクトル)$
このとき、Y=X\beta+e
- $ここで最小二乗推定量 \hat{\beta} は 、\hat{\beta}=(X^TX)^{-1}X^TY$
- $対応する残差ベクトル R は、 R=Y-\hat{Y}=Y-X\hat{\beta}=(I-X(X^TX)^{-1}X^T)Y$
- $Yの共分散行列 V(\hat{Y})は、V(\hat{Y})=X(X^TX)^{-1}X^T\sigma^2$
- $Rの共分散行列 V(R):V(R)=(I-X(X^TX)^{-1}X^T)\sigma^2$
今回のような多変量の信頼区間を考えた場合、信頼区間は、信頼楕円体(1次元の場合の信頼区間のようなもの)となります。
この信頼楕円体の方程式は以下の通り。
\frac{(\beta^*-\hat{\beta})^TX^TX(\beta^*- \hat{\beta})}{ps^2} \leq F( p , n-p , 1-\alpha )
この左辺が、 $\beta^*$ と $\hat{\beta}$ の解釈しやすい距離を与えるというのがCookの考えです。
これに対して、$\beta^*$ に$i$番目を除いたときの $\beta$ の推定値を代入したものを$i$番目のCookの距離といい、式変更を経て以下のように表されます。
\begin{align}
t_i &= \frac{Y_i - x_i^{T} \hat{β} }{s\sqrt{1-h_{ii}}} とすると\\
D_i &= \frac{t_i^2}{p}\bigl( \frac{h_{ii}}{1-h_{ii}} \bigr)\\
\end{align}
PythonでCookの距離を計算するには
統計的モデリングに特化したライブラリである「statsmodels」を利用すれば簡単に計算することができます。なので、導出は難しくても利用するのは簡単です。
まとめ
(だいぶ途中式を省略してしまいましたが)導出を理解することで、Cookの距離がどんなものかについて理解を深めることができました。
参考