티스토리 뷰
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 $
'R' 카테고리의 다른 글
(macOS)[R] 다변량 분석 : 상관 분석(Correlation Analysis) - 1 (0) | 2022.04.16 |
---|---|
(macOS)[R] 기초 통계 분석 : 최적 회귀 방정식 선택(설명변수 선택) - 3 (0) | 2022.04.15 |
(macOS)[R] 기초 통계 분석 : 최적 회귀 방정식 선택(설명변수 선택) - 1 (0) | 2022.04.14 |
(macOS)[R] 기초 통계 분석 : 회귀 분석(Regression Analysis) - 4 (0) | 2022.04.13 |
(macOS)[R] 기초 통계 분석 : 회귀 분석(Regression Analysis) - 3 (0) | 2022.04.11 |
- Total
- Today
- Yesterday
- git
- template
- DS18B20
- r
- SSH
- raspberrypi
- arduino
- github
- 라즈베리파이
- Django
- CSV
- 자가격리
- 확진
- 코로나19
- server
- Pandas
- MacOS
- analysis
- DAQ
- COVID-19
- vscode
- Raspberry Pi
- Regression
- ERP
- Model
- Templates
- Python
- pyserial
- 코로나
- sublime text
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |