Main Content

線形回帰の結果の解釈

この例では、線形回帰の出力統計を表示および解釈する方法を表示しています。

線形回帰モデルの当てはめ

行列入力データ セットである carsmall データ セットを読み込みます。

load carsmall
X = [Weight,Horsepower,Acceleration];

fitlm を使用して、線形回帰モデルを当てはめます。

lm = fitlm(X,MPG)
lm = 
Linear regression model:
    y ~ 1 + x1 + x2 + x3

Estimated Coefficients:
                    Estimate        SE          tStat        pValue  
                   __________    _________    _________    __________

    (Intercept)        47.977       3.8785        12.37    4.8957e-21
    x1             -0.0065416    0.0011274      -5.8023    9.8742e-08
    x2              -0.042943     0.024313      -1.7663       0.08078
    x3              -0.011583      0.19333    -0.059913       0.95236


Number of observations: 93, Error degrees of freedom: 89
Root Mean Squared Error: 4.09
R-squared: 0.752,  Adjusted R-Squared: 0.744
F-statistic vs. constant model: 90, p-value = 7.38e-27

モデルの表示には、モデル式、推定された係数、およびモデルの要約統計量が含まれています。

この表示のモデル式 y ~ 1 + x1 + x2 + x3 は、y=β0+β1X1+β2X2+β3X3+ϵ に対応します。

モデルの表示には、Coefficients プロパティに格納されている、推定された係数が示されています。Coefficients プロパティを表示します。

lm.Coefficients
ans=4×4 table
                    Estimate        SE          tStat        pValue  
                   __________    _________    _________    __________

    (Intercept)        47.977       3.8785        12.37    4.8957e-21
    x1             -0.0065416    0.0011274      -5.8023    9.8742e-08
    x2              -0.042943     0.024313      -1.7663       0.08078
    x3              -0.011583      0.19333    -0.059913       0.95236

Coefficient プロパティには、以下の列が含まれています。

  • Estimate — モデル内の対応する各項の係数推定値。たとえば、定数項 (intercept) の推定値は 47.977 です。

  • SE — 係数の標準誤差。

  • tStat — 各係数の t 統計量。モデル内の他の予測子が与えられた場合に、対応する係数が 0 ではないという対立仮説に対して係数が 0 であるという帰無仮説を検定するために使用します。tStat = Estimate/SE であることに注意してください。たとえば、切片の t 統計量は 47.977/3.8785 = 12.37 です。

  • pValue — 両側仮説検定の "t" 統計量に対する "p" 値。たとえば、x2t 統計量の p 値は 0.05 より大きいので、この項はモデル内の他の項に対して 5% の有意水準では有意ではありません。

モデルの要約統計量は以下のとおりです。

  • Number of observationsNaN 値が含まれていない行の数。この例では、XMPG の行数が 100 であり、異なる観測値についてデータ ベクトル MPG には 6 つの NaN 値、データ ベクトル Horsepower には 1 つの NaN 値があるので、Number of observations は 93 です。

  • Error degrees of freedomnp。ここで、n は観測値の個数、p はモデル内の係数の個数 (切片を含む) です。たとえば、モデルには 4 つの予測子があるため、Error degrees of freedom は 93 – 4 = 89 となります。

  • Root mean squared error — 平均二乗誤差の平方根。誤差分布の標準偏差の推定に使用します。

  • R-squared および Adjusted R-squared — それぞれ決定係数および調整後の決定係数。たとえば、R-squared 値からは、応答変数 MPG のばらつきの約 75% をこのモデルで説明できることがわかります。

  • F-statistic vs. constant model — 回帰モデルに対する F 検定の検定統計量。この検定では、定数項のみから構成される縮退したモデルより回帰モデルの方が有意に優れているかどうかを検定します。

  • p-value — モデルに対する F 検定の p 値。たとえば、p 値が 7.3816e-27 なので、このモデルは有意です。

分散分析

モデルの分散分析 (ANOVA) を実行します。

anova(lm,'summary')
ans=3×5 table
                SumSq     DF    MeanSq      F         pValue  
                ______    __    ______    ______    __________

    Total       6004.8    92    65.269                        
    Model         4516     3    1505.3    89.987    7.3816e-27
    Residual    1488.8    89    16.728                        

この anova では、以下が表示されます。

  • SumSq — 回帰モデル Model、誤差項 Residual、および合計値 Total の二乗和。

  • DF — 各項の自由度。自由度は合計について n-1、モデルについて p-1、誤差項について n-p です。ここで、n は観測値の個数、p はモデル内の係数の個数 (切片を含む) です。この例では、データ ベクトル MPG に 6 つの NaN 値があり、別の観測ではデータ ベクトルのうち Horsepower に 1 つの NaN 値があるので、全体の自由度は 93 – 1 = 92 となります。モデルには 4 つの係数があるので、モデルの DF では 4 – 1 = 3、誤差項の DF は 93 – 4 = 89 となります。

  • MeanSq — 各項の平均二乗誤差。MeanSq = SumSq/DF であることに注意してください。たとえば、誤差項の平均二乗誤差は 1488.8/89 = 16.728 です。この値の平方根は線形回帰表示の root mean squared error (4.09) です。

  • FF 統計値。線形回帰表示の F-statistic vs. constant model と同じです。この例では 89.987 です。線形回帰表示では、この F 統計値は切り上げられて 90 となります。

  • pValue — モデルに対する F 検定の p 値。この例では 7.3816e-27 です。

回帰モデルにより高い次数の項がある場合、anova はモデル SumSq をその高次項で説明される部分とそれ以外の部分に分割します。対応する F 統計量は、線形項と次数の高い項の有意性をそれぞれ別のグループとして検定するためのものです。

データに繰り返しがある場合や、同じ予測子の値に複数の測定がある場合、anova は誤差 SumSq を繰り返し部分とそれ以外の部分に分割します。対応する F 統計量は、複製について計算されたモデルに依存しない分散の推定値とモデルの残差を比較することにより不適合を検定するためのものです。

ANOVA の表を分解し、モデル項を抽出します。

anova(lm)
ans=4×5 table
              SumSq      DF     MeanSq         F          pValue  
             ________    __    ________    _________    __________

    x1         563.18     1      563.18       33.667    9.8742e-08
    x2         52.187     1      52.187       3.1197       0.08078
    x3       0.060046     1    0.060046    0.0035895       0.95236
    Error      1488.8    89      16.728                           

この anova を実行すると、次のように表示されます。

  • 1 列目 — モデルに含まれる項。

  • SumSq — 定数以外の各項の二乗誤差の和。

  • DF — 自由度。この例では、DF はモデルの各項について 1、誤差項について n-p です。ここで、n は観測値の個数、p はモデル内の係数の個数 (切片を含む) です。たとえば、このモデルでは誤差項の DF は 93 – 4 = 89 です。モデル内のいずれかの変数がカテゴリカル変数である場合、その変数の DF はカテゴリに対して作成された指標変数の個数 (カテゴリ数 – 1) です。

  • MeanSq — 各項の平均二乗誤差。MeanSq = SumSq/DF であることに注意してください。たとえば、誤差項の平均二乗誤差は 1488.8/89 = 16.728 です。

  • F — 各係数の F 値。F の値は、平均二乗誤差に対する各項の平均二乗の比率、つまり F = MeanSq(xi)/MeanSq(Error) です。各 F 統計量は F 分布に従い、分子の自由度は対応する項の DF の値、分母の自由度は n-p です。n は観測値の個数、p はモデル内の係数の個数です。この例では、各 F 統計量は F(1,89) 分布に従います。

  • pValue — 線形モデルにおける対応する項の係数に対する各仮説検定の p 値。たとえば、x2F 統計量係数の p 値は 0.08078 であり、モデル内の他の項に対して 5% の有意水準では有意でないことになります。

係数の信頼区間

係数の信頼区間を表示します。

coefCI(lm)
ans = 4×2

   40.2702   55.6833
   -0.0088   -0.0043
   -0.0913    0.0054
   -0.3957    0.3726

各行の値はそれぞれ、係数の既定の 95% 信頼区間の下限と上限です。たとえば、1 行目は切片 β0 の下限と上限 (40.2702 と 55.6833) を表しています。同様に、2 行目は β1 の下限と上限を表しています。この後の各行も同様です。信頼区間により線形回帰係数の推定の精度を測定できます。100(1-α)% の信頼区間は、対応する回帰係数が 100(1-α)% の信頼度で含まれる範囲を与えます。

信頼水準を変更することもできます。係数に対する 99% 信頼区間を求めます。

coefCI(lm,0.01)
ans = 4×2

   37.7677   58.1858
   -0.0095   -0.0036
   -0.1069    0.0211
   -0.5205    0.4973

係数に対する仮説検定

少なくとも 1 つの予測子変数係数が 0 でないという対立仮説に対し、予測子変数係数はすべて 0 であるという帰無仮説を検定します。

[p,F,d] = coefTest(lm)
p = 7.3816e-27
F = 89.9874
d = 3

ここで coefTest は、少なくとも 1 つの回帰係数がゼロではないという仮説 (モデルについての基本的な仮説) に対して (切片を除く) すべての回帰係数がゼロであるという仮説の F 検定を実行します。これにより、p (p 値)、F (F 統計量)、d (分子の自由度) が返されます。このモデルでは、F 統計量および p 値は線形回帰表示および anova におけるものと同じです。モデルには 4 つの予測子 (切片を含む) があるため、自由度は 4 – 1 = 3 となります。

次に、最初と 2 番目の予測子変数の係数に仮説検定を実行します。

H = [0 1 0 0; 0 0 1 0];
[p,F,d] = coefTest(lm,H)
p = 5.1702e-23
F = 96.4873
d = 2

分子の自由度は検定した係数の数 (この例では 2) です。この結果から、β2β3 の少なくとも一方が 0 ではないことがわかります。

参考

| | |

関連する例

詳細