線形回帰の結果の解釈
この例では、線形回帰の出力統計を表示および解釈する方法を表示しています。
線形回帰モデルの当てはめ
行列入力データ セットである 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
は、 に対応します。
モデルの表示には、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" 値。たとえば、x2
の t 統計量の p 値は 0.05 より大きいので、この項はモデル内の他の項に対して 5% の有意水準では有意ではありません。
モデルの要約統計量は以下のとおりです。
Number of observations
—NaN
値が含まれていない行の数。この例では、X
とMPG
の行数が 100 であり、異なる観測値についてデータ ベクトルMPG
には 6 つのNaN
値、データ ベクトルHorsepower
には 1 つのNaN
値があるので、Number of observations
は 93 です。Error degrees of freedom
— n – p。ここで、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
— 各項の自由度。自由度は合計について 、モデルについて 、誤差項について です。ここで、 は観測値の個数、 はモデル内の係数の個数 (切片を含む) です。この例では、データ ベクトル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) です。F
— F 統計値。線形回帰表示の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、誤差項について です。ここで、 は観測値の個数、 はモデル内の係数の個数 (切片を含む) です。たとえば、このモデルでは誤差項の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
の値、分母の自由度は です。 は観測値の個数、 はモデル内の係数の個数です。この例では、各 F 統計量は 分布に従います。pValue
— 線形モデルにおける対応する項の係数に対する各仮説検定の p 値。たとえば、x2
の F 統計量係数の 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 行目は切片 の下限と上限 (40.2702 と 55.6833) を表しています。同様に、2 行目は の下限と上限を表しています。この後の各行も同様です。信頼区間により線形回帰係数の推定の精度を測定できます。 の信頼区間は、対応する回帰係数が の信頼度で含まれる範囲を与えます。
信頼水準を変更することもできます。係数に対する 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 値)、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) です。この結果から、 と の少なくとも一方が 0 ではないことがわかります。
参考
LinearModel
| fitlm
| stepwiselm
| anova