ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

クックの距離

目的

クックの距離は近似値におけるスケーリングされた変化であり、X の値 (予測子変数に対する観測値) から外れ値を特定する場合に便利です。クックの距離は、近似応答値に対する各観測値の影響を示します。平均のクックの距離の 3 倍を超える観測は外れ値の可能性があります。

定義

クックの距離 D の各要素は、観測値の削除による近似応答値の変化を正規化した値です。観測値 i のクックの距離は次のようになります。

Di=j=1n(y^jy^j(i))2pMSE,

ここで、

  • y^j は、j 番目の近似応答値です。

  • y^j(i) は、i 番目の観測値を除いて近似した j 番目の応答値です。

  • MSE は、平均二乗誤差です。

  • p は回帰モデルの係数の数です。

クックの距離は代数的には次の式と等価です。

Di=ri2pMSE(hii(1hii)2),

ここで ri は i 番目の残差、hii は i 番目のてこ比値です。

使用方法

たとえばモデル mdl をあてはめた後で、fitlm または stepwiselm を使用して以下を行うことができます。

  • ドット表記でプロパティのインデックスを指定して、クックの距離の値を表示する。

    mdl.Diagnostics.CooksDistance
    CooksDistance は、LinearModel オブジェクトの Diagnostics テーブル内の n 行 1 列のベクトルです。

  • クックの距離の値をプロットする。

    plotDiagnostics(mdl,'cookd')
    詳細については、LinearModel オブジェクトの関数 plotDiagnostics を参照してください。

クックの距離を使用した外れ値の決定

この例では、クックの距離を使用してデータの外れ値を決定する方法を説明します。

標本データを読み込み、独立変数と応答変数を定義します。

load hospital
X = double(hospital(:,2:5));
y = hospital.BloodPressure(:,1);

線形回帰モデルをあてはめます。

mdl = fitlm(X,y);

クックの距離の値をプロットします。

plotDiagnostics(mdl,'cookd')

図の破線は推奨されるしきい値 3*mean(mdl.Diagnostics.CooksDistance) を表します。このプロットでは、一部の観測でクックの距離の値がしきい値 (この例では 3*(0.0108) = 0.0324) を超えています。特に、2 つのクックの距離の値が、しきい値を超えている他のデータと比べて高くなっています。これらの値を特定してデータから削除し、モデルのリビルドが必要な場合もあります。

しきい値を超えているクックの距離の値をもつ観測を特定します。

find((mdl.Diagnostics.CooksDistance)>3*mean(mdl.Diagnostics.CooksDistance))
ans = 10×1

     2
    13
    28
    44
    58
    70
    71
    84
    93
    95

クックの距離の値を含む観測でしきい値を超えている中から、クックの距離の値が他と比べて高い観測を特定します。

find((mdl.Diagnostics.CooksDistance)>5*mean(mdl.Diagnostics.CooksDistance))
ans = 2×1

     2
    84

参照

[1] Neter, J., M. H. Kutner, C. J. Nachtsheim, and W. Wasserman. Applied Linear Statistical Models. 4th ed. Chicago: Irwin, 1996.

参考

| | |

関連するトピック