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

전진 단계 선택과 양방향 단계 선택은 동일한 최종 패턴을 생성한 반면, 후진 단계 선택은 다른 패턴을 생성했습니다.

추가 리소스

회귀 기울기의 중요성을 테스트하는 방법
회귀표를 읽고 해석하는 방법
회귀 분석의 다중 공선성에 대한 가이드

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다