メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

plotInteraction

線形回帰モデルの 2 つの予測子の交互作用効果のプロット

説明

plotInteraction(mdl,var1,var2) は、線形回帰モデル mdl で選択した 2 つの予測子 var1 および var2主効果およびその条件付き効果のプロットを作成します。効果の値を通る水平ラインは、95% 信頼区間を示します。

plotInteraction(mdl,var1,var2,ptype) は、プロット タイプ ptype を指定します。たとえば、ptype'predictions' である場合、plotInteraction は、1 番目の予測子を特定の値に固定した状態で 2 番目の予測子の関数として、調整された応答関数をプロットします。詳細については、条件付き効果を参照してください。

plotInteraction(ax,___) は、前の構文におけるいずれかの入力引数の組み合わせを使用して、現在の座標軸 (gca) ではなく ax によって指定される座標軸にプロットします。あるいは、最後の入力引数として Parent=ax を指定できます。 (R2024a 以降)

h = plotInteraction(___) は、line オブジェクトのベクトル h を返します。プロットの作成後に特定のラインのプロパティを修正するには、h を使用します。プロパティの一覧については、Line のプロパティを参照してください。

すべて折りたたむ

交互作用項があるモデルを当てはめ、主効果および条件付き効果を示す交互作用プロットを作成します。

carsmall データ セットのデータを使用して、交互作用項が含まれている応答値を作成します。まず、データ セットを読み込み、予測子データを正規化します。

load carsmall
Acceleration = normalize(Acceleration); 
Horsepower = normalize(Horsepower);
Displacement = normalize(Displacement);

交互作用項 Acceleration*Horsepower が含まれている応答変数を定義します。

y = Acceleration + 4*Horsepower + Acceleration.*Horsepower + Displacement;

応答値にノイズを追加します。

rng('default') % For reproducibility
y = y + normrnd(10,0.25*std(y,'omitnan'),size(y));

予測子データと応答値が格納されている table を作成します。

tbl = table(Acceleration,Horsepower,Displacement,y);

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

mdl = fitlm(tbl,'y ~ Acceleration + Horsepower + Acceleration*Horsepower + Displacement + Horsepower*Displacement')
mdl = 
Linear regression model:
    y ~ 1 + Acceleration*Horsepower + Horsepower*Displacement

Estimated Coefficients:
                                Estimate       SE         tStat        pValue  
                               __________    _______    _________    __________

    (Intercept)                    9.8652    0.16177       60.982     8.587e-77
    Acceleration                  0.63726     0.1626       3.9191    0.00016967
    Horsepower                     3.6168       0.34       10.638     9.273e-18
    Displacement                  0.95032    0.31828       2.9858     0.0036144
    Acceleration:Horsepower       0.60108     0.1851       3.2473     0.0016209
    Horsepower:Displacement    -0.0096069    0.20947    -0.045863       0.96352


Number of observations: 99, Error degrees of freedom: 93
Root Mean Squared Error: 1.07
R-squared: 0.93,  Adjusted R-Squared: 0.927
F-statistic vs. constant model: 249, p-value = 3.3e-52

交互作用項 Acceleration*HorsepowerpValue は非常に小さいので、交互作用項が統計的に有意であることがわかります。

HorsepowerAcceleration の主効果および条件付き効果を示す交互作用プロットを作成します。

plotInteraction(mdl,'Horsepower','Acceleration')

Figure contains an axes object. The axes object with title Interaction of Horsepower and Acceleration, xlabel Effect contains 12 objects of type line. One or more of the lines displays its values using only markers

各予測子について、主効果の点と条件付き効果の点が垂直には並んでいません。したがって、各予測子の主効果および条件付き効果の点に対する信頼区間を通る垂直線を見つけることはできません。このプロットは、応答変数に対する交互作用効果が存在することを示します。

比較のため、DisplacementHorsepower の交互作用プロットを作成します。この交互作用項 (Displacement*Horsepower) は p 値が大きいので、統計的に有意ではないことがわかります。

plotInteraction(mdl,'Displacement','Horsepower')

Figure contains an axes object. The axes object with title Interaction of Displacement and Horsepower, xlabel Effect contains 12 objects of type line. One or more of the lines displays its values using only markers

各予測子について、主効果の点と条件付き効果の点が垂直に並んでいます。このプロットは、交互作用がないことを示します。

交互作用項があるモデルを当てはめ、調整された応答曲線の交互作用プロットを作成します。

carsmall データ セットのデータを使用して、交互作用項が含まれている応答値を作成します。まず、データ セットを読み込み、予測子データを正規化します。

load carsmall
Acceleration = normalize(Acceleration); 
Horsepower = normalize(Horsepower);
Displacement = normalize(Displacement);

交互作用項 Acceleration*Horsepower が含まれている応答変数を定義します。

y = Acceleration + 4*Horsepower + Acceleration.*Horsepower + Displacement;

応答値にノイズを追加します。

rng('default') % For reproducibility
y = y + normrnd(10,0.25*std(y,'omitnan'),size(y));

予測子データと応答値が格納されている table を作成します。

tbl = table(Acceleration,Horsepower,Displacement,y);

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

mdl = fitlm(tbl,'y ~ Acceleration + Horsepower + Acceleration*Horsepower + Displacement + Horsepower*Displacement')
mdl = 
Linear regression model:
    y ~ 1 + Acceleration*Horsepower + Horsepower*Displacement

Estimated Coefficients:
                                Estimate       SE         tStat        pValue  
                               __________    _______    _________    __________

    (Intercept)                    9.8652    0.16177       60.982     8.587e-77
    Acceleration                  0.63726     0.1626       3.9191    0.00016967
    Horsepower                     3.6168       0.34       10.638     9.273e-18
    Displacement                  0.95032    0.31828       2.9858     0.0036144
    Acceleration:Horsepower       0.60108     0.1851       3.2473     0.0016209
    Horsepower:Displacement    -0.0096069    0.20947    -0.045863       0.96352


Number of observations: 99, Error degrees of freedom: 93
Root Mean Squared Error: 1.07
R-squared: 0.93,  Adjusted R-Squared: 0.927
F-statistic vs. constant model: 249, p-value = 3.3e-52

交互作用項 Acceleration*HorsepowerpValue は非常に小さいので、交互作用項が統計的に有意であることがわかります。

Horsepower を特定の値に固定した Acceleration の関数として、調整された応答関数を示す、交互作用プロットを作成します。

plotInteraction(mdl,'Horsepower','Acceleration','predictions')

Figure contains an axes object. The axes object with title Interaction of Horsepower and Acceleration, xlabel Acceleration, ylabel Adjusted y contains 4 objects of type line. These objects represent Horsepower, -1.4506, 0.51529, 2.4812.

曲線は平行ではありません。このプロットは、予測子の間に交互作用があることを示します。

比較のため、DisplacementHorsepower の交互作用プロットを作成します。交互作用項 (Displacement*Horsepower) の p 値が大きいので、この交互作用項が統計的に有意ではないことがわかります。

plotInteraction(mdl,'Displacement','Horsepower','predictions')

Figure contains an axes object. The axes object with title Interaction of Displacement and Horsepower, xlabel Horsepower, ylabel Adjusted y contains 4 objects of type line. These objects represent Displacement, -1.0969, 0.55827, 2.2134.

曲線は平行なので、交互作用がないことがわかります。

入力引数

すべて折りたたむ

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

プロットする 1 番目の変数。mdl.VariableNames 内の変数名 (mdlVariableNames プロパティ) を表す文字ベクトルまたは string 配列、または mdl.VariableNames 内の変数のインデックスを表す正の整数を指定します。

データ型: char | string | single | double

プロットする 2 番目の変数。mdl.VariableNames 内の変数名 (mdlVariableNames プロパティ) を表す文字ベクトルまたは string 配列、または mdl.VariableNames 内の変数のインデックスを表す正の整数を指定します。

データ型: char | string | single | double

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

  • 'effects'plotInteraction は、選択された 2 つの予測子 var1 および var2 の主効果およびその条件付き効果のプロットを作成します。効果の値を通る水平ラインは、95% 信頼区間を示します。

  • 'predictions'plotInteraction は、var1 を特定の値に固定した var2 の関数として、調整された応答関数をプロットします。

詳細は、主効果条件付き効果 を参照してください。

R2024a 以降

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

出力引数

すべて折りたたむ

line オブジェクト。ベクトルとして返されます。line オブジェクトのプロパティのクエリと設定を行うには、ドット表記を使用します。詳細については、Line のプロパティ を参照してください。

プロット タイプが 'effects' (既定) である場合、h(1) は主効果の推定値を表す円に、h(2)h(3) は 2 つの主効果の 95% 信頼区間に対応します。h の残りのエントリは、条件付き効果およびその信頼区間に対応します。主効果に関連付けられた line オブジェクトには、'main' というタグが付けられます。var1 および var2 の条件付き効果に関連付けられた line オブジェクトにはそれぞれ、'conditional1' および 'conditional2' というタグが付けられます。

プロット タイプが 'predictions' である場合、h の各エントリはプロットの各曲線に対応します。

詳細

すべて折りたたむ

ヒント

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

代替機能

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

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

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

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

拡張機能

すべて展開する

バージョン履歴

R2012a で導入

すべて展開する