
회귀모델에서 독립변수의 증가는 모델의 결정계수를 증가시켜 설명력을 높이는 장점이 있지만 다중 공선성 문제를 일으킬 수 있어서 추정의 신뢰도를 저하시킬 수 있고, 독립변수가 많을 경우 예측성능이 좋지 않을 가능성이 많고 독립성, 등분산성 등의 가정을 만족시키기 어렵기 때문에 독립변수를 줄일 필요가 있다.
전진 선택법(Forward Selection): 절편만 있는 모델에서 기준 통계치를 가장 많이 개선시키는 변수를 차례로 추가
후진 제거법(Backward elimination): 모든 변수가 포함된 모델에서 기준 통계치에 가장 도움이 되지 않는 변수를 하나씩 제거하는 방법
단계선택법(Stepwise selction): 모든 변수가 포함된 모델에서 출발하여 기준 통계치에 가장 도움이 되지 않는 변수를 삭제하거나, 모델에서 빠져 있는 변수 중에서 기준 통계치를 가장 개선시키는 변수를 추가. 이렇게 변수의 추가 또는 삭제를 반복. 또는 절편만 포함된 모델에서 시작해 변수의 추가, 삭제를 반복할 수 도 있다.
실습1.
mlbench 패키지 안의 BostonHousing 데이터 이용
http://math.furman.edu/~dcs/courses/math47/R/library/mlbench/html/BostonHousing.html
종속변수는 medv(집의 중위가격)
1. 전진선택법 (Forward Selection)
실습1-1
============
# 전진선택법
library(mlbench)
data("BostonHousing")
# 회귀
ss <- lm(medv ~ .,data=BostonHousing)
# 전진선택
ss1 <- step(ss, direction = "forward")
formula(ss1)

2. 후진제거법 (Backward Elimination)
다중회귀모형에서 적절한 변수 선택을 위하여 후진제거방법
실습1-2
# 후진제거법
=============
library(mlbench)
data("BostonHousing")
# 회귀
ss <- lm(medv ~ .,data=BostonHousing)
# 후진제거
ss2 <- step(ss, direction = "backward")
formula(ss2)


실습2
attitude 데이터 이용
rating(등급)에 영향을 미치는 요인을 회귀를 이용해 식별
종속변수 rating에 영향을 미치는 독립변수: complaints, privileges, learning, raises, critical, advance
data(attitude)
head(attitude)
# 회귀분석
model <- lm(rating~. , data=attitude)
# 수행결과
summary(model)

p-value가 <0.05 이므로 통계적으로 의미가 있음.
수정결정계수는 0.6628.
변수중 통계적으로 유의한 것은 complaints, learnings
coefficients 평가 의미
*** : 0 ~ 0.001
** : 0.001 ~ 0.01
* : 0.01 ~ 0.05
. : 0.05 ~ 0.1

일반적으로 사용하는 후진제거법 사용
#독립변수 제거
reduced <- step(model, direction="backward")
summary(reduced)

step에서 critical 제거 --> raise 제거 --> privileges 제거 --> advance 제거

p-value가 < 0.05 이므로 통계적으로 의미가 있음.
수정결정계수: 0.6864
3. 단계선택법(Stepwise Selection)
실습1-3.
# 단계적 선택방법
library(mlbench)
data("BostonHousing")
# 회귀
ss <- lm(medv ~ .,data=BostonHousing)
# 단계적선택
ss3 <- step(ss, direction = "both")
formula(ss3)


13개의 독립변수로 시작 (AIC값: 1,589.64) --> age변수 제거(AIC값: 1587.65) --> indus변수 제거(AIC값: 1,586.75) --> 최종 회귀식
AIC 공식
'데이터분석 > 통계기반' 카테고리의 다른 글
요인분석 (Factor Analysis) (0) | 2022.12.12 |
---|---|
상관관계 분석 (1) | 2022.12.12 |
로지스틱 회귀분석(Logistic Regression Analysis) (0) | 2022.12.12 |
회귀분석(Regression Analysis) (0) | 2022.12.12 |
분산분석(ANOVA Analysis) (F-검정) (0) | 2022.12.12 |