¿Es incorrecto elegir características basadas en el valor p?

12

Hay varias publicaciones sobre cómo seleccionar funciones. Uno de los métodos describe la importancia de la característica basada en estadísticas t. En R varImp(model)aplicado en modelo lineal con características estandarizadas, se utiliza el valor absoluto del estadístico t para cada parámetro del modelo. Entonces, básicamente elegimos una característica basada en sus estadísticas t, lo que significa qué tan preciso es el coeficiente. Pero, ¿la precisión de mi coeficiente me dice algo sobre las capacidades predictivas de la función?

¿Puede suceder que mi característica tenga una estadística t baja pero que aún mejore (digamos) la precisión del modelo? En caso afirmativo, ¿cuándo querría excluir variables basadas en las estadísticas t? ¿O da solo un punto de partida para verificar las habilidades predictivas de variables no importantes?

Alina
fuente
3
Para una prueba de una muestra de la media, el estadístico t es simplemente la media de la muestra dividida por el error estándar estimado (desviación estándar de la muestra dividida por la raíz cuadrada del tamaño de la muestra). Esa estadística en sí misma no depende de ninguna hipótesis particular. Derivar un valor de p de esa estadística no depende de una hipótesis.
Dan Hicks
@DanHicks Edité mi pregunta.
Alina
No estoy muy familiarizado con caret, pero parece que varImp()está destinado a ser una función informativa o de diagnóstico y no se utiliza directamente para la selección o eliminación de funciones.
david25272

Respuestas:

11

El estadístico t puede tener casi nada que decir sobre la capacidad predictiva de una característica, y no se deben usar para eliminar el predictor o permitir que los predictores entren en un modelo predictivo.

Los valores P dicen que las características espurias son importantes

Considere la siguiente configuración de escenario en R. Creemos dos vectores, el primero es simplemente monedas al azar:5000

set.seed(154)
N <- 5000
y <- rnorm(N)

El segundo vector son observaciones, cada una asignada aleatoriamente a una de 500 clases aleatorias de igual tamaño:5000500

N.classes <- 500
rand.class <- factor(cut(1:N, N.classes))

Ahora ajustamos un modelo lineal para predecir ydado rand.classes.

M <- lm(y ~ rand.class - 1) #(*)

La correcta valor para todos los coeficientes es cero, ninguno de ellos tiene ningún poder predictivo. Sin embargo, muchos de ellos son significativos al nivel del 5%

ps <- coef(summary(M))[, "Pr(>|t|)"]
hist(ps, breaks=30)

Histograma de valores p

De hecho, deberíamos esperar que alrededor del 5% de ellos sean significativos, ¡aunque no tengan poder predictivo!

Los valores P no pueden detectar características importantes

Aquí hay un ejemplo en la otra dirección.

set.seed(154)
N <- 100
x1 <- runif(N)
x2 <- x1 + rnorm(N, sd = 0.05)
y <- x1 + x2 + rnorm(N)

M <- lm(y ~ x1 + x2)
summary(M)

He creado dos predictores correlacionados , cada uno con poder predictivo.

M <- lm(y ~ x1 + x2)
summary(M)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   0.1271     0.2092   0.608    0.545
x1            0.8369     2.0954   0.399    0.690
x2            0.9216     2.0097   0.459    0.648

Los valores p no pueden detectar el poder predictivo de ambas variables porque la correlación afecta la precisión con que el modelo puede estimar los dos coeficientes individuales a partir de los datos.

Las estadísticas inferenciales no están ahí para informar sobre el poder predictivo o la importancia de una variable. Es un abuso de estas medidas usarlas de esa manera. Hay opciones mucho mejores disponibles para la selección de variables en modelos lineales predictivos, considere usar glmnet.

(*) Tenga en cuenta que estoy dejando una intercepción aquí, por lo que todas las comparaciones son a la línea de base de cero, no a la media grupal de la primera clase. Esta fue la sugerencia de @ whuber.

Como condujo a una discusión muy interesante en los comentarios, el código original fue

rand.class <- factor(sample(1:N.classes, N, replace=TRUE))

y

M <- lm(y ~ rand.class)

que condujo al siguiente histograma

Histograma sesgado de valores p

Matthew Drury
fuente
2
Hmm, ¿por qué esta distribución del valor p no es uniforme?
ameba dice Reinstate Monica
44
Wow, ¿cómo elegiste el número de semilla? Cualquier otro resultado en ps casi uniforme ...
psychOle
3
Intento usar siempre la misma semilla para este tipo de cosas: en.wikipedia.org/wiki/154_(album)
Matthew Drury
99
Está realizando las pruebas incorrectas: está comparando 499 medias de grupo con la media del primer grupo. Con la semilla 154, la media del primer grupo de 1.18 ... es inusualmente alta (lo que puede suceder porque el tamaño del grupo de 5 es muy pequeño), por lo que la mayoría de los otros tienen efectos significativamente negativos. Arregla ejecutando el modelo lm(y ~ rand.class - 1). Esto no cambia la validez de todos sus comentarios (+1). Para ser aún más convincente, equilibre los tamaños de los grupos:rand.class <- cut(1:N, N.classes)
whuber
1
Por supuesto: / 100% esperaba que @whuber apareciera y dijera algo completamente claro y obvio que me había perdido. Lo arreglaré ahora.
Matthew Drury
2

La estadística t está influenciada por el tamaño del efecto y el tamaño de la muestra. Puede darse el caso de que el tamaño del efecto no sea cero, pero el tamaño de la muestra no es lo suficientemente grande como para que sea significativo.

t=(x¯s)n

x¯sn

En su caso, cualquier característica con un efecto distinto de cero mejorará el rendimiento, pero es posible que no tenga suficientes datos para hacer que el valor p de esa característica sea significativo.

Hugh
fuente
44
No creo que sea cierto que cualquier característica con un efecto distinto de cero mejore el rendimiento. Tal vez esto sea cierto en los datos de entrenamiento, pero ciertamente no lo es en los datos de prueba .
Matthew Drury
@MatthewDrury ¿Estás diciendo que carecemos de métodos para inferir mediciones de población a partir de muestras?
Todd D
No, pero es cierto que las características espurias pueden interferir con su capacidad para hacerlo bien.
Matthew Drury