¿Un enfoque gradual produce el modelo más alto ?

8

Cuando se utiliza el enfoque progresivo hacia adelante para seleccionar variables, ¿se garantiza que el modelo final tenga el más alto posible ? Dicho de otra manera, ¿el enfoque gradual garantiza un óptimo global o solo un óptimo local?R2

Como ejemplo, si tengo 10 variables para seleccionar y deseo construir un modelo de 5 variables, ¿el resultado final del modelo de 5 variables construido por el enfoque escalonado tendrá el más alto de todos los modelos de 5 variables posibles que podrían ¿han sido construidos?R2

Tenga en cuenta que esta pregunta es puramente teórica, es decir, no estamos debatiendo si un valor alto es óptimo, si conduce a un sobreajuste, etc.R2

zabidlo
fuente
2
Creo selección paso a paso se va a dar la más alta posible en el sentido de que se hará con preferencia a ser mucho más alto que el modelo verdadero (es decir, que será no resulta en el modelo óptimo). Es posible que desee leer esto . R2
gung - Restablece a Monica
10
Se alcanza un máximo cuando se incluyen todas las variables. Este es claramente el caso porque incluir una nueva variable no puede disminuir . De hecho, ¿en qué sentido te refieres a "local" y "global"? La selección de variables es un problema discreto: elija uno de los subconjuntos de variables, entonces, ¿cuál sería una vecindad local de un subconjunto? R2R22kk
whuber
Vuelva a editar: ¿Podría describir el "enfoque gradual" que tiene en mente? (Las que conozco no llegan a un número específico de variables: parte de su propósito es ayudarlo a decidir cuántas variables usar.)
whuber
¿Crees que un más alto (en bruto) es algo bueno? Es por eso que han ajustado , AIC, etc.R2R2
Wayne
1
Para un R2 máximo, incluya todas las interacciones de 2 y 3 vías, diversas transformaciones (log, inverso, cuadrado, etc.), fases de la luna, etc.
Zach

Respuestas:

5

No necesariamente obtendrá el R más alto porque solo compara un subconjunto de modelos posibles y puede omitir el que tiene el R más alto que incluiría todas las variables. Para obtener ese modelo, necesitaría observar todos los subconjuntos . Pero el mejor modelo puede no ser el que tiene el R más alto porque puede ser que usted esté demasiado en forma porque incluye todas las variables.222

Michael R. Chernick
fuente
1
También creo esto, pero para ser convincente, porque no ha proporcionado un argumento riguroso, sería muy agradable ver un ejemplo real. Sería aún mejor comprender por qué un procedimiento escalonado que converge a variables (por ejemplo) podría no converger a la combinación más alta de de variables (que no requeriría buscar en todos los subconjuntos). kR2k
whuber
Los procedimientos paso a paso dependen de dónde comience. Si comienza con dos conjuntos iniciales de variables diferentes, podría llevarlo a diferentes soluciones. El punto es que en cada paso hay un criterio en el estadístico F para que una variable ingrese y también para que una variable salga. La estadística F depende de las variables que están actualmente en el modelo. El procedimiento se detiene cuando ni la F para entrar ni la F para salir son estadísticamente significativas en el umbral especificado. Entonces, eso podría suceder fácilmente antes de agregar todas las variables al modelo.
Michael R. Chernick
Esto podría demostrarse fácilmente con un ejemplo en SAS con la salida pegada en la respuesta.
Michael R. Chernick
1
Estoy de acuerdo, pero encontrar el contraejemplo es la parte difícil, @Michael, ¡no usar el software!
whuber
¡De cualquier manera es mucho trabajo!
Michael R. Chernick
13

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' )

R2

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.).

Greg Snow
fuente
2
+1 ¡Bien hecho! Los ejemplos son mucho más convincentes que invocar posibilidades hipotéticas. Pero si alguna vez tiene la oportunidad, considere compartir el proceso de pensamiento que atravesó al construir este contraejemplo.
whuber
Su explicación del procedimiento es invaluable: este es el tipo de material revelador y práctico que aparece solo en los documentos más lúcidos, si es que lo hace, y de lo contrario tiene que ser aprendido directamente de otros o reinventado. (Ojalá pudiera agregar otro
voto a favor
4

Si realmente quieres llegar a lo más alto R2tienes que mirar (como dijo @ Michael) en todos los subconjuntos. Con muchas variables, eso a veces no es factible, y existen métodos para acercarse sin probar cada subconjunto. Un método se llama (IIRC) "pasos agigantados" y está en los saltos del paquete R.

Sin embargo, esto arrojará resultados muy sesgados. los valores de p serán demasiado bajos, los coeficientes se desviarán de 0, los errores estándar serán demasiado pequeños; y todo por montos que son imposibles de estimar adecuadamente.

La selección por pasos también tiene este problema.

Recomiendo fuertemente contra cualquier método de selección de variables automatizado, porque lo peor de ellos es que le impida pensar; o, para decirlo de otra manera, un analista de datos que usa métodos automatizados le está diciendo a su jefe que le pague menos.

Si debe utilizar un método automatizado, debe separar sus datos en conjuntos de entrenamiento y prueba, o posiblemente conjuntos de entrenamiento, validación y finales.

Peter Flom
fuente
1
la selección por pasos no es tan mala como se hace si el propósito es la predicción o el uso de la secuencia de modelos producidos. de hecho, muchos algoritmos rj mcmc para la selección de modelos son básicamente "aleatorios paso a paso", ya que las propuestas generalmente consisten en agregar o eliminar una variable.
probabilityislogic
1
Stepwise ha demostrado ser horrible. Para más detalles, consulte el libro de Frank Harrell Estrategias de modelado de regresión. ¿Qué es el RJ? Es cierto que la secuencia de modelos puede decir algo útil, pero ¿entonces qué? También tengo muchos problemas con los valores p, pero ese es otro problema (o vea The Cult of Significance Testing)
Peter Flom
1
@PeterFlom - RJ es un salto reversible. paso a paso es simplemente una forma rápida de buscar en el espacio modelo, haciendo que el problema sea menos propenso a la explosión combinatoria. Pero necesita "reinicios múltiples" para ayudar a evitar que se atasque en un modo local. Aunque creo que tendré que conseguir este libro.
probabilidadislogica
2
@Macro, incluso en el caso ortogonal, ves por qué el (ingenuo) p-los valores estarían apagados, ¿correcto? También ves por qué|β^|del modelo "seleccionado" tenderá a ser (es decir, estocástico) más grande que en el caso no seleccionado, ¿correcto? Digamos que tenía solo dos variables ortogonales, ambasβi=0, y su selección de modelo fue elegir el que tenga la menor p-valor a mantener (igual que elegir el de mayor magnitud).
cardenal
1
@ cardinal, ya veo. Esto es básicamente el resultado del hecho de que cuando tienes una muestra de iidX1,...,Xn, entonces
E(min{X1,...,Xn})<E(X1)
si te estoy entendiendo correctamente. Eso tiene sentido.
Macro