222 votos

Algoritmos para la selección automática modelo

Me gustaría implementar un algoritmo para la selección del modelo automática. Estoy pensando en hacer de regresión paso a paso, pero nada va a hacer (tiene que estar basado en regresiones lineales).

Mi problema es que soy incapaz de encontrar una metodología, o de una implementación de código abierto (yo soy de woking en java). La metodología que tengo en mente sería algo como:

  1. calcular la matriz de correlaciones de todos los factores
  2. recoger los factores que tienen una baja correlación para cada uno de los otros
  3. eliminar los factores que tienen una baja t-stat
  4. agregar otros factores (todavía se basa en el bajo factor de correlación que se encuentra en 2.).
  5. reiterar varias veces hasta que algún criterio (e.g AIC) está por encima de cierto umbral o no puede o no podemos encontrar un valor más grande.

Me gustaría algunos consejos sobre que. Me doy cuenta de que hay un R de la implementación de este (stepAIC) pero me parece que el código es difícil de entender. También no he sido capaz de encontrar artículos que describen la regresión paso a paso.

379voto

Sean Hanley Puntos 2428

Creo que este enfoque es erróneo, pero tal vez será más útil si puedo explicar por qué. El deseo de conocer el mejor modelo dado algo de información sobre un gran número de variables es bastante comprensible. Por otra parte, es una situación en la que la gente parece encontrar a sí mismos con regularidad. Además, muchos de los libros de texto (y cursos) en la regresión de la cubierta de la selección paso a paso de los métodos, lo que implica que deben ser legítimos. Lamentablemente, sin embargo, no lo son, y la vinculación de esta situación y la meta son bastante difíciles de navegar con éxito. La siguiente es una lista de problemas automatizada paso a paso el modelo de los procedimientos de selección (que se atribuye a Frank Harrell, y copiado de aquí):

  1. Que los rendimientos de los valores de R cuadrado que están muy predispuestas a ser alta.
  2. El F y chi-cuadrado pruebas citado junto a cada variable en la impresión no han reclamado su distribución.
  3. El método de los rendimientos de los intervalos de confianza para los efectos y los valores predichos que son falsamente estrecho; ver Altman y Andersen (1989).
  4. Que los rendimientos de los valores de p que no tienen un significado propio y el de corrección adecuados para ellos es un problema difícil.
  5. Da sesgada coeficientes de regresión que necesita la contracción (los coeficientes para las variables restantes son demasiado grandes; ver Tibshirani [1996]).
  6. Tiene graves problemas en la presencia de multicolinealidad.
  7. Se basa en los métodos (por ejemplo, F pruebas para modelos anidados) que estaban destinados a ser utilizados para probar preespecificado hipótesis.
  8. Aumentar el tamaño de la muestra no ayuda mucho; ver Derksen y Keselman (1992).
  9. Que nos permite no pensar en el problema.
  10. Se utiliza una gran cantidad de papel.

La pregunta es, ¿qué tiene de malo acerca de estos procedimientos, / ¿por qué se producen estos problemas? La mayoría de las personas que han tomado un básico de regresión curso está familiarizado con el concepto de regresión a la media, así que esto es lo que yo uso para explicar estas cuestiones. (Aunque esto puede parecer off-topic en primer lugar, tener paciencia conmigo, te prometo que es relevante.)

Imagina un entrenador de atletismo de la escuela secundaria en el primer día de audiciones. Treinta niños se muestran. Estos niños tienen algún problema a nivel de la habilidad intrínseca de la que ni el entrenador, ni nadie, tiene acceso directo. Como resultado, el entrenador hace lo único que puede hacer, que es tener a todos ellos ejecutar un radio de 100 metros lisos. La de veces que presumiblemente es una medida de su capacidad intrínseca y se toman como tal. Sin embargo, ellos son probabilísticos; algunos proporción de lo bien que la persona no se basa en la posibilidad real y cierta proporción es al azar. Imaginar que la verdadera situación es la siguiente:

set.seed(59)
intrinsic_ability = runif(30, min=9, max=10)
time = 31 - 2*intrinsic_ability + rnorm(30, mean=0, sd=.5)

Los resultados de la primera carrera, se muestran en la siguiente figura, junto con el entrenador de los comentarios de los niños.

first race

Tenga en cuenta que la partición de los niños por sus tiempos de carrera de las hojas que se superpone en su capacidad intrínseca--este hecho es crucial. Después de elogiar algunos, y gritar a algunos otros (como los entrenadores tienden a hacer), se les ha de correr de nuevo. Aquí están los resultados de la segunda carrera con el entrenador de las reacciones (simulado en el mismo modelo anterior):

second race

Aviso de que su capacidad intrínseca es idéntico, pero las veces que rebotó respecto a la primera carrera. Desde el entrenador del punto de vista, aquellos que él grito tendió a mejorar, y los elogió tendían a hacer peor (he adaptado este ejemplo concreto de la Kahneman cita aparece en la página de la wiki), aunque en realidad la regresión a la media es un matemático simple consecuencia del hecho de que el entrenador es la selección de los atletas para el equipo basado en una medición que es en parte al azar.

Ahora bien, ¿qué tiene que ver esto con automatizada (por ejemplo, paso a paso) modelo de técnicas de selección? El desarrollo y la confirmación de un modelo basado en el mismo conjunto de datos es a veces llamada de datos de dragado. Aunque existe cierta relación subyacente entre las variables, y las relaciones más fuertes se espera que el rendimiento más fuerte de puntuación (por ejemplo, mayor que t-statistics), estas son variables aleatorias y el se dio cuenta de valores contienen error. Por lo tanto, al seleccionar las variables de la base de haber mayor (o menor) se dio cuenta de valores, que puede ser a causa de su verdadera subyacente valor, error, o ambos. Si usted procede de esta manera, usted será tan sorprendido como el entrenador fue después de la segunda carrera. Esto es cierto ya sea que usted seleccione las variables basándose en el hecho de alta t-estadística, o bajo las intercorrelaciones. True, mediante el AIC es mejor que el uso de los valores de p, ya que penaliza el modelo de la complejidad, pero la AIC es en sí misma una variable aleatoria (si se ejecuta un estudio varias veces y ajuste el mismo modelo, la AIC va a rebotar como todo lo demás). Por desgracia, esto es sólo un problema intrínseco a la naturaleza epistémica de la realidad misma.

Espero que esto sea útil.

79voto

Boris Tsirelson Puntos 191

Retirar el símbolo de intercalación paquete en R. le ayudará validación cruzada de step-wise modelos de regresión (uso method='lmStepAIC' o method='glmStepAIC'), y podría ayudar a entender cómo este tipo de modelos tienden a tener baja el rendimiento predictivo. Además, usted puede utilizar el findCorrelation función en el símbolo de intercalación para identificar y eliminar variables colineales, y el rfe función en el símbolo de intercalación para eliminar variables con un bajo estadística t (uso rfeControl=rfeControl(functions=lmFuncs)).

Sin embargo, como se menciona en las respuestas anteriores, estos métodos de selección de variables son propensos a tener problemas, especialmente si se hacen de forma iterativa. Hacer absolutamente seguro de evaluar su rendimiento en un COMPLETAMENTE cabo-cabo de prueba. Ni siquiera mirar el conjunto de pruebas hasta que esté satisfecho con su algoritmo!

Por último, podría ser mejor (y más sencillo) para el uso de modelos de predicción con "built-in" de la selección de características, tales como la regresión ridge, el lazo o la red elástica. Específicamente, pruebe el method=glmnet argumento de intercalación, y comparar la cruz-validar la precisión de ese modelo a la method=lmStepAIC argumento. Mi conjetura es que el primero le dará mucho mayores de la precisión de la muestra, y usted no tiene que preocuparse acerca de la implementación y la validación de la variable personalizada algoritmo de selección.

50voto

Cory Puntos 4442

Estoy totalmente de acuerdo con los problemas expuestos por @gung. Que dijo, hablando de manera realista, el modelo de selección es un problema real en la necesidad de una solución real. Aquí hay algo que me gustaría utilizar en la práctica.

  1. Dividen los datos en el entrenamiento, validación y prueba.
  2. Modelos de trenes en el conjunto de entrenamiento.
  3. Medir el desempeño del modelo en el conjunto de validación, el uso de una métrica como la predicción de RMSE, y elegir el modelo con el menor error de predicción.
  4. Diseñar nuevos modelos como necesario, repita los pasos 2-3.
  5. Informe de lo bien que el modelo realiza sobre el conjunto de prueba.

Para un ejemplo del uso de este método en el mundo real, creo que fue utilizado en el Netflix de la competencia del Premio.

19voto

heran_xp Puntos 51

Para responder a la pregunta, hay varias opciones: 1) todo subconjunto AIC/BIC 2) paso a paso por p-valor 3) paso a paso por AIC/BIC 4) regularización, tales como LAZO (puede ser basado en AIC/BIC o CV 5) algoritmo genético (GA) 6) otros? 7) uso de la no-automática, la teoría ("el conocimiento de la materia") orientado a la selección

La siguiente pregunta sería qué método es el mejor. Este papel (doi:10.1016/j.amc.2013.05.016) indica que "todos los posibles regresión" dio los mismos resultados para su nueva propuesta de método y paso a paso es peor. Un simple GA está entre ellos. Este papel (DOI:10.1080/10618600.1998.10474784) compara penalizado de regresión (Puente, Lazo, etc) con "saltos y límites" (que parece una búsqueda exhaustiva de algoritmo, pero más rápido) y también se encuentra en "el puente de la modelo está de acuerdo con el mejor modelo de la selección de subconjuntos, por los saltos y los límites del método". Este papel (doi:10.1186/1471-2105-15-88) muestra GA es mejor que el LAZO. Este papel (DOI:10.1198/jcgs.2009.06164) propuso un método esencialmente un subconjunto (basado en BIC), pero hábilmente reducir el tiempo de cálculo. Ellos demuestran que este método es mejor que el LAZO. Curiosamente, este papel (DOI: 10.1111/j.1461-0248.2009.01361.x) muestra los métodos (1)-(3) producir un rendimiento similar.

Por lo general los resultados son mixtos, pero tengo la impresión de que GA parece muy buena, aunque paso a paso, no puede ser demasiado mala, y es rápido.

Como durante 7), el uso de la no-automática, la teoría ("el conocimiento de la materia") orientado a la selección. Es desperdiciador de tiempo y no es necesariamente mejor que el método automático. De hecho, en series de tiempo de la literatura, está bien establecido que el método automatizado (especialmente el software comercial) supera a los expertos humanos "por un margen sustancial" (doi:10.1016/S0169-2070(01)00119-4, page561 por ejemplo, la selección de varios de suavizado exponencial y modelos ARIMA).

9voto

jmpena Puntos 399

Aquí está una respuesta fuera del campo izquierdo-en lugar de utilizar la regresión lineal, utilizar un árbol de regresión (rpart paquete). Esto es conveniente para la selección automática modelo porque con un poco de trabajo se puede automatizar la selección de cp, el parámetro utilizado para evitar el ajuste excesivo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X