선형 회귀 결과 해석하기
이 예제에서는 선형 회귀 결과 출력되는 통계량을 표시하고 해석하는 방법을 보여줍니다.
선형 회귀 모델 피팅하기
행렬 입력 데이터 세트인 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
— 평균 제곱 오차의 제곱근으로, 오차 분포의 표준편차를 추정합니다.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
관련 예제
- 품질을 검토하고 피팅된 모델 조정하기
- 선형 회귀
- Stepwise Regression
- Linear Regression Workflow
- Train Linear Regression Model
- What Is a Linear Regression Model?