Engineering Skills

製品開発エンジニアがデータ解析のノウハウを垂れ流します

DFFITS

回帰分析の診断方法の一つに、てこ比というものがあります。これをさらに拡張するとCookの距離やDFFITSといった指標に繋がります。

Cookの距離(Cook’s distance)

Cook の距離はアメリカの統計学者 R. Dennis Cookの名にちなみます。彼は1977年にこの概念を導入しています。[1]

Cook の距離は全てデータ用いた場合と1つのデータを除いた後求めた回帰式による予測値を用いた場合との差に関する指標です。Cook の距離が大きいと、そのデータが予測値に大きな影響を与えていることになります。つまりCook の距離が大きいデータは異常値である可能性があります。一つの基準としてCook の距離が0.5以上で影響力があり、1.0以上であると異常に大きな影響力が疑われます。

[math] \displaystyle d_i =\frac {{ r }_{ i }^{ 2 }}{p+1} \left( \frac { h_{ii } }{ 1-{ h }_{ ii } } \right) [/math]

[math] \displaystyle h_{ii} [/math]はてこ比、[math] \displaystyle r_{i} [/math] は標準化残差、[math] \displaystyle p [/math]は回帰モデルのパラメータ数です。

DFFITS

Cookの距離の他、DFFITSがあります。コンセプトは同じです。DFFIT/DFFITS ("difference in fit(s)") は1980年に提案された回帰診断のメトリックです。

まず、回帰モデル予測値との残差は下記です。

[math] \displaystyle e_{i} = y_{i} - \hat{y_{i}} [/math]

次式を内的にスチューデント化された残差や標準化残差と呼びます。

[math] \displaystyle r_{i} = \frac{e_{i}}{MSE \sqrt{1-h_{ii}}} [/math]

上式では誤差変動[math] \displaystyle MSE (Mean Square Error) [/math]で割っていますが、誤差変動は全てのデータを含むので外れ値の影響を受けます。外れ値の残差は大きいため標準化残差が小さくなり外れ値の検出には不向きです。

DFFITSの計算方法に移ってみます。

[math] \displaystyle DFFIT_{i} =\hat{y_{i}} - \hat{y_{i(i)}} [/math]

ここで[math] \displaystyle \hat{y_{i}} [/math][math] \displaystyle \hat{y_{i(i)}} [/math][math] \displaystyle i [/math]番目のデータの予測値で、予測するための回帰モデル作成に[math] \displaystyle i [/math]番目のデータを含んだものと含まないものです。

各データ点毎に回帰モデルを作り直すと計算コストが高いですが、下記のような関係があります。

[math] \displaystyle DFFIT_{i} = \frac{e_{i}}{1-h_{ii}} [/math]

また[math] \displaystyle MSE_{i} [/math]をデータ[math] \displaystyle y_{i} [/math]を削除して計算した[math] \displaystyle MSE [/math]と置くと、

[math] \displaystyle MSE_{i} = (\frac{n-p}{n-p-1})MSE - \frac{{e_{i}}^2}{(n-p-1)(1-h_{ii})} [/math]

です。

そして下記を外的にスチューデント化された残差や標準化残差と呼びます。

[math] \displaystyle r_{i} = \frac{e_{i}}{MSE_{i} \sqrt{1-h_{ii}}} [/math]

[math] \displaystyle DFFITS_{i} = \frac{DFFIT_{i}}{ MSE_{i} \sqrt{1-h_{ii}}} [/math]

[math] \displaystyle DFFITS [/math]の著者は[math] \displaystyle DFFITS > 2\sqrt{\frac{p}{n}} [/math]を外れ値のチェックの基準として薦めています。

DFFITS計算例

下記では[math] \displaystyle y=x [/math][math] \displaystyle y [/math]にノイズを加えたデータに一点だけ外れ値を混ぜています。データ数を10,30,100と3通りで、回帰直線とDFFITSを計算しています。最後の観測値に外れ値を置いています。

回帰モデルのパラメータ数を[math] \displaystyle p [/math]、観測データ数を[math] \displaystyle n [/math]として、[math] \displaystyle \pm 2\sqrt{\frac{p}{n}} [/math]に赤横線を外れ値のガイドとしてプロットしています。

DFFITSの外れ値基準[math] \displaystyle \pm 2\sqrt{\frac{p}{n}} [/math]は、回帰分析の信頼限界(赤色ハッチング領域)とほぼ同じような意味を持っていることが分かります。

f:id:OceanOne:20210713015623p:plain:w350f:id:OceanOne:20210713015646p:plain:w350
Fig.1 N=10
f:id:OceanOne:20210713015805p:plain:w350f:id:OceanOne:20210713015832p:plain:w350
Fig.2 N=30
f:id:OceanOne:20210713015935p:plain:w350f:id:OceanOne:20210713015954p:plain:w350
Fig.3 N=100

まとめ

今回はDFFITSの計算方法と実装結果です。今回も、こちらのツールに実装しています。メニューバーからFile>Open File(regression)で解析できます。