아마도 15 개의 가능한 lm 모델을 모두 보면서 단계별 회귀가 수행되는 방식을 이해하는 것이 더 쉬울 것입니다.
다음은 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)입니다.
기타
기본적으로 요약은 전체 모형에서 한 항을 단계적으로 제거 할 수있는 모든 단계적 제거를 나타내고 오름차순으로 추출하여 extractAIC 값을 비교합니다. AIC 값이 작을수록 TRUTH 모델과 유사 할 수 있으므로 1 단계에서 (-disp) 모델을 단계적으로 유지하십시오.
프로세스는 다시 반복되지만 유지 된 (-disp) 모델을 시작점으로 사용합니다. 모형을 비교할 수 있도록 항을 빼거나 ( "뒤로") 빼거나 더합니다 ( "둘 다"). 가장 낮은 AIC 값은 여전히 (-disp) 모델이므로 프로세스 중지 및 결과 모델이 제공됩니다.
쿼리와 관련하여 : "단계별 선택에서 + disp를 다시 추가하여 달성하려는 기능은 무엇입니까?",이 경우 실제로 아무 것도하지 않습니다. 왜냐하면 15 개 모델 중에서 가장 좋은 모델은 모델 11입니다. 즉, lm (mpg ~ wt + drat + qsec).
그러나 해결하기 위해 많은 단계가 필요한 다수의 예측 변수가있는 복잡한 모형에서 초기에 제거 된 항을 더하는 것이 항을 비교하는 가장 철저한 방법을 제공하는 데 중요합니다.
어떤 식 으로든 도움이되기를 바랍니다.