MASS 라이브러리를 사용한다.
library(MASS)
MASS
라이브러리에 내장된 quine
데이터셋을 사용한다. 이 데이터는 학생의 결석에 관한 데이터이다. 종속변수는 결석일수를 나타내는 Days
이고 독립변수는 Eth
, Sex
, Age
, Lrn
이다.
head(quine)
Eth Sex Age Lrn Days 1 A M F0 SL 2 2 A M F0 SL 11 3 A M F0 SL 14 4 A M F0 AL 5 5 A M F0 AL 5 6 A M F0 AL 13
절편만 있는 모형을 만든다.
model.1 = lm(Days ~ 1, data = quine)
stepAIC
는 AIC라는 지표를 이용하여 단계적 회귀분석을 한다. AIC가 낮을 수록 설명력이 높은 모형이다.
step.forward = stepAIC(model.1, # 절편만 있는 모형에서 시작
direction = "forward", # 전진 방식
scope=Days ~ Eth + Sex + Age + Lrn) # Days ~ Eth + Sex + Age + Lrn 이 되면 멈춘다
Start: AIC=815.18 Days ~ 1 Df Sum of Sq RSS AIC + Eth 1 2980.51 35324 805.35 + Age 3 2535.13 35769 811.18 <none> 38304 815.18 + Sex 1 269.44 38035 816.15 + Lrn 1 78.69 38226 816.88 Step: AIC=805.35 Days ~ Eth Df Sum of Sq RSS AIC + Age 3 2274.91 33049 801.63 <none> 35324 805.35 + Sex 1 279.01 35045 806.19 + Lrn 1 100.88 35223 806.93 Step: AIC=801.63 Days ~ Eth + Age Df Sum of Sq RSS AIC + Lrn 1 598.37 32450 800.96 <none> 33049 801.63 + Sex 1 122.90 32926 803.09 Step: AIC=800.96 Days ~ Eth + Age + Lrn Df Sum of Sq RSS AIC <none> 32450 800.96 + Sex 1 213.82 32237 802.00
각 단계를 살펴보면 처음 절편만 있는 모형(Days ~ 1
)은 AIC가 815.18이다. 여기에 Eth
를 추가하면 AIC가 805.35감소한다. 여기에 Age
를 추가하면 801.63, Lrn
을 추가하면 800.96
까지 내려간다. 그러나 Sex
를 추가하면 AIC가 802.00으로 증가하기 때문에 추가하지 않는다. 결과적으로 Days ~ Eth + Age + Lrn
에서 멈춘다.
model.2 = lm(Days ~ Eth + Sex + Age + Lrn, data = quine)
step.backward = stepAIC(model.2, direction = "backward")
Start: AIC=802 Days ~ Eth + Sex + Age + Lrn Df Sum of Sq RSS AIC - Sex 1 213.82 32450 800.96 <none> 32237 802.00 - Lrn 1 689.29 32926 803.09 - Age 3 2645.84 34882 807.52 - Eth 1 2774.02 35011 812.05 Step: AIC=800.96 Days ~ Eth + Age + Lrn Df Sum of Sq RSS AIC <none> 32450 800.96 - Lrn 1 598.37 33049 801.63 - Age 3 2772.41 35223 806.93 - Eth 1 2747.81 35198 810.83
각 단계를 살펴보면 Days ~ Eth + Sex + Age + Lrn
는 AIC가 802이다. 여기서 Sex
를 빼면 800.96으로 AIC가 가장 많이 줄어든다. 그 다음에는 Lrn
을 빼도 801.63, Age
를 빼도 806.93, Eth
를 빼도 810.83으로 AIC가 증가하므로 아무 것도 제외하지 않고 멈춘다.