Aquí hay un contraejemplo que usa datos generados aleatoriamente y R:
library(MASS)
library(leaps)
v <- matrix(0.9,11,11)
diag(v) <- 1
set.seed(15)
mydat <- mvrnorm(100, rep(0,11), v)
mydf <- as.data.frame( mydat )
fit1 <- lm( V1 ~ 1, data=mydf )
fit2 <- lm( V1 ~ ., data=mydf )
fit <- step( fit1, formula(fit2), direction='forward' )
summary(fit)$r.squared
all <- leaps(mydat[,-1], mydat[,1], method='r2')
max(all$r2[ all$size==length(coef(fit)) ])
plot( all$size, all$r2 )
points( length(coef(fit)), summary(fit)$r.squared, col='red' )
Whuber quería el proceso de pensamiento: es principalmente un contraste entre la curiosidad y la pereza. La publicación original hablaba de tener 10 variables predictoras, así que eso es lo que usé. La correlación 0.9 fue un buen número redondo con una correlación bastante alta, pero no demasiado alta (si es demasiado alta, entonces probablemente solo recogería 1 o 2 predictores), pensé que la mejor oportunidad de encontrar un contraejemplo incluiría una buena cantidad de colinealidad. Un ejemplo más realista habría tenido varias correlaciones diferentes (pero aún una buena cantidad de colinealidad) y una relación definida entre los predictores (o un subconjunto de ellos) y la variable de respuesta. El tamaño de la muestra de 100 también fue el primero que probé como un buen número redondo (y la regla general dice que debe tener al menos 10 observaciones por predictor). Probé el código anterior con las semillas 1 y 2, luego envolví todo en un bucle y lo hice probar diferentes semillas secuencialmente. En realidad se detuvo en la semilla 3, pero la diferencia enR2 estaba en el decimoquinto punto decimal, así que pensé que era más probable que fuera un error de redondeo y lo reinicié con el primer redondeo de comparación a 5 dígitos. Me sorprendió gratamente que encontrara una diferencia tan pronto como 15. Si no hubiera encontrado un contraejemplo en un tiempo razonable, habría comenzado a ajustar las cosas (la correlación, el tamaño de la muestra, etc.).