ドキュメンテーション

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

クックの距離

目的

クックの距離は X 値 (予測子変数の観測数) の外れ値を特定する場合に便利です。また、各観測が近似応答値に与える影響も表示されます。平均のクックの距離の 3 倍を超える観測は外れ値の可能性があります。

定義

クックの距離は、近似値の変化をスケーリングしたものです。CooksDistance の各要素は、観測の削除により生じた係数のベクトルの変化を正規化したものです。観測値 i のクックの距離 Di は次のように表されます。

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 番目のてこ比値です。

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

使用方法

近似モデル (mdl など) を取得した後、fitlm または stepwiselm を使用して、次のことを実行できます。

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

    mdl.Diagnostics.CooksDistance

  • 次の方法で、クックの距離の値をプロットする。

    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.

参考

| | |

関連するトピック