선형 회귀 결과 해석하기
이 예제에서는 선형 회귀 결과 출력되는 통계량을 표시하고 해석하는 방법을 보여줍니다.
선형 회귀 모델 피팅하기
행렬 입력 데이터 세트인 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— 모델에 주어진 다른 예측 변수를 상정한 경우, '대응하는 계수가 0이 아니다'는 대립가설에 대해 '계수가 0이다'는 귀무가설을 검정하는 데 사용된 각 계수에 대한 t-통계량입니다. 참고로,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데이터 벡터에NaN값이 6개 있고Horsepower데이터 벡터에 다른 관측값에 대한NaN값이 1개 있기 때문에Number of observations는 93입니다.Error degrees of freedom— n – p이며, 여기서 n은 관측값의 개수이고 p는 절편을 포함하여 모델에 포함된 계수의 개수입니다. 예를 들어, 이 모델은 4개의 예측 변수를 가지므로Error degrees of freedom은 93 – 4 = 89입니다.Root mean squared error— RMS 오차로, 오차 분포의 표준편차를 추정합니다.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)을 수행합니다.
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는 다른 관측값에 대해 하나의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(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 결과는 다음을 표시합니다.
첫 번째 열 — 모델에 포함된 항입니다.
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-통계량은 대응하는 항에 대해 분자의 자유도가DF값이고 분모의 자유도가 인 F 분포를 갖습니다. 은 관측값 개수이고 는 모델에 포함된 계수의 개수입니다. 이 예제에서, 각 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% 신뢰구간의 하한 및 상한 값입니다. 예를 들어, 첫 번째 행은 절편 에 대한 하한과 상한, 즉 40.2702와 55.6833을 표시합니다. 마찬가지로, 두 번째 행은 에 대한 하한 및 상한을 표시합니다. 신뢰구간은 선형 회귀 계수 추정값에 대한 정확성의 척도를 제공합니다. 신뢰구간은 해당하는 회귀 계수가 신뢰구간에서 속하게 되는 범위를 제공합니다.
신뢰수준을 변경할 수도 있습니다. 계수에 대한 99% 신뢰구간을 구합니다.
coefCI(lm,0.01)
ans = 4×2
37.7677 58.1858
-0.0095 -0.0036
-0.1069 0.0211
-0.5205 0.4973
계수에 대한 가설검정
'적어도 하나의 예측 변수 계수가 0이 아니다'는 대립가설에 대해 '모든 예측 변수 계수가 0이다'는 귀무가설을 검정합니다.
[p,F,d] = coefTest(lm)
p = 7.3816e-27
F = 89.9874
d = 3
여기서 coefTest는 모델에서 '적어도 하나의 회귀 계수가 0이 아니다'는 기본적 가설에 대해 '모든 회귀 계수(절편 제외)가 0이다'는 가설을 검증하는 F-검정을 수행합니다. 이는 , p-값, F, F-통계량, d, 분자의 자유도를 반환합니다. F-통계량과 p-값은 모델에 대한 선형 회귀 표시 화면과 anova의 그것과 같습니다. 모델에는 4개의 예측 변수(절편 포함)가 있기 때문에 자유도는 4 – 1 = 3입니다.
이제, 첫 번째 예측 변수와 두 번째 예측 변수에 대해 가설검정을 수행합니다.
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