R의 단계별 회귀에 대한 완전한 가이드
단계적 회귀는 더 이상 입력하거나 입력할 통계적으로 유효한 이유가 없을 때까지 모델에서 단계별 방식으로 예측 변수를 입력하고 제거하여 일련의 예측 변수에서 회귀 모델을 구축하는 데 사용할 수 있는 절차입니다. 더 삭제하세요.
단계적 회귀 분석의 목표는 반응 변수와 통계적으로 유의하게 관련된 모든 예측 변수를 포함하는 회귀 모델을 만드는 것입니다.
이 튜토리얼에서는 R에서 다음과 같은 단계별 회귀 절차를 수행하는 방법을 설명합니다.
- 단계별 앞으로 선택
- 단계별 역방향 선택
- 양방향으로 단계별 선택
각 예에서는 내장된 mtcars 데이터 세트를 사용합니다.
#view first six rows of mtcars
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1
mpg (갤런당 마일 수)를 응답 변수로 사용하고 데이터 세트의 다른 10개 변수를 잠재적 예측 변수로 사용하여 다중 선형 회귀 모델을 적합화합니다.
각 예에 대해 stats 패키지에 내장된 step() 함수를 사용하여 다음 구문을 사용하는 단계별 선택을 수행합니다.
단계(차단 모델만, 방향, 범위)
금:
- 원본 모델만 : 원본 모델의 공식만
- 방향: 단계 검색 모드는 “모두”, “뒤로” 또는 “앞으로”일 수 있습니다.
- 범위: 모델에 입력하려는 예측 변수를 지정하는 공식
예 1: 단계별 전진 선택
다음 코드는 선택을 단계별로 수행하는 방법을 보여줍니다.
#define intercept-only model intercept_only <- lm(mpg ~ 1, data=mtcars) #define model with all predictors all <- lm(mpg ~ ., data=mtcars) #perform forward stepwise regression forward <- step(intercept_only, direction=' forward ', scope= formula (all), trace=0) #view results of forward stepwise regression forward$anova Step Df Deviance Resid. Df Resid. Dev AIC 1 NA NA 31 1126.0472 115.94345 2 + wt -1 847.72525 30 278.3219 73.21736 3 + cyl -1 87.14997 29 191.1720 63.19800 4 + hp -1 14.55145 28 176.6205 62.66456 #view final model forward$coefficients (Intercept) wt cyl hp 38.7517874 -3.1669731 -0.9416168 -0.0180381
참고: Trace=0 인수는 R에게 단계별 선택의 전체 결과를 표시하지 않도록 지시합니다. 예측 변수의 수가 많은 경우 이는 많은 공간을 차지할 수 있습니다.
결과를 해석하는 방법은 다음과 같습니다.
- 첫째, 절편 전용 모델을 적합합니다. 이 모델의 AIC는 115.94345 입니다.
- 그런 다음 가능한 모든 모델을 예측 변수에 맞춥니다. 가장 낮은 AIC를 생성하고 또한 wt 예측변수를 사용한 기준선 전용 모델에 비해 AIC가 통계적으로 유의하게 감소한 모델입니다. 이 모델의 AIC는 73.21736 입니다.
- 다음으로, 두 개의 예측 변수를 사용하여 가능한 모든 모델을 적합시킵니다. 가장 낮은 AIC를 생성하고 단일 예측 모델에 비해 AIC가 통계적으로 유의하게 감소한 모델에 cyl 예측 변수가 추가되었습니다. 이 모델의 AIC는 63.19800 입니다.
- 다음으로, 가능한 모든 모델을 세 가지 예측 변수에 적합합니다. 가장 낮은 AIC를 생성하고 2-예측자 모델에 비해 AIC가 통계적으로 유의하게 감소한 모델에는 hp 예측자가 추가되었습니다. 이 모델의 AIC는 62.66456 입니다.
- 다음으로, 가능한 모든 모델을 4개의 예측 변수에 적합합니다. 이들 모델 중 어느 것도 AIC를 크게 감소시키지 못하여 절차를 중단했습니다.
최종 모델은 다음과 같습니다.
mpg ~ 38.75 – 3.17*중량 – 0.94*cyl – 0.02*hyp
예시 2: 단계별 역방향 선택
다음 코드는 뒤로 이동하는 방법을 보여줍니다.
#define intercept-only model intercept_only <- lm(mpg ~ 1, data=mtcars) #define model with all predictors all <- lm(mpg ~ ., data=mtcars) #perform backward stepwise regression backward <- step(all, direction=' backward ', scope= formula (all), trace=0) #view results of backward stepwise regression backward$anova Step Df Deviance Resid. Df Resid. Dev AIC 1 NA NA 21 147.4944 70.89774 2 - cyl 1 0.07987121 22 147.5743 68.91507 3 - vs 1 0.26852280 23 147.8428 66.97324 4 - carb 1 0.68546077 24 148.5283 65.12126 5 - gear 1 1.56497053 25 150.0933 63.45667 6 - drat 1 3.34455117 26 153.4378 62.16190 7 - available 1 6.62865369 27 160.0665 61.51530 8 - hp 1 9.21946935 28 169.2859 61.30730 #view final model backward$coefficients (Intercept) wt qsec am 9.617781 -3.916504 1.225886 2.935837
결과를 해석하는 방법은 다음과 같습니다.
- 먼저 모든 p 예측 변수를 사용하여 모델을 적합합니다. 이것을 M p 로 정의합니다.
- 그런 다음 k = p, p-1,…1에 대해 M k 에 하나를 제외한 모든 예측 변수를 포함하는 모든 k 모델을 적합시켜 총 k-1 예측 변수에 적용합니다. 그런 다음 이 k개 모델 중에서 가장 좋은 모델을 선택하고 이를 M k-1 이라고 합니다.
- 마지막으로 AIC를 사용하여 M 0 ~ M p 중에서 최상의 모델을 선택합니다.
최종 모델은 다음과 같습니다.
mpg ~ 9.62 – 3.92*체중 + 1.23*qsec + 2.94*am
예 3: 양방향에서 단계별 선택
다음 코드는 양방향으로 단계별 선택을 수행하는 방법을 보여줍니다.
#define intercept-only model intercept_only <- lm(mpg ~ 1, data=mtcars) #define model with all predictors all <- lm(mpg ~ ., data=mtcars) #perform backward stepwise regression both <- step(intercept_only, direction=' both ', scope= formula (all), trace=0) #view results of backward stepwise regression both$anova Step Df Deviance Resid. Df Resid. Dev AIC 1 NA NA 31 1126.0472 115.94345 2 + wt -1 847.72525 30 278.3219 73.21736 3 + cyl -1 87.14997 29 191.1720 63.19800 4 + hp -1 14.55145 28 176.6205 62.66456 #view final model both$coefficients (Intercept) wt cyl hp 38.7517874 -3.1669731 -0.9416168 -0.0180381
결과를 해석하는 방법은 다음과 같습니다.
- 첫째, 절편 전용 모델을 적합합니다.
- 다음으로, 단계별 선택에서와 마찬가지로 예측 변수를 모델에 순차적으로 추가했습니다. 그러나 각 예측 변수를 추가한 후 더 이상 모델 적합성을 향상시키지 못하는 예측 변수도 제거했습니다.
- 우리는 최종 모델이 나올 때까지 이 과정을 반복했습니다.
최종 모델은 다음과 같습니다.
mpg ~ 9.62 – 3.92*체중 + 1.23*qsec + 2.94*am
전진 단계 선택과 양방향 단계 선택은 동일한 최종 패턴을 생성한 반면, 후진 단계 선택은 다른 패턴을 생성했습니다.