Regresión lineal rápida robusta a valores atípicos


50

Estoy tratando con datos lineales con valores atípicos, algunos de los cuales están a más de 5 desviaciones estándar de la línea de regresión estimada. Estoy buscando una técnica de regresión lineal que reduzca la influencia de estos puntos.

Hasta ahora, lo que hice fue estimar la línea de regresión con todos los datos, luego descartar el punto de datos con residuos cuadrados muy grandes (digamos el 10% superior) y repetir la regresión sin esos puntos.

En la literatura hay muchos enfoques posibles: cuadrados menos recortados, regresión cuantil, estimadores m, etc. Realmente no sé qué enfoque debería intentar, así que estoy buscando sugerencias. Lo importante para mí es que el método elegido debe ser rápido porque la regresión robusta se calculará en cada paso de una rutina de optimización. ¡Muchas gracias!


2
Un método que no ha mencionado es el uso de los estudiantes- errores con grados de libertad desconocidos. Sin embargo, esto puede no ser tan rápido como lo necesita. t

@Procrastinator: (Es fácil imaginar una configuración de valores atípicos donde) esto no funcionará.
usuario603 19/12/12

@ user603 Eso es cierto para cualquier método, no hay Panacea;). Simplemente estaba señalando otro método. +1 a tu respuesta.

3
@Procrastinator: estoy de acuerdo en que todos los métodos fallarán para alguna tasa de contaminación . Y 'fracaso' en este contexto puede definirse cuantitativa y empíricamente. Pero la idea es seguir favoreciendo aquellos métodos que fracasarán solo a tasas más altas de contaminación.
usuario603 19/12/12

44
Como esto se hace repetidamente durante una rutina de optimización, quizás los datos en la regresión están (eventualmente) cambiando lentamente. Esto sugiere un algoritmo adaptado a su situación: comience con alguna forma de regresión robusta, pero cuando realice pequeños pasos durante la optimización, simplemente asuma en el siguiente paso que cualquier valor atípico anterior seguirá siendo un valor atípico. Use OLS en los datos, luego verifique si los supuestos valores atípicos siguen siendo periféricos. De lo contrario, reinicie con el procedimiento robusto, pero si es así, lo que podría suceder con frecuencia, habrá ahorrado muchos cálculos.
whuber

Respuestas:


55

Si sus datos contienen un solo valor atípico, se pueden encontrar de manera confiable utilizando el enfoque que sugiere (sin las iteraciones). Un enfoque formal para esto es

Cocinero, R. Dennis (1979). Observaciones influyentes en regresión lineal . Revista de la Asociación Americana de Estadística ( Asociación Americana de Estadística) 74 (365): 169-174.

Para encontrar más de un valor atípico, durante muchos años, el método principal fue la llamada familia de enfoque de la estimaciónEsta es una familia bastante amplia de estimadores que incluye el estimador de regresión de Huber , la regresión L1 de Koenker y el enfoque propuesto por Procastinator en su comentario a su pregunta. Los estimadores con funciones convexas tienen la ventaja de tener aproximadamente la misma complejidad numérica que una estimación de regresión regular. La gran desventaja es que solo pueden encontrar los valores atípicos de manera confiable si:M M ρMMMρ

  • la tasa de contaminación de su muestra es menor que donde es el número de variables de diseño, p11+pp
  • o si los valores atípicos no son periféricos en el espacio de diseño (Ellis y Morgenthaler (1992)).

Puede encontrar una buena implementación de ( ) estimaciones de regresión en el paquete ( ) . l 1Ml1robustbasequantregR

Si sus datos contienen más de outlier potencialmente también fuera del espacio de diseño, entonces, encontrarlos equivale a resolver un problema combinatorio (equivalente a la solución de un estimador con re función descendente / no convexa ). Mρnp+1Mρ

En los últimos 20 años (y especialmente los últimos 10) se ha diseñado un gran conjunto de algoritmos de detección de valores atípicos rápidos y confiables para resolver aproximadamente este problema combinatorio. Ahora se implementan ampliamente en los paquetes estadísticos más populares (R, Matlab, SAS, STATA, ...).

No obstante, la complejidad numérica de encontrar valores atípicos con estos enfoques suele ser del orden . La mayoría de los algoritmos se pueden usar en la práctica para los valores de a mediados de la adolescencia. Por lo general, estos algoritmos son lineales en (el número de observaciones), por lo que el número de observaciones no es un problema. Una gran ventaja es que la mayoría de estos algoritmos son vergonzosamente paralelos. Más recientemente, se han propuesto muchos enfoques diseñados específicamente para datos de dimensiones superiores.p nO(2p)pn

Dado que no especificó en su pregunta, enumeraré algunas referencias para el caso . Aquí hay algunos documentos que explican esto con mayor detalle en esta serie de artículos de revisión:p < 20pp<20

Rousseeuw, PJ y van Zomeren BC (1990). Desenmascarar valores atípicos multivariados y puntos de apalancamiento . Revista de la Asociación Americana de Estadística , vol. 85, núm. 411, págs. 633-639.

Rousseeuw, PJ y Van Driessen, K. (2006). Cálculo de la regresión LTS para grandes conjuntos de datos . Archivo de Data Mining and Knowledge Discovery Volumen 12 Número 1, páginas 29-45.

Hubert, M., Rousseeuw, PJ y Van Aelst, S. (2008). Métodos multivariados robustos de alto desglose . Ciencia Estadística , vol. 23, núm. 1, 92–119

Ellis SP y Morgenthaler S. (1992). Apalancamiento y desglose en la regresión L1. Revista de la Asociación Americana de Estadística , vol. 87, núm. 417, págs. 143-148

Un libro de referencia reciente sobre el problema de la identificación de valores atípicos es:

Maronna RA, Martin RD y Yohai VJ (2006). Estadísticas robustas: teoría y métodos . Wiley, Nueva York.

Estos (y muchas otras variaciones de estos) métodos se implementan (entre otros) en el paquete.robustbase R


44
Ahora que es una gran respuesta!
Peter Flom - Restablece a Monica

Muchas gracias user603! En mi problema y no hay valores atípicos en el espacio de diseño (porque las variables explicativas se simulan a partir de una distribución normal). Entonces, ¿puedo intentar con el estimador m? En cualquier caso, todas las demás referencias que me haya dado serán muy útiles una vez que comience a trabajar en aplicaciones más complejas ( >> 10) de mi algoritmo. pp<10p
Matteo Fasiolo

2
@Jugurtha: En ese caso (no hay valores atípicos en el espacio de diseño y ) los estimadores son de hecho la solución preferida. Considere la función 'lmrob..M..fit' en el paquete robustbase, la función 'rlm' en el paquete MASS o la regresión l1 en el paquete quantreg. Todavía ejecutaría la regresión LTS en algunos casos y compararía los resultados, ya que pueden soportar más valores atípicos. Lo haría solo para verificar si la tasa de contaminación no es más alta de lo que sospecha. Mp<10M
usuario603

1
"Una gran ventaja es que la mayoría de estos algoritmos son vergonzosamente paralelos". Me gusta la redacción ;)
Mateen Ulhaq

1
@Mateen, bueno, es el término de arte después de todo. :)
JM no es un estadístico

19

Para la regresión simple (x simple), hay algo que decir de la línea Theil-Sen en términos de robustez para los valores atípicos y a los puntos influyentes, así como también una buena eficiencia (en la normalidad) en comparación con LS para la pendiente. El punto de ruptura de la pendiente es casi del 30%; Mientras la intercepción (hay una variedad de posibles intercepciones que la gente ha usado) no tiene un desglose más bajo, todo el procedimiento hace frente a una fracción considerable de contaminación bastante bien.

Su velocidad puede parecer mala: la mediana de las pendientes parece ser incluso con una mediana , pero recuerdo que se puede hacer más rápidamente si la velocidad es realmente un problema ( , creo)(n2)O(n2)O(n)O(nlogn)

Editar: el usuario603 solicitó una ventaja de la regresión de Theil sobre la regresión L1. La respuesta es la otra cosa que mencioné: puntos influyentes:

Theil_vs_L1

La línea roja es el ajuste (de la función en el paquete). El green encaja con una pendiente Theil. Todo lo que se necesita es un solo error tipográfico en el valor x, como escribir 533 en lugar de 53, y este tipo de cosas pueden suceder. Por lo tanto, el ajuste no es robusto para un solo error tipográfico en el espacio x.L1rqquantregL1


de hecho puede calcularse en tiempo . ¿Podría explicar qué ventaja (en el caso único x) tiene el estimador TS sobre, por ejemplo, la regresión ? nlognl1
user603

1
@ user603 Ver la edición.
Glen_b

(+1) gracias por la edición. Es importante señalar esta característica.
user603

1
¿Y cuál es la ventaja sobre una estimación MM, como lmrob () del paquete R robustbase o incluso {no es necesario instalar nada más que 'base R'} rlm (*, ... method = "MM") del paquete MASS? Estos tienen un punto de ruptura completo (~ 50%) y probablemente sean aún más eficientes en la normalidad.
Martin Mächler

1
@ MartinMächler Parece que estás argumentando en contra de un reclamo que no he hecho allí. Si desea presentar una respuesta que también contenga una comparación de otros estimadores robustos de alto desglose, especialmente aquellos que son tan simples de entender para alguien en el nivel de OP, espero leerlo.
Glen_b

12

¿Has mirado en RANSAC (Wikipedia) ?

Esto debería ser bueno para calcular un modelo lineal razonable, incluso cuando hay muchos valores atípicos y ruido, ya que se basa en el supuesto de que solo una parte de los datos pertenecerá realmente al mecanismo.


sí pero la adición de un simple nueva ponderación rendimientos de paso un estimador (LTS) que es igualmente robusto y de modo mucho más estable y estadísticamente eficiente. ¿Por qué no hacer?
usuario603

1

Encontré la regresión de error penalizado mejor. También puede usarlo iterativamente y volver a pesar las muestras, que no son muy consistentes con la solución. La idea básica es aumentar su modelo con errores: donde es el vector de error desconocido. Ahora realiza la regresión en . Curiosamente, puede usar "lazo fusionado" para esto cuando puede estimar la certeza de sus mediciones de antemano y poner esto como ponderación en y para resolver la nueva tarea ligeramente diferente l1

y=Ax+e
e
yAxe22+λe1
W=diag(wi)
yAxe22+λWe1

Puede encontrar más información aquí: http://statweb.stanford.edu/~candes/papers/GrossErrorsSmallErrors.pdf


¿Has probado eso en el ejemplo Glen_b (si agregas un segundo valor atípico al lado de donde colocó el suyo) o he publicado?
user603

@ user603 no, acabo de aplicar esto en casos más prácticos para el modelado 3D a partir de imágenes de la cámara. Allí ayudó mucho. Sin embargo, una lección aprendida es: si tiene múltiples posibilidades para eliminar sus valores atípicos, úselos.
mojovski
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.