Main Content

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

plotDiagnostics

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

説明

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

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

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

plotDiagnostics(mdl,plottype,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して、診断データ点のグラフィック プロパティを指定します。たとえば、データ点のマーカー記号やサイズを指定できます。

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

すべて折りたたむ

あてはめた一般化線形モデルのてこ比のプロットとクックの距離のプロットを作成し、外れ値を求めます。

元となる 2 つの予測子 X(:,1) および X(:,2) のポアソン乱数を使って標本データを生成します。

rng('default') % For reproducibility
rndvars = randn(100,2);
X = [2 + rndvars(:,1),rndvars(:,2)];
mu = exp(1 + X*[1;2]);
y = poissrnd(mu);

ポアソン データの一般化線形回帰モデルを作成します。

mdl = fitglm(X,y,'y ~ x1 + x2','Distribution','poisson');

てこ比のプロットを作成します。

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

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

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

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

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

     9
    21
    64
    65
    70

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

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

plotDiagnostics(mdl,'cookd')

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

t_cookd = 3*mean(mdl.Diagnostics.CooksDistance')
t_cookd = 0.0294

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

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

    15
    21
    27
    65
    70

3 つの観測値 (21、65 および 70) は両方の尺度で外れ値ですが、いくつかの点 (9、15、27 および 64) は一方の尺度のみで外れ値です。

入力引数

すべて折りたたむ

一般化線形回帰モデル。fitglm または stepwiseglm を使用して作成した GeneralizedLinearModel オブジェクトとして指定します。

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

プロット タイププロット内の点線の基準線 目的
'contour'クックの距離の等高線を重ね合わせた、残差対てこ比クックの距離の等高線残差、てこ比およびクックの距離の値が大きい観測値を特定。
'cookd'クックの距離3*mean(mdl.Diagnostics.CooksDistance) によって計算された、推奨されるしきい値クックの距離の値が大きい観測値を特定。
'leverage'てこ比2*p/n によって計算された、推奨されるしきい値。p は係数の数 (mdl.NumCoefficients)、n は観測値の数 (mdl.NumObservations)てこ比が大きい観測値を特定。

'cookd' および 'leverage' の場合、x 軸は観測値の行番号 (ケース順) です。

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

観測値の診断情報の詳細については、クックの距離、およびてこ比を参照してください。

名前と値のペアの引数

オプションの Name,Value 引数のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: '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'

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

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

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

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

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

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'該当なし該当なし該当なし色なし

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

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

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

例: 'Color','blue'

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

例: 'LineWidth',0.75

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

説明
'o'
'+'プラス記号
'*'アスタリスク
'.'
'x'十字
'square' または 's'正方形
'diamond' または 'd'菱形
'^'上向き三角形
'v'下向き三角形
'>'右向き三角形
'<'左向き三角形
'pentagram' または 'p'星形五角形
'hexagram' または 'h'星形六角形
'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) に対応する、診断データ点の外観を指定できます。

詳細

すべて折りたたむ

クックの距離

観測値 i のクックの距離 Di

Di=wiei2pφ^hii(1hii)2,

ここで

  • φ^ は分散パラメーター (推定値または理論値) です。

  • ei は線形予測子の残差 g(yi)xiβ^ です。ここで

    • g はリンク関数です。

    • yi は、観測された応答です。

    • xi は、観測です。

    • β^ は推定した係数ベクトルです。

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

  • hii は、ハット行列 H の i 番目の対角要素です。

てこ比

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

観測値 i のてこ比はハット行列 H の i 番目の対角項 hii の値です。てこ比値の合計は p (回帰モデルの係数の個数) なので、てこ比が p/n (n は観測値の個数) を大幅に超える場合、観測値 i は外れ値であると考えることができます。

ハット行列

"ハット行列" H は、データ行列 X の項と対角重み付け行列 W の項で定義されます。

H = X(XTWX)–1XTWT.

W には対角要素 wi があります。

wi=g(μi)V(μi),

ここで

  • g は yi を xib にマップするリンク関数です。

  • g はリンク関数 g の導関数です。

  • V は分散関数です。

  • μi は i 番目の平均です。

対角要素 Hii は次を満たします

0hii1i=1nhii=p,

ここで n は観測の数 (X の行) であり、p は回帰モデルの係数の数です。

ヒント

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

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

代替機能

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

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

  • モデルをあてはめた後で、特定の予測子の効果を理解するには、plotPartialDependence を使用します。また、予測曲面を通るスライスをプロットするには、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 で導入