R의 단계적 회귀-어떻게 작동합니까?

단계 함수를 사용하여 R에서 단계적 회귀와 후진 회귀의 기본적인 차이점을 이해하려고합니다. 단계적 회귀를 위해 다음 명령을 사용했습니다.

 step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="both") 

위 코드에 대해 아래 출력을 얻었습니다.

앞으로

뒤로 변수 선택을 위해 다음 명령을 사용했습니다.

 step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="backward") 

뒤로 아래 출력을 얻었습니다

backward

내가 이해 한 바와 같이, 매개 변수가 지정되지 않은 경우, 매개 변수 “upper”및 “lower”가 R에 지정되지 않는 한 단계적 선택이 역방향으로 작동합니다. 그러나 단계적 선택의 출력에서는, 두 번째 단계에서 추가 된 + disp가 있습니다. 단계적 선택에서 + disp를 다시 추가하여 달성하려는 기능은 무엇입니까? R이 2 단계에서 + disp를 추가하는 반면 결과는 역방향 선택과 동일한 (AIC 값 및 모델 선택 값) 이유입니다. R은 단계적 선택에서 정확히 어떻게 작동합니까?

이 기능이 R에서 어떻게 작동하는지 정말로 이해하고 싶습니다. 도움을 주셔서 미리 감사드립니다!

답변

15 개의 가능한 모든 작품 모델을 살펴보면 단계적 회귀가 어떻게 이루어지고 있는지 이해하는 것이 더 쉬울 것입니다.

15 가지 조합 모두에 대한 공식을 생성하는 빠른 방법입니다.

library(leaps) tmp<-regsubsets(mpg ~ wt + drat + disp + qsec, data=mtcars, nbest=1000, really.big=T, intercept=F) all.mods <- summary(tmp)[[1]] all.mods <- lapply(1:nrow(all.mods, function(x)as.formula(paste("mpg~", paste(names(which(all.mods[x,])), collapse="+")))) head(all.mods) [[1]] mpg ~ drat <environment: 0x0000000013a678d8> [[2]] mpg ~ qsec <environment: 0x0000000013a6b3b0> [[3]] mpg ~ wt <environment: 0x0000000013a6df28> [[4]] mpg ~ disp <environment: 0x0000000013a70aa0> [[5]] mpg ~ wt + qsec <environment: 0x0000000013a74540> [[6]] mpg ~ drat + disp <environment: 0x0000000013a76f68> 

각 모델의 AIC 값은 다음을 사용하여 추출됩니다.

all.lm<-lapply(all.mods, lm, mtcars) sapply(all.lm, extractAIC)[2,] [1] 97.98786 111.77605 73.21736 77.39732 63.90843 77.92493 74.15591 79.02978 91.24052 71.35572 [11] 63.89108 65.90826 78.68074 72.97352 65.62733 

단계 회귀로 돌아 갑시다. lm (mpg ~ wt + drat + disp + qsec)의 extractAIC 값은 65.63입니다 (위 목록의 모델 15와 동일).

모델이 disp (-disp)를 제거하면 lm (mpg ~ wt + drat + qsec)은 63.891 (또는 목록의 모델 11)입니다.

아무것도 제거하지 않으면 (없음) AIC는 여전히 65.63입니다.

모델이 qsec를 제거하면 (-qsec), lm (mpg ~ wt + drat + disp)는 65.908 (모델 12)입니다.

p>

etc.

기본적으로 요약은 전체 모델에서 한 용어의 가능한 모든 단계적 제거를 보여주고 오름차순으로 나열하여 extractAIC 값을 비교합니다. AIC 값이 작을수록 TRUTH 모델과 비슷할 가능성이 높으므로 1 단계에서 (-disp) 모델을 유지합니다.

프로세스가 다시 반복되지만 유지 (-disp) 모델이 시작점으로 사용됩니다. 용어는 모델을 비교할 수 있도록 빼거나 ( “뒤로”) 빼거나 더합니다 ( “둘 다”). 비교에서 가장 낮은 AIC 값은 여전히 (-disp) 모델이므로 프로세스 중지 및 결과 모델이 제공됩니다.

쿼리 관련 : “+ disp를 다시 추가하여 달성하려는 기능은 무엇입니까? 단계적 선택에서? “,이 경우”아무것도하지 않습니다. 15 개 모델 모두에서 가장 좋은 모델은 모델 11입니다. 즉 lm (mpg ~ wt + drat + qsec).

그러나 해결하는 데 수많은 단계가 필요한 예측 변수가 많은 복잡한 모델에서는 처음에 제거 된 용어를 다시 추가하는 것이 가장 철저한 용어 비교 방법을 제공하는 데 중요합니다.

이 도움이되기를 바랍니다.

코멘트

  • " 작은 AIC 값이 TRUTH 모델 "은 곧바로 거짓입니다. 단계적 모델 구축은 다른 여러 문제 중에서도 참 예측자를 거부하는 것처럼 거짓 예측자를 유지할 가능성이 거의 동일합니다. stats.stackexchange.com/questions/115843/…
  • 물론 그렇습니다. ' 거짓말입니다. 이것이 ' 단일 기준 (예 : 단계적 회귀)을 기반으로 한 모델 선택이 다소 순진한 이유입니다.
  • @Alexis는 링크의 답변에서 귀하의 추천을 좋아합니다.

답변

간단한 답변입니다. 첫째, 두 절차 모두 주어진 모델의 AIC를 줄이려고하지만 다른 방식으로 수행합니다. 그런 다음 기본 차이점은 역방향 선택 절차에서는 모든 단계에서 모델의 변수 만 버릴 수있는 반면, 단계적 선택에서는 모델에 변수를 추가 할 수도 있다는 것입니다.

단계별 출력 정보 일반적으로 출력에는 AIC를 줄이기 위해 주문한 대안이 표시되므로 모든 단계의 첫 번째 행이 최선의 선택입니다. 그런 다음 세 번째 행에 +disp가 있습니다. 해당 변수를 모델에 추가하는 것이 AIC를 줄이는 세 번째로 좋은 옵션이기 때문입니다. 그러나 가장 좋은 대안은 <none>이므로 아무것도하지 않음을 의미하므로 절차가 중지되고 역방향 선택에서와 동일한 결과가 제공됩니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다