¿Cierta regresión gradual?


14

Supongamos que quiero construir un clasificador binario. Tengo varios miles de funciones y solo unas pocas decenas de muestras. Desde el conocimiento del dominio, tengo una buena razón para creer que la etiqueta de clase se puede predecir con precisión utilizando sólo unas pocas características, pero no tengo ni idea de lo que queridos. También quiero que la regla de decisión final sea fácil de interpretar / explicar, lo que requiere una pequeña cantidad de características. Ciertos subconjuntos de mis características están altamente correlacionados, por lo que seleccionar los pocos más predictivos de forma independiente no funcionaría. También quiero poder hacer pruebas de hipótesis de manera significativa en mis características.

¿Es razonable el siguiente procedimiento de regresión gradual en estas condiciones?

  1. Dadas las características que ya están en el modelo (o solo la intersección en la primera iteración), seleccione la característica que produce la mayor relación de probabilidad de registro cuando se agrega al modelo. Utilice la prueba de chi-cuadrado de la razón de probabilidad para calcular un valor P nominal para cada prueba de hipótesis realizada en esta selección. Lo nulo aquí es que agregar la variable adicional al modelo no proporciona capacidad predictiva adicional. La alternativa es que aumenta la capacidad predictiva.

  2. Trate las hipótesis probadas en el Paso 1 de cada iteración como una familia y calcule la tasa de descubrimiento falso para el valor P más pequeño (para la característica seleccionada) usando algo como Benjamini-Hochberg.

  3. Pase a 1 a menos que se cumplan algunos criterios de detención.

  4. Informe las tasas de descubrimiento falso para las características individuales, pero no el valor P para el modelo en su conjunto (ya que esto se inflará enormemente). Cada uno de estos valores P corregidos de pruebas múltiples representa la significación estadística de esa característica dadas todas las características previamente agregadas al modelo.

¿Hacer algo como esto en estas circunstancias evita con éxito todas las críticas típicas de la regresión gradual? ¿Son razonables las tasas de descubrimiento falso calculadas de esta manera?


3
¿Hay alguna razón para no optar por un enfoque de regresión penalizado (lazo, red elástica, etc.)?
Ben Bolker

Respuestas:


11

No recomendaría que use ese procedimiento. Mi recomendación es: abandonar este proyecto. Solo ríndete y vete. No tienes esperanza de que esto funcione.

Dore ilustración del infierno de Dante "Abandonar la esperanza" fuente de imagen

Dejando de lado los problemas estándar con la selección por pasos (cf., aquí ), en su caso es muy probable que tenga predicciones perfectas debido a la separación en un espacio tan dimensional.

No tengo detalles sobre su situación, pero usted declara que tiene "solo unos pocos 10s de muestras". Seamos caritativos y digamos que tienes 90. Además, dices que tienes "varios miles de características". Imaginemos que 'solo' tiene 2,000. En aras de la simplicidad, digamos que todas sus características son binarias. Usted "cree que la etiqueta de clase se puede predecir con precisión utilizando solo unas pocas características", digamos que buscará conjuntos de hasta 9 características como máximo. Por último, imaginemos que la relación es determinista, de modo que la relación verdadera siempre estará perfectamente presente en sus datos. (Podemos cambiar estos números y suposiciones, pero eso solo debería empeorar el problema). Ahora, ¿Qué tan bien sería capaz de recuperar esa relación en estas condiciones (generosas)? Es decir, ¿con qué frecuencia el conjunto correcto sería el único conjunto que produce una precisión perfecta? O, dicho de otra manera, ¿cuántos conjuntos de nueve características también encajarán por casualidad solo?

Algunas matemáticas y simulaciones (excesivamente) simples deberían proporcionar algunas pistas para esta pregunta. Primero, con 9 variables, cada una de las cuales podría ser 0 o 1, el número de patrones que una observación podría mostrar son , pero solo tendrá 90 observaciones. Por lo tanto, es completamente posible que, para un conjunto dado de 9 variables binarias, cada observación tenga un conjunto diferente de valores predictores; no hay réplicas. Sin réplicas con los mismos valores predictores donde algunos tienen y = 0 y algunos y = 1, tendrá una separación completa y será posible la predicción perfecta de cada observación. 29=512

A continuación, tengo una simulación (codificada en R) para ver con qué frecuencia puede no tener patrones de valores de x con 0s y 1s. La forma en que funciona es que obtengo un conjunto de números del 1 al 512, que representan los patrones posibles, y veo si alguno de los patrones en los primeros 45 (que podrían ser los 0) coincide con alguno de los patrones en los segundos 45 (eso podría ser el 1). Esto supone que tiene datos de respuesta perfectamente equilibrados, lo que le brinda la mejor protección posible contra este problema. Tenga en cuenta que tener algunos vectores x replicados con diferentes valores de y realmente no lo saca de apuros, solo significa que no podrá predecir perfectamente cada observación en su conjunto de datos, que es el estándar muy estricto I Estoy usando aquí.

set.seed(7938)  # this makes the simulation exactly reproducible
my.fun = function(){
  x = sample.int(512, size=90, replace=TRUE)
  return(sum(x[1:45]%in%x[46:90])==0)
}
n.unique = replicate(10000, my.fun())
mean(n.unique)  # [1] 0.0181

La simulación sugiere que tendría este problema con aproximadamente el 1.8% de los conjuntos de 9 variables x. Ahora, ¿cuántos juegos de 9 hay? Estrictamente, eso sería (ya que hemos estipulado que las 9 variables causales deterministas verdaderas están en su conjunto). Sin embargo, muchos de esos conjuntos se superpondrán; habrá 1.991 / 9 221 conjuntos no solapados de 9 dentro de una partición especificada de sus variables (con muchos de tales particiones posibles). Por lo tanto, dentro de una partición dada, podríamos esperar que hubiera 221 × 0.018 41991 choose 9=1.3×10241991/9221221×0.0184 conjuntos de 9 variables x que predecirán perfectamente cada observación en su conjunto de datos.

Tenga en cuenta que estos resultados son solo para casos en los que tiene un conjunto de datos relativamente mayor (dentro de las "decenas"), un número relativamente menor de variables (dentro de los "miles"), solo busca casos en los que cada observación pueda predecirse perfectamente ( habrá muchos más conjuntos que son casi perfectos), etc. Es poco probable que su caso real funcione 'así de bien'. Además, estipulamos que la relación es perfectamente determinista. ¿Qué pasaría si hay algún ruido aleatorio en la relación? En ese caso, todavía tendrá ~ 4 conjuntos (nulos) que predicen perfectamente sus datos, pero el conjunto correcto puede no estar entre ellos .

Tl; dr , el punto básico aquí es que su conjunto de variables es demasiado grande / de alta dimensión, y su cantidad de datos es demasiado pequeña, para que todo sea posible. Si es realmente cierto que tiene "decenas" de muestras, "miles" de variables y absolutamente ninguna idea terrenal de qué variables podrían ser correctas, no tiene ninguna esperanza de llegar a ninguna parte con ningún procedimiento. Ve a hacer otra cosa con tu tiempo.


1
Ahora que es una introducción original a una respuesta, me encanta.
Łukasz Grad

1
Abandonar un proyecto suele ser una opción razonable. Aunque ciertamente es una pequeña proporción de casos, más de una vez he aconsejado a los clientes que los proyectos que tienen en mente no serán viables.
gung - Restablece a Monica

1

A los fines de mi respuesta, denotaré la variable binaria de interés como y los predictores X i j  ; ( j = 1 , ... , p ) y suponga que Y tiene valores de Y = 0 e Y = 1 . También será conveniente definir γ m para indicar el modelo m  ; ( m = 1Yi ;(i=1,,n)Xij ;(j=1,,p)YY=0Y=1γm , de modo que γ T m X i j es igual a X i j si lavariablejthestá en elmodelomth, y 0 en caso contrario.m ;(m=1,..,M)γmTXijXij0

Haría una modificación a su método y daría una explicación. Está utilizando un modelo clasificador, lo que significa que desea predecir el valor de una variable categórica en el futuro, por lo que realmente debería definir una regla de predicción (dado un nuevo conjunto de predictores , ¿cómo va a predecir si Y = 1? o Y = 0 ).XjY=1Y=0

Por lo tanto, sugeriría evaluar la predicción directamente, en lugar de la razón de probabilidad. Sin embargo, la observación pronosticada no debe incluirse en la estimación del modelo (porque esta es exactamente la situación a la que se enfrentará cuando realmente use su modelo). Entonces, tenga un nuevo paso 1) (negrita es mi cambio sugerido). 1) Dadas las características que ya están en el modelo (o solo la intercepción en la primera iteración), seleccione la característica que produce las mejores predicciones cuando se agrega al modelo.

Ahora necesitas decidir

  1. qué quiere decir "mejor" matemáticamente
  2. cómo dividir sus datos en partes de "ajuste" y "predicción"

Haré una sugerencia para cada uno:

  1. Y=1Y=0F=CC+IFCI
  2. 12,,n121,3,,n2nF=CnFm

Fm(m=1,,M)m=argmaxmMFm

sthMs=p+1XjXj

El paso a paso puede ser arriesgado porque puede encontrar "máximos locales" en lugar de "máximos globales", especialmente porque tiene una gran cantidad de predictores (este es un gran "espacio" para optimizar, y probablemente sea multimodal - lo que significa que hay muchos "mejores" modelos)

100F

Creo que le resultará mucho más fácil justificar su elección del modelo final a un no estadístico, en lugar de tratar de explicar por qué el valor p indica que el modelo es bueno.

Y

Dos observaciones finales:

  1. También podría usar esta maquinaria para decidir si la selección por pasos es mejor que la selección hacia adelante (solo agregar variables) o la selección hacia atrás (comenzar desde el modelo completo y solo eliminar variables).
  2. pnXTXXTWX(XTX+λI)1XTY(XTWX+λI)1XTWYλλ

Gracias por el consejo. Sin embargo, hay tres problemas con esto: 1. Me importa cuantificar la incertidumbre en mis predicciones y la contribución de cada variable, no solo la precisión de predicción binaria. 2. Dada la naturaleza de mi conjunto de datos, es demasiado computacionalmente intensivo. 3. Desde el conocimiento del dominio, creo que el problema local óptimo no es importante.
dsimcha

100nF

En realidad tienes razón. Este procedimiento sería parte de una base de código más grande y olvidé que parte del resto del código no necesitaría volver a ejecutarse para cada iteración de jackknife. Sin embargo, los otros dos puntos aún se aplican.
dsimcha

FFFchosenF(j)variable en la precisión predictiva debido a cada variable)
probabilidad es

F
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.