R

R 기초 24 - AIC 통계량, stepwise regression, backward(후진소거법), forward(전진선택법), both(단계적 방법), 회귀모델 체크 사항

코딩탕탕 2022. 10. 26. 16:44

 

 

AIC 통계량 : 모델의 상대적 품질을 평가하는 척도이다.  효과적인 독립변수를 선택할 수 있다.

stepwise regression : 단계적으로 모형을 검정하면서 AIC 값을 비교한 후, 가장 적합한 회귀모형을 찾아준다.

backward(후진소거법) : 모든 변수를 독립변수로 주고, 기여도가 낮은 것부터 하나씩 제거.

forward(전진선택법) : 유익한 변수부터 하나씩 독립변수로 추가.

both(단계적 방법) : 

 

# AIC 통계량으로 두 모델의 성능 비교
AIC(model1, model2)
#        df      AIC
# model1  6 241.6429
# model2  4 237.6565   AIC 값이 더 작으므로 우수한 모델

# stepwise regression : 단계적으로 모형을 검정하면서 AIC 값을 비교한 후, 가장 적합한 회귀모형을 찾아준다.
# backward(후진소거법) : 모든 변수를 독립변수로 주고, 기여도가 낮은 것부터 하나씩 제거
full_model <- lm(Murder ~ ., data = states)
reduce_model <- step(full_model, direction = 'backward') 
# 기여도가 낮은 독립변수를 제거해나가면서 최종 독립변수를 추천해준다.
summary(reduce_model)

# forward(전진선택법) : 유익한 변수부터 하나씩 독립변수로 추가
min_model <- lm(Murder ~ 1, data = states) # 변수 없이 절편 값 1만 주고 출발
fwd_model <- step(min_model, direction = 'forward',
                  scope = (Murder ~ Population + Illiteracy + Income + Frost), trace = 1) 
summary(fwd_model)

# both(단계적 방법) : 
full_model <- lm(Murder ~ ., data = states)
step_model <- step(full_model, direction = 'both') 
summary(step_model)

 

회귀모델 체크 사항

1. 모델이 통계적으로 유의한가? F 통계량으로 만든 p-value
2. 회귀계수가 유의미한가? p-value, 신뢰구간을 확인
3. 설명력 확인
4. 그래프를 통한 확인
5. 선형회귀분석의 기존 가정 충족 조건을 만족하는가?