¿Cómo manejar datos inexistentes (que no faltan)?

11

Nunca he encontrado ningún buen texto o ejemplos sobre cómo manejar datos 'inexistentes' para entradas a cualquier tipo de clasificador. He leído mucho sobre datos faltantes, pero qué se puede hacer sobre los datos que no pueden existir o no existen en relación con las entradas multivariadas. Entiendo que esta es una pregunta muy compleja y variará dependiendo de los métodos de entrenamiento utilizados ...

Por ejemplo, si trata de predecir el tiempo de vuelta para varios corredores con buenos datos precisos. Entre muchas entradas, las posibles variables entre muchas son:

  1. Variable de entrada: primer corredor (S / N)
  2. Variable de entrada: tiempo de vuelta anterior (0 - 500 segundos)
  3. Variable de entrada - Edad
  4. Variable de entrada - Altura. . . muchas más variables de entrada, etc.

& Predictor de salida - Tiempo de espera previsto (0 - 500 segundos)

Una 'variable faltante' para '2. Laptime anterior' podría calcularse de varias maneras pero '1. Corredor por primera vez 'siempre sería igual a N. Pero para 'DATOS NO EXISTENTES' para un corredor por primera vez (donde '1. Corredor por primera vez' = Y), ¿qué valor / tratamiento debo dar para '2? Laptime anterior '?

Por ejemplo, asignando '2. Laptime anterior '-99 o 0 puede sesgar la distribución dramáticamente y hacer que parezca que un nuevo corredor ha funcionado bien.

Mis métodos de entrenamiento actuales han estado usando regresión logística, SVM, NN y árboles de decisión

osknows
fuente
Debo agregar que he estado descartando nuevos corredores de los datos de entrenamiento y predicción debido a la incertidumbre inherente, pero agradecería cualquier método mejor que 'Ignorar'
osknows

Respuestas:

6

En lugar de asignar un valor especial para el tiempo de vuelta anterior inexistente del primer corredor, simplemente use el término de interacción para el tiempo de vuelta anterior con el inverso del maniquí del primer corredor:

Yi=β0+β1FTRi+β2(NFTRi)×PLTi+...

aquí

  • Yi es tu variable de entrada,
  • ... son tus otras variables,
  • FTRi es ficticio por primera vez corredor,
  • PLTi es el tiempo de vuelta anterior y
  • NFTRi es ficticio para el corredor no principiante que equivale a 1, cuando y 0 en caso contrario.FTRi=0

Entonces el modelo para los corredores por primera vez será:

Yi=(β0+β1)+...

y para los que no corren por primera vez:

Yi=β0+β2PLTi+...
mpiktas
fuente
8

Para una regresión logística ajustada por la máxima verosimilitud, siempre que tenga tanto (1) como (2) en el modelo, no importa qué valor "predeterminado" asigne a los nuevos corredores para (2), la estimación para (1) se ajustará en consecuencia.

Por ejemplo, deje que sea ​​la variable indicadora de "es un nuevo corredor" y sea ​​la variable "tiempo de vuelta anterior en segundos". Entonces el predictor lineal es:X1X2

η=α+β1X1+β2X2+

Si el valor predeterminado para es cero, entonces el predictor lineal para un nuevo corredor es:X2

η=α+β1+

mientras que para un corredor existente, será:

η=α+β2X2+

Ahora suponga que cambia el valor predeterminado para de 0 a -99. Entonces el predictor lineal para un nuevo corredor es ahora:X2

η=α+β199β2+

pero para un corredor existente, seguirá siendo el mismo. Por lo tanto, todo lo que ha hecho es el modelo, de modo que , y dado que la probabilidad máxima es invariante para la parametrización, las estimaciones se ajustarán en consecuencia.β199β2=β1

Por supuesto, si no está utilizando la máxima probabilidad (es decir, está utilizando algún tipo de penalización o antes en los parámetros), obtendrá valores diferentes a menos que ajuste la penalización / previo en consecuencia. Y si el modelo no es lineal (por ejemplo, SVM, NN y árboles de decisión), este argumento no funciona en absoluto.

Simon Byrne
fuente