Tengo un conjunto de datos con la suposición de que los vecinos más cercanos son los mejores predictores. Solo un ejemplo perfecto de gradiente bidireccional visualizado
Supongamos que tenemos un caso en el que faltan pocos valores, podemos predecir fácilmente según los vecinos y la tendencia.
Matriz de datos correspondiente en R (ejemplo ficticio para entrenamiento):
miss.mat <- matrix (c(5:11, 6:10, NA,12, 7:13, 8:14, 9:12, NA, 14:15, 10:16),ncol=7, byrow = TRUE)
miss.mat
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 5 6 7 8 9 10 11
[2,] 6 7 8 9 10 NA 12
[3,] 7 8 9 10 11 12 13
[4,] 8 9 10 11 12 13 14
[5,] 9 10 11 12 NA 14 15
[6,] 10 11 12 13 14 15 16
Notas: (1) Se supone que la propiedad de los valores faltantes es aleatoria , puede suceder en cualquier lugar.
(2) Todos los puntos de datos provienen de una sola variable, pero se supone que su valor está influenciado neighbors
en la fila y columna adyacente a ellos. Por lo tanto, la posición en la matriz es importante y puede considerarse como otra variable.
Mi esperanza en algunas situaciones es que puedo predecir algunos valores fuera de valor (pueden ser errores) y corregir el sesgo (solo un ejemplo, generemos dicho error en los datos ficticios):
> mat2 <- matrix (c(4:10, 5, 16, 7, 11, 9:11, 6:12, 7:13, 8:14, 9:13, 4,15, 10:11, 2, 13:16),ncol=7, byrow = TRUE)
> mat2
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 4 5 6 7 8 9 10
[2,] 5 16 7 11 9 10 11
[3,] 6 7 8 9 10 11 12
[4,] 7 8 9 10 11 12 13
[5,] 8 9 10 11 12 13 14
[6,] 9 10 11 12 13 4 15
[7,] 10 11 2 13 14 15 16
Los ejemplos anteriores son solo una ilustración (puede responderse visualmente) pero el ejemplo real puede ser más confuso. Estoy buscando si hay un método robusto para hacer dicho análisis. Creo que esto debería ser posible. ¿Cuál sería el método adecuado para realizar este tipo de análisis? ¿Alguna sugerencia de programa / paquete R para hacer este tipo de análisis?
fuente
Respuestas:
La pregunta pide formas de utilizar a los vecinos más cercanos de manera robusta para identificar y corregir valores atípicos localizados. ¿Por qué no hacer exactamente eso?
El procedimiento consiste en calcular una suavidad local robusta, evaluar los residuos y poner a cero los que sean demasiado grandes. Esto satisface todos los requisitos directamente y es lo suficientemente flexible como para ajustarse a diferentes aplicaciones, ya que uno puede variar el tamaño del vecindario local y el umbral para identificar valores atípicos.
(¿Por qué es tan importante la flexibilidad? Debido a que cualquier procedimiento de este tipo tiene una buena oportunidad de identificar ciertos comportamientos localizados como "periféricos". Como tal, todos estos procedimientos pueden considerarse suavizadores . Eliminarán algunos detalles junto con los valores atípicos aparentes. El analista necesita cierto control sobre la compensación entre retener detalles y no detectar valores atípicos locales).
Otra ventaja de este procedimiento es que no requiere una matriz rectangular de valores. De hecho, incluso se puede aplicar a datos irregulares utilizando un suavizador local adecuado para dichos datos.
R
, así como la mayoría de los paquetes de estadísticas con todas las funciones, tiene varios suavizadores locales robustos integrados, comoloess
. El siguiente ejemplo fue procesado usándolo. La matriz tiene filas y 49 columnas, casi entradas. Representa una función complicada que tiene varios extremos locales, así como una línea completa de puntos donde no es diferenciable (un "pliegue"). A un poco más del de los puntos, una proporción muy alta para ser considerada "periférica", se agregaron errores gaussianos cuya desviación estándar es solo de la desviación estándar de los datos originales. Este conjunto de datos sintéticos presenta muchas de las características desafiantes de los datos realistas.Tenga en cuenta que (según las
R
convenciones) las filas de la matriz se dibujan como tiras verticales. Todas las imágenes, excepto los residuos, están sombreadas para ayudar a mostrar pequeñas variaciones en sus valores. Sin esto, ¡casi todos los valores atípicos locales serían invisibles!Al comparar las imágenes "Imputado" (arreglado) con las imágenes "Reales" (originales no contaminadas), es evidente que la eliminación de los valores atípicos ha suavizado parte, pero no todo, del pliegue (que va desde(0,79) hacia abajo a ; es evidente como una franja angulada cian clara en la trama "Residuos").(49,30)
Las manchas en la trama de "Residuos" muestran los obvios valores aislados locales aislados. Este gráfico también muestra otra estructura (como esa franja diagonal) atribuible a los datos subyacentes. Se podría mejorar este procedimiento utilizando un modelo espacial de los datos (a través de métodos geoestadísticos), pero describirlo e ilustrarlo nos llevaría demasiado lejos aquí.
Por cierto, este código informó haber encontrado solo de los 200 valores atípicos que se introdujeron. Esto no es un fracaso del procedimiento. Debido a que los valores atípicos se distribuían normalmente, aproximadamente la mitad de ellos tenían un tamaño tan cercano a cero, 3 o menos, en comparación con los valores subyacentes que tenían un rango de más de 600, que no hicieron ningún cambio detectable en la superficie.102 200 3 600
fuente
Le aconsejaría que eche un vistazo a este artículo [0]. El problema que pretende abordar parece encajar bastante bien con su descripción, excepto que el método propuesto por el autor es un poco más refinado que la inducción NN (aunque utiliza algo similar como punto de partida).
El primer paso de cada iteración es el paso de imputación de datos. Esto se hace como en el algoritmo EM: las celdas faltantes se llenan con el valor que se espera que tengan (este es el paso E).
Para resumir el artículo, aquí está el algoritmo general que proponen:
Luego, hazlo hasta la convergencia:
No conozco una implementación R preparada para este enfoque, pero se puede producir fácilmente a partir de los subcomponentes (principalmente un algoritmo PCA robusto), y estos están bien implementados en R, consulte el paquete rrcov (el documento es silencioso informativo sobre este tema).
fuente