기능 선택을 위해 r에서 stepaic를 사용하는 방법


AIC (Akaike 정보 기준)는 모델이 데이터 세트에 얼마나 잘 맞는지를 정량화하는 데 사용되는 측정항목입니다.

다음과 같이 계산됩니다.

AIC = 2K – 2ln (L)

금:

  • K: 모델 매개변수의 수입니다. K의 기본값은 2이므로 예측 변수가 하나만 있는 모델의 K 값은 2+1 = 3입니다.
  • ln (L) : 모델의 로그 우도입니다. 대부분의 통계 소프트웨어는 이 값을 자동으로 계산할 수 있습니다.

AIC는 데이터의 가장 큰 변화를 설명하는 모델을 찾는 동시에 과도한 수의 매개변수를 사용하는 모델에 페널티를 적용하도록 설계되었습니다.

R의 MASS 패키지에 있는 stepAIC() 함수를 사용하면 AIC 값이 가장 낮은 모델을 생성하는 예측 변수(또는 “특성”) 집합을 찾을 때까지 회귀 모델에서 예측 변수를 반복적으로 추가하고 제거할 수 있습니다.

이 함수는 다음 기본 구문을 사용합니다.

stepAIC(객체, 방향, …)

금:

  • object : 조정된 모델의 이름
  • 방향 : 사용할 단계 검색 유형(“뒤로”, “앞으로” 또는 “둘 다”)

다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.

예: R에서 기능 선택을 위해 stepAIC() 사용

이 예에서는 R에 내장된 mtcars 데이터세트를 사용합니다. 여기에는 32개 자동차에 대한 11개 속성에 대한 측정값이 포함되어 있습니다.

 #view first six rows of mtcars dataset
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

hp를 응답 변수로 사용하고 다음과 같은 잠재적 예측 변수를 사용하여 회귀 모델을 적합화한다고 가정합니다.

  • mpg
  • 무게
  • q초

MASS 패키지의 stepAIC() 함수를 사용하여 가능한 가장 낮은 AIC 값을 갖는 모델에 도달할 때까지 모델에서 다양한 예측 변수를 더하고 뺄 수 있습니다.

 library (MASS)

#fit initial multiple linear regression model
model <- lm(hp ~ mpg + wt + drat + qsec, data=mtcars)

#use both forward and backward selection to find model with lowest AIC
stepAIC(model, direction=" both ")

Start: AIC=226.88
hp ~ mpg + wt + drat + qsec

       Df Sum of Sq RSS AIC
- drat 1 94.9 28183 224.98
- mpg 1 1519.4 29608 226.56
  none 28088 226.88
- wt 1 3861.9 31950 229.00
-qsec 1 28102.2 56190 247.06

Step: AIC=224.98
hp ~ mpg + wt + qsec

       Df Sum of Sq RSS AIC
- mpg 1 1424.5 29608 224.56
  none 28183 224.98
+ drat 1 94.9 28088 226.88
- wt 1 3797.9 31981 227.03
-qsec 1 29625.1 57808 245.97

Step: AIC=224.56
hp ~ wt + qsec

       Df Sum of Sq RSS AIC
  none 29608 224.56
+ mpg 1 1425 28183 224.98
+ drat 1 0 29608 226.56
- wt 1 43026 72633 251.28
-qsec 1 52881 82489 255.35

Call:
lm(formula = hp ~ wt + qsec, data = mtcars)

Coefficients:
(Intercept) wt qsec  
     441.26 38.67 -23.47  

결과를 해석하는 방법은 다음과 같습니다.

(1) 먼저, 4개의 예측 변수를 사용하여 회귀 모델을 피팅하는 것부터 시작합니다. 이 모델의 AIC 값은 226.88 입니다.

(2) 다음으로, stepAIC는 예측 변수로 drat를 제거하면 AIC 값이 224.98 로 더 감소할 것이라고 결정합니다.

(3) 다음으로, stepAIC 모델은 mpg를 예측 변수로 제거하면 AIC 값이 224.56 으로 더 감소할 것이라고 결정합니다.

(4) 마지막으로 stepAIC는 변수를 추가하거나 제거하여 AIC 값을 더 줄일 수 있는 방법이 없다고 판단합니다.

따라서 최종 모델은 다음과 같습니다.

hp = 441.26 + 38.67(무게) – 23.47(qsec)

이 모델의 AIC 값은 224.56 입니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 다중 선형 회귀를 수행하는 방법
R에서 조각별 회귀를 수행하는 방법
R에서 스플라인 회귀를 수행하는 방법

의견을 추가하다

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