Main Content

plotDiagnostics

線形回帰モデルの観測値の診断情報をプロット

説明

plotDiagnostics は、影響力が大きい観測値および外れ値を識別するための、観測値の診断情報 (てこ比、クックの距離、1 標本を取り除いたときの統計量 (Delete-1 統計量) など) のプロットを作成します。

plotDiagnostics(mdl) は、線形回帰モデル (mdl) の観測値のてこ比プロットを作成します。プロット内の点線は、推奨されるしきい値を表します。

plotDiagnostics(mdl,plottype) は、観測値の診断情報のタイプ plottype を指定します。

plotDiagnostics(___,Name,Value) では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用して追加のオプションを指定します。たとえば、データ点のマーカー記号やサイズを指定できます。

plotDiagnostics(ax,___) は、現在の座標軸 (gca) ではなく ax によって指定される座標軸にプロットします。 (R2024a 以降)

h = plotDiagnostics(___) は、プロット内のラインまたは等高線のグラフィックス オブジェクトを返します。プロットの作成後に特定のラインまたは等高線のプロパティを修正するには、h を使用します。プロパティの一覧については、Line のプロパティ および Contour のプロパティ を参照してください。

すべて折りたたむ

観測値のてこ比の値とクックの距離をプロットして、外れ値を検出します。

carsmall データ セットを読み込み、モデル年、重量、および重量の二乗の関数として、燃費の線形回帰モデルを当てはめます。

load carsmall
tbl = table(MPG,Weight);
tbl.Year = categorical(Model_Year);
mdl = fitlm(tbl,'MPG ~ Year + Weight^2');

てこ比値をプロットします。

plotDiagnostics(mdl)
legend('show') % Show the legend

Figure contains an axes object. The axes object with title Case order plot of leverage, xlabel Row number, ylabel Leverage contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Leverage, Reference Line.

点線は、推奨されるしきい値 2*p/n を表します。p は係数の数、n は観測値の数です。NumCoefficients および NumObservations プロパティを使用して、しきい値を求めます。

t_leverage = 2*mdl.NumCoefficients/mdl.NumObservations
t_leverage = 
0.1064

てこ比の値がしきい値を超えている観測値を検出します。

find(mdl.Diagnostics.Leverage > t_leverage)
ans = 3×1

    26
    32
    35

データ ヒントを使用して観測値の番号を確認することもできます。しきい値のラインより上にあるデータ点を選択すると、データ ヒントが表示されます。データ ヒントには、選択した点の x 軸および y 軸の値と、観測値の番号が含まれます。

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

plotDiagnostics(mdl,'cookd')

Figure contains an axes object. The axes object with title Case order plot of Cook's distance, xlabel Row number, ylabel Cook's distance contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Cook's distance, Reference Line.

点線は、推奨されるしきい値を表します。しきい値 t_cookd を計算します。

t_cookd = 3*mean(mdl.Diagnostics.CooksDistance,'omitnan')
t_cookd = 
0.0320

クックの距離の値がしきい値を超えている観測値を検出します。

find(mdl.Diagnostics.CooksDistance > t_cookd)
ans = 6×1

    26
    35
    80
    90
    92
    97

2 つの観測値 (26 および 35) は両方の尺度で外れ値ですが、いくつかの点 (32、80、90、92 および 97) は一方の尺度のみで外れ値です。

入力引数

すべて折りたたむ

線形回帰モデル。fitlm または stepwiselm を使用して作成した LinearModel オブジェクトとして指定します。

プロットのタイプ。次の表のいずれかの値を指定します。

プロット タイププロット内の点線の基準線 目的
'contour'クックの距離の等高線を重ね合わせた、残差対てこ比クックの距離の等高線残差、てこ比およびクックの距離の値が大きい観測値を特定。
'cookd'クックの距離3*mean(mdl.Diagnostics.CooksDistance) によって計算された、推奨されるしきい値クックの距離の値が大きい観測値を特定。
'covratio'共分散の行列式の Delete-1 比1±3*p/n によって計算された、推奨されるしきい値。p は係数の個数 (mdl.NumCoefficients)、n は観測値の個数 (mdl.NumObservations)推奨されるしきい値の範囲に Delete-1 統計量の値が含まれない観測値を特定。
'dfbetas'係数推定値のスケーリングされた Delete-1 差分3/sqrt(n) によって計算された、推奨されるしきい値Delete-1 統計量の値が大きい観測値を特定。
'dffits'当てはめた値のスケーリングされた Delete-1 差分2*sqrt(p/n) によって絶対値で計算された、推奨されるしきい値Delete-1 統計量の絶対値が大きい観測値を特定。
'leverage'てこ比2*p/n によって計算された、推奨されるしきい値てこ比が大きい観測値を特定。
's2_i'1 標本を取り除いたときの分散平均二乗誤差 (mdl.MSE)Delete-1 分散と平均二乗誤差を比較。

'contour' を除くすべてのプロット タイプで、x 軸は観測値の行番号 (ケース順) です。

mdlDiagnostics プロパティには、plotDiagnostics がプロットの作成に使用した診断値が格納されます。

観測値の診断情報の詳細については、クックの距離1 標本を取り除いたときの統計およびてこ比を参照してください。

R2024a 以降

ターゲットの座標軸。axes オブジェクトとして指定します。座標軸を指定しない場合、plotDiagnostics は現在の座標軸 (gca) を使用します。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'Color','blue','Marker','o'

メモ

ここでは、グラフィック プロパティの一部だけを紹介しています。完全な一覧については、Line のプロパティ を参照してください。指定したプロパティによって、診断データ点の外観が決まります。

ラインの色。'Color' と RGB 3 成分、16 進数のカラー コード、または、以下の表に記載されているいずれかの色オプションに対応する色の名前または省略名から構成されるコンマ区切りのペアとして指定します。

'MarkerEdgeColor''auto' (既定) であり 'MarkerFaceColor''auto' である場合、名前と値のペアの引数 'Color' はマーカーの輪郭の色とマーカーの塗りつぶし色も決定します。

カスタム色の場合は、RGB 3 成分または 16 進数のカラー コードを指定します。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 要素の行ベクトルです。強度は範囲 [0,1] に含まれていなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数のカラー コードは、ハッシュ記号 (#) で始まり、0 から F の範囲にある 16 進数が 3 つまたは 6 つ続く、string スカラーまたは文字ベクトルです。この値では、大文字と小文字は区別されません。したがって、カラー コード "#FF8800""#ff8800""#F80""#f80" は等価です。

あるいは、一部の一般的な色を名前で指定できます。次の表は、名前が付いた色のオプション、等価な RGB 3 成分、および 16 進数のカラー コードの一覧です。

色の名前省略名RGB 3 成分16 進数のカラー コード外観
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"該当なし該当なし該当なし色なし

以下は、MATLAB® が多くのタイプのプロットで使用する既定の色に対する RGB 3 成分および 16 進数のカラー コードです。

RGB 3 成分16 進数のカラー コード外観
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

例: 'Color','blue'

ラインの幅。'LineWidth' と正の値 (ポイント単位) から構成されるコンマ区切りのペアとして指定します。ラインにマーカーがある場合、ライン幅はマーカー エッジにも影響を与えます。

例: 'LineWidth',0.75

マーカー記号。'Marker' と次の表のいずれかの値から構成されるコンマ区切りのペアとして指定します。

マーカー説明結果として得られるマーカー
"o"

Sample of circle marker

"+"プラス記号

Sample of plus sign marker

"*"アスタリスク

Sample of asterisk marker

"."

Sample of point marker

"x"十字

Sample of cross marker

"_"水平線

Sample of horizontal line marker

"|"垂直線

Sample of vertical line marker

"square"正方形

Sample of square marker

"diamond"菱形

Sample of diamond marker

"^"上向き三角形

Sample of upward-pointing triangle marker

"v"下向き三角形

Sample of downward-pointing triangle marker

">"右向き三角形

Sample of right-pointing triangle marker

"<"左向き三角形

Sample of left-pointing triangle marker

"pentagram"星形五角形

Sample of pentagram marker

"hexagram"星形六角形

Sample of hexagram marker

"none"マーカーなし該当なし

例: 'Marker','+'

マーカーの輪郭の色。'MarkerEdgeColor' と RGB 3 成分、16 進数のカラー コード、または、名前と値のペアの引数 Color に記載されているいずれかの色オプションに対応する色の名前または省略名から構成されるコンマ区切りのペアとして指定します。

既定値 'auto' では、'Color' を使用して指定されるものと同じ色が使用されます。

例: 'MarkerEdgeColor','blue'

マーカーの塗りつぶし色。'MarkerFaceColor' と RGB 3 成分、16 進数のカラー コード、または、名前と値のペアの引数 Color に記載されているいずれかの色オプションに対応する色の名前または省略名から構成されるコンマ区切りのペアとして指定します。

'auto' では、'Color' を使用して指定されるものと同じ色が使用されます。

例: 'MarkerFaceColor','blue'

マーカー サイズ。'MarkerSize' と正の値 (ポイント単位) から構成されるコンマ区切りのペアとして指定します。

例: 'MarkerSize',2

出力引数

すべて折りたたむ

プロット内のラインまたは等高線に対応するグラフィックス オブジェクト。グラフィックス配列として返されます。グラフィックス オブジェクトのプロパティのクエリと設定を行うには、ドット表記を使用します。詳細については、Line のプロパティ および Contour のプロパティ を参照してください。

名前と値のペアの引数を使用して、1 番目のグラフィックス オブジェクト h(1) に対応する、診断データ点の外観を指定できます。plottype'dfbetas' である場合、各係数に対応する line オブジェクトがプロットに含まれます。名前と値のペアの引数は、すべての係数の line オブジェクトのプロパティを指定します。対応するグラフィックス オブジェクトを使用して、各係数のプロパティを個別に修正できます。

詳細

すべて折りたたむ

クックの距離

クックの距離は当てはめた値におけるスケーリングされた変化であり、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),

ここで rii 番目の残差、hiii 番目のてこ比値です。

詳細は、クックの距離を参照してください。

1 標本を取り除いたときの統計

1 標本を取り除いたときの統計量 (Delete-1 統計量) は、各観測値の影響を特定するために便利です。これらの統計量は、各観測値を順番に当てはめから除外することによって生じる変化を取得します。すべての観測値を使用するモデルと Delete-1 統計量が大きく異なる場合、その観測値には大きい影響力があります。

Delete-1 統計量の定義と使用法については、1 標本を取り除いたときの統計を参照してください。

てこ比

てこ比は、入力空間で特定の観測の位置が原因で発生した、回帰予測におけるその観測値の影響を測定します。

観測値 i のてこ比はハット行列 Hi 番目の対角項 hii の値です。ハット行列 H は、データ行列 X に関して次のように定義されます。

H = X(XTX)–1XT.

ハット行列は "射影行列" とも呼ばれます。これは、観測値のベクトル y を予測値のベクトル y^ に射影するので "ハット" が y の上に置かれるためです。

てこ比値の合計は p (回帰モデルの係数の個数) なので、てこ比が p/n (n は観測値の個数) を大幅に超える場合、観測値 i は外れ値であると考えることができます。

詳細は、ハット行列とてこ比を参照してください。

ヒント

  • データ カーソルを使用すると、選択したプロットの点の値がデータ ヒント (データ点の横にある小さいテキスト ボックス) に表示されます。データ ヒントには、選択した点の x 軸および y 軸の値と、観測値の名前または番号が含まれます。

  • 事前設定済みの凡例を表示するには、legend('show') を使用します。

代替機能

  • LinearModel オブジェクトには、複数のプロット関数が用意されています。

    • モデルを作成するときに、予測子変数の追加または削除による効果を理解するには、plotAdded を使用します。

    • モデルを検証するときに、問題があるデータを探し、各観測値の効果を理解するには、plotDiagnostics を使用します。また、モデルの残差を分析するには、plotResiduals を使用します。

    • モデルを当てはめた後で、特定の予測子の効果を理解するには、plotAdjustedResponseplotPartialDependence および plotEffects を使用します。2 つの予測子の間の交互作用効果を理解するには、plotInteraction を使用します。また、予測曲面を通るスライスをプロットするには、plotSlice を使用します。

参照

[1] Neter, J., M. H. Kutner, C. J. Nachtsheim, and W. Wasserman. Applied Linear Statistical Models, Fourth Edition. Chicago: McGraw-Hill Irwin, 1996.

拡張機能

バージョン履歴

R2012a で導入

すべて展開する