
res=lm(mpg~factor(gear)+wt+vs, data=m)
res
Call:
lm(formula = mpg ~ factor(gear) + wt + vs, data = m)
Coefficients:
(Intercept) factor(gear)4 factor(gear)5 wt vs
💡32.5445 1.3538 -0.2035 -4.3467 2.4106
위 결과는 lm 함수를 사용해 mpg(마일 당 갤런)라는 종속 변수와 gear, wt, vs 등의 독립 변수를 포함한 회귀 모델을 만든 결과입니다. 모델에 포함된 각 계수(Coefficients)는 해당 변수가 mpg에 미치는 영향을 나타냅니다.
해석
lm(formula = mpg ~ factor(gear) + wt + vs, data = m)은 mpg를 종속 변수로, gear(기어 수), wt(차량의 무게), vs(엔진 형태)를 독립 변수로 하여 회귀 분석을 실행한 것을 의미합니다.gear는 범주형 변수로 취급됩니다(factor(gear)).mpg 값이 32.5445임을 의미합니다.gear가 4단일 때 mpg가 약 1.3538만큼 증가합니다. 이는 기본(참조) 레벨인 gear=3을 기준으로 한 값입니다.gear가 5단일 때 mpg가 약 0.2035 감소합니다. 마찬가지로 기본 레벨인 gear=3과 비교한 상대적인 차이입니다.wt)가 1단위 증가할 때마다 mpg는 약 4.3467만큼 감소합니다. 이 값은 차량 무게가 증가할수록 연비가 낮아지는 경향을 보여줍니다.vs가 1일 때(아마 엔진의 특정 형태일 경우), mpg가 약 2.4106만큼 증가함을 의미합니다.mpg에 영향을 미치는 것으로 나타났습니다.wt)가 mpg에 가장 큰 영향을 미치며, 무게가 증가하면 연비가 크게 떨어집니다.gear의 4단과 vs 변수도 연비를 높이는 요인으로 작용합니다.summary(res)
Call:
lm(formula = mpg ~ factor(gear) + wt + vs, data = m)
Residuals:
Min 1Q Median 3Q Max
-3.5563 -2.2206 -0.4998 1.4606 5.6538
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 32.5445 3.1915 10.197 9.32e-11
factor(gear)4 1.3538 1.4809 0.914 0.369
factor(gear)5 -0.2035 1.7464 -0.117 0.908
wt -4.3467 0.7639 -5.690 4.81e-06
vs 2.4106 1.4193 1.698 0.101
Signif. codes: 0 ‘*’ 0.001 ‘’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
💡Residual standard error: 2.822 on 27 degrees of freedom
Multiple R-squared: 0.8091, Adjusted R-squared: 0.7808
F-statistic: 28.61 on 4 and 27 DF, p-value: 2.332e-09
summary(res))Residuals
잔차는 mpg가 예측 값에서 벗어난 정도를 나타내며, 중앙값과 사분위 범위를 통해 분포의 범위를 확인할 수 있습니다.
Coefficients
)로 표시되며, **wt*는 **p-value < 0.001**로 mpg`에 매우 유의미한 영향을 미치는 변수임을 확인할 수 있습니다.모델 설명력
모델의 유의성 (F-statistic)
- F 통계량이 28.61로, 모델 전체가 매우 유의미함을 보여줍니다 (p-value < 0.001).
💡vif(res)
GVIF Df GVIF^(1/(2*Df))
wt 2.175251 1 1.474873
vs 1.992448 1 1.411541
factor(gear) 2.436001 2 1.249308
주어진 코드는 mtcars 데이터셋을 사용해 mpg를 예측하는 회귀 모델을 만든 뒤, 다중 공선성 확인을 수행한 결과입니다.
VIF 값은 다중 공선성을 평가하는 지표로, 일반적으로 VIF 값이 5를 넘으면 공선성이 높다고 판단합니다.
GVIF Df GVIF^(1/(2*Df))
wt 2.175251 1 1.474873
vs 1.992448 1 1.411541
factor(gear) 2.436001 2 1.249308
wt: VIF가 2.175로, 공선성이 높지 않으므로 wt 변수는 다른 변수들과 독립적입니다.vs: VIF가 1.992로 공선성이 낮은 편입니다.factor(gear): VIF가 2.436로 다른 변수들과의 공선성 위험은 크지 않습니다.세 변수 모두 VIF < 5이므로 다중 공선성 문제가 없다고 볼 수 있습니다.
일반적으로 VIF(Variance Inflation Factor)의 해석 기준은 다중 회귀 분석(lm())과 로지스틱 회귀 분석(glm())에서 다르게 적용할 수 있습니다. 하지만, 그 기준이 엄격히 고정된 것은 아니며 상황에 따라 유동적입니다. 아래에 lm()와 glm()에서의 VIF 해석 차이를 설명합니다.
VIF의 의미
VIF 해석 기준
| 모형 | VIF 기준 | 설명 |
|---|---|---|
| lm() (선형회귀) | 5 또는 10 | 5 이상일 경우 다중공선성이 있을 가능성, 10 이상이면 강한 다중공선성이 있음. |
| glm() (로지스틱 회귀) | 10 | 10을 기준으로 공선성을 평가. 10을 넘으면 다중공선성이 의심됨. |
step(res)
Start: AIC=70.95
mpg ~ factor(gear) + wt + vs
Df Sum of Sq RSS AIC
factor(gear) 2 9.111 224.09 68.283
214.98 70.954
vs 1 22.968 237.95 72.202
wt 1 257.783 472.77 94.172
Step: AIC=68.28
mpg ~ wt + vs
Df Sum of Sq RSS AIC
224.09 68.283
vs 1 54.23 278.32 73.217
wt 1 405.43 629.52 99.335
Call:
lm(formula = mpg ~ wt + vs, data = m)
Coefficients:
(Intercept) wt vs
💡33.004 -4.443 3.154
위 분석은 회귀 모델을 최적화하는 과정에서 step 함수를 사용해 변수 선택을 통해 AIC(Akaike Information Criterion)를 최적화한 결과를 보여줍니다. 이 과정과 결과들을 아래와 같이 단계별로 해석할 수 있습니다.
초기 모델 (mpg ~ factor(gear) + wt + vs)
factor(gear), wt, vs 세 변수가 포함되어 있으며 AIC 값은 70.95입니다.변수 선택 과정
factor(gear): factor(gear) 변수를 제거하면 AIC가 68.28로 감소하여 성능이 개선됩니다.vs: vs를 제거하면 AIC가 72.20으로 증가해 모델 성능이 떨어집니다.wt: wt를 제거하면 AIC가 94.17로 크게 증가하여 성능이 크게 저하됩니다.위 결과에 따라 factor(gear) 변수를 제거한 모델이 최적 모델로 선택되었습니다.
최종 모델 (mpg ~ wt + vs)
mpg에 유의미한 영향을 미치는 변수는 wt와 vs 두 개로 선택되었습니다.최종 모델의 계수와 요약
회귀 모델(mpg ~ wt + vs):
mpg 값입니다.wt)가 증가할수록 mpg가 감소하며, wt가 1 단위 증가하면 mpg가 약 4.443만큼 감소합니다.vs가 1일 때(특정 엔진 형태일 경우), mpg가 3.154 증가하는 영향을 미칩니다.초기 모델의 요약 (summary(res))
Residuals
잔차는 mpg가 예측 값에서 벗어난 정도를 나타내며, 중앙값과 사분위 범위를 통해 분포의 범위를 확인할 수 있습니다.
Coefficients
)로 표시되며, **wt*는 **p-value < 0.001**로 mpg`에 매우 유의미한 영향을 미치는 변수임을 확인할 수 있습니다.모델 설명력
모델의 유의성 (F-statistic)
종합 해석
wt와 vs가 mpg에 가장 유의미한 영향을 미치는 것으로 나타났고, 최적화된 모델에서는 factor(gear) 변수를 제거해 모델 성능이 개선되었습니다.wt(차량 무게)는 연비에 큰 영향을 미치며, vs(엔진 형태)도 어느 정도 영향을 주는 요인으로 작용합니다.library(lmtest)
필요한 패키지를 로딩중입니다: zoo
다음의 패키지를 부착합니다: ‘zoo’
The following objects are masked from ‘package:base’:
as.Date, as.Date.numeric
m1=lm(finalgrade ~ per1grade+per2grade, data=g)
m2=lm(finalgrade ~ per1grade, data=g)
lrtest(m1,m2)
Likelihood ratio test
Model 1: finalgrade ~ per1grade + per2grade
Model 2: finalgrade ~ per1grade
#Df LogLik Df Chisq Pr(>Chisq)
1 4 -1070.7
2 3 -1308.8 -1 476.18 < 2.2e-16 ***
💡Signif. codes: 0 ‘*’ 0.001 ‘’ 0.01 ‘*’ 0.05 ‘.’ 0.1
lrtest() 함수는 우도비 검정(Likelihood Ratio Test, LRT)을 수행하여 두 개의 중첩된 회귀 모델을 비교합니다. 더 복잡한 모델이 더 단순한 모델보다 더 나은지 판단하는 데 사용합니다.
lrtest()의 목적
lrtest()의 주요 매개변수
lrtest() 해석 방법
결과 예시
Likelihood ratio test
Model 1: finalgrade ~ per1grade + per2grade
Model 2: finalgrade ~ per1grade
#Df LogLik Df Chisq Pr(>Chisq)
1 4 -1070.7
2 3 -1308.8 -1 476.18 < 2.2e-16 ***
해석하기
| 항목 | 해석 |
|---|---|
| Model 1 | 더 복잡한 모델: finalgrade ~ per1grade + per2grade |
| Model 2 | 더 단순한 모델: finalgrade ~ per1grade |
| Df (자유도) | Model 1의 자유도: 4, Model 2의 자유도: 3 |
| LogLik | 로그 우도 (Log-Likelihood) 값 (값이 클수록 좋음) |
| Chisq | 두 모델 간의 로그 우도의 차이(카이제곱 통계량) |
| Pr(>Chisq) | p-value, p < 0.001 → 더 복잡한 모델이 유의미함 |
| Signif. codes | p-value에 따라 유의성을 보여줌 (***: p < 0.001) |
각 요소에 대한 의미
lrtest() 해석의 결론
최종 정리
| 항목 | 설명 |
|---|---|
| 목적 | 더 복잡한 모델과 단순한 모델의 유의미한 차이 검정 |
| 검정 방법 | 우도비 검정 (Likelihood Ratio Test) 수행 |
| 귀무가설 (H0) | 복잡한 모델과 단순 모델이 적합도에서 차이가 없다 |
| 대립가설 (H1) | 복잡한 모델이 더 적합하다 |
| Chisq | 로그우도의 차이 (카이제곱 통계량) |
| p-value | p < 0.05 → 더 복잡한 모델이 더 좋음 |
| 언제 사용? | 변수를 추가할 때, 과적합을 방지하고자 할 때 |
결론
