티스토리 뷰

INTRO

1. 후진 제거법(Backward Elimination)

2. 전진 선택법(Forward Selection)

3. 단계별 방법(Stepwise Method)

 

2. 전진 선택법

절편만 있는 상수모형으로부터 시작해 중요하다고 생각되는 설명변수 중 모형에 추가했을 때 제곱합의 기준으로 가장 설명을 잘하는 변수를 고려하여 추가하고 그렇지 않은 경우 추가를 멈추는 방법

 

dataset

MASS package hills data

time을 종속변수로 forward selection

 

test_forward_selection_step.R
rm(list=ls())
setwd = "~/Rcoding"

library(MASS)
data(hills)
head(hills)

step_forward_model = step(lm(time ~ 1,hills), scope=list(lower=~1,upper=~dist+climb), direction="forward")
step_forward_model
summary(step_forward_model)

par(mfrow=c(2,2))
plot(step_forward_model)

출력결과 : model

> source("~/Rcoding/test_forward_selection.R", echo=TRUE)

> rm(list=ls())

> setwd = "~/Rcoding"

> library(MASS)

> data(hills)

> head(hills)
             dist climb   time
Greenmantle   2.5   650 16.083
Carnethy      6.0  2500 48.350
Craig Dunain  6.0   900 33.650
Ben Rha       7.5   800 45.600
Ben Lomond    8.0  3070 62.267
Goatfell      8.0  2866 73.217

> step_forward_model = step(lm(time ~ 1,hills), scope=list(lower=~1,upper=~dist+climb), direction="forward")
Start:  AIC=274.88
time ~ 1

        Df Sum of Sq   RSS    AIC
+ dist   1     71997 13142 211.49
+ climb  1     55205 29934 240.30
<none>               85138 274.88

Step:  AIC=211.49
time ~ dist

        Df Sum of Sq     RSS    AIC
+ climb  1    6249.7  6891.9 190.90
<none>               13141.6 211.49

Step:  AIC=190.9
time ~ dist + climb


> step_forward_model

Call:
lm(formula = time ~ dist + climb, data = hills)

Coefficients:
(Intercept)         dist        climb  
   -8.99204      6.21796      0.01105  


> summary(step_forward_model)

Call:
lm(formula = time ~ dist + climb, data = hills)

Residuals:
    Min      1Q  Median      3Q     Max 
-16.215  -7.129  -1.186   2.371  65.121 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -8.992039   4.302734  -2.090   0.0447 *  
dist         6.217956   0.601148  10.343 9.86e-12 ***
climb        0.011048   0.002051   5.387 6.45e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 14.68 on 32 degrees of freedom
Multiple R-squared:  0.9191,	Adjusted R-squared:  0.914 
F-statistic: 181.7 on 2 and 32 DF,  p-value: < 2.2e-16


> par(mfrow=c(2,2))

> plot(step_forward_model)

 

Regression Analysis : step_forward_model

AIC(Akike Information Criterion)이 가장 작은 값을 갖는 모델을 최적 모델로 선택한다.

 

Start:  AIC=274.88

time ~ 1

        Df Sum of Sq   RSS    AIC

+ dist   1     71997 13142 211.49

+ climb  1     55205 29934 240.30

<none>               85138 274.88

-> 상수항만 가지는 모델(lower=~1)로 시작 AIC=274.88, 가장 작은 AIC 211.49를 가지는 설명변수 dist 추가

 

Step:  AIC=211.49

time ~ dist

        Df Sum of Sq     RSS    AIC

+ climb  1    6249.7  6891.9 190.90

<none>               13141.6 211.49

-> 상수항과 설명변수 dist를 추가했을 경우 이전 모델과 비교하여 작은 AIC=190.90을 가지는 설명변수 climb을 추가

 

Step:  AIC=190.9 time ~ dist + climb

-> 설정된 독립변수(설명변수)를 dist와 climb 모두 채택

 

 

F-statistic: 181.7 on 2 and 32 DF,  p-value: < 2.2e-16로 유의수준 5% 하에서 추정된 회귀 모형이 통계적으로 매우 유의함

(Intercept) p-value < 0.05, dist coef. p-value < 0.001, climb coef. p-value < 0.001

 

$ time = -8.99204 + 6.21796*dist + 0.01105*climb $

 

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함