Régression linéaire rapide robuste aux valeurs aberrantes

50

Je traite de données linéaires avec des valeurs aberrantes, dont certaines sont à plus de 5 écarts-types de la droite de régression estimée. Je cherche une technique de régression linéaire qui réduit l’influence de ces points.

Jusqu'ici, ce que j'ai fait est d'estimer la droite de régression avec toutes les données, puis ignorer le point de données avec de très grands résidus carrés (disons les 10% supérieurs) et répéter la régression sans ces points.

Dans la littérature, il existe de nombreuses approches possibles: carrés les moins équilibrés, régression quantile, m-estimateurs, etc. Je ne sais vraiment pas quelle approche je devrais essayer. Je recherche donc des suggestions. Pour moi, l'important est que la méthode choisie soit rapide car la régression robuste sera calculée à chaque étape d'une routine d'optimisation. Merci beaucoup!

Matteo Fasiolo
la source
2
Une méthode que vous n'avez pas mentionné l'utilisation de Student- t erreurs avec des degrés de liberté inconnus. Cependant, cela peut ne pas être aussi rapide que vous avez besoin.
@Procrastinator: (Il est facile d'imaginer une configuration de valeurs aberrantes où) cela ne fonctionnera pas.
user603
@ user603 Cela est vrai pour n'importe quelle méthode, il n'y a pas de panacée;). Je soulignais simplement une autre méthode. +1 à votre réponse.
3
@Procrastinator: Je conviens que toutes les méthodes vont échouer pour un certain taux de contamination . Et «échec» dans ce contexte peut être défini quantitativement et empiriquement. Mais l’idée est de toujours privilégier les méthodes qui échoueront uniquement à des taux de contamination plus élevés.
user603
4
Etant donné que cette opération est répétée au cours d'une routine d'optimisation, il est possible que les données de la régression changent (éventuellement) lentement. Cela suggère un algorithme adapté à votre situation: commencez par une forme de régression robuste, mais lorsque vous effectuez de petites étapes au cours de l'optimisation, supposez simplement qu'à l'étape suivante, une valeur aberrante précédente restera une valeur aberrante. Utilisez OLS sur les données, puis vérifiez si les valeurs aberrantes présumées sont toujours aberrantes. Sinon, recommencez avec la procédure robuste, mais si c'est le cas - ce qui peut arriver souvent - vous aurez économisé beaucoup de calculs.
whuber

Réponses:

55

Si vos données contiennent une seule valeur aberrante, vous pouvez la trouver de manière fiable en utilisant l'approche que vous suggérez (sans les itérations). Une approche formelle à cela est

Cook, R. Dennis (1979). Observations influentes dans la régression linéaire . Journal de l'Association statistique américaine (American Statistical Association) 74 (365): 169–174.

Pour trouver plus d'une valeur aberrante, pendant de nombreuses années, la méthode principale était la famille de la méthode dite d' estimation Il s'agit d'une famille d'estimateurs assez large comprenant l' estimateur M de Huber de régression, la régression L1 de Koenker ainsi que l'approche proposée par Procastinator dans son commentaire à votre question. Les M estimateurs à fonctions convexes ρ ont l’avantage d’avoir à peu près la même complexité numérique qu’une estimation par régression normale. Le gros inconvénient est qu’ils ne peuvent trouver les valeurs aberrantes que si:MMMρ

  • le taux de contamination de votre échantillon est inférieur à pest le nombre de variables de conception,11+pp
  • ou si les valeurs aberrantes ne se trouvent pas dans l'espace de conception (Ellis et Morgenthaler (1992)).

Vous pouvez trouver une bonne implémentation des estimations de régression ( l 1 ) dans le package ( ) . Ml1robustbasequantregR

Si vos données contient plus de valeurs p + 1 lieraberrantes sesituantéventuellement aussi dans l'espace de conception, leur résolution revient donc à résoudre un problème combinatoire (de manière équivalente la solution à unestimateurMavec unefonctionρré-décroissante / non convexe). np+1Mρ

Au cours des 20 dernières années (et en particulier des 10 dernières), de nombreux algorithmes de détection de valeurs aberrantes rapides et fiables ont été conçus pour résoudre ce problème combinatoire de manière approximative. Celles-ci sont maintenant largement implémentées dans les progiciels statistiques les plus populaires (R, Matlab, SAS, STATA, ...).

Néanmoins, la complexité numérique de la recherche de valeurs aberrantes avec ces approches est typiquement d'ordre . La plupart des algorithmes peuvent être utilisés dans la pratique pour les valeurs de p dans la mi-adolescence. En règle générale, ces algorithmes sont linéaires dans n (le nombre d'observations). Le nombre d'observations n'est donc pas un problème. Un gros avantage est que la plupart de ces algorithmes sont embarrassants en parallèle. Plus récemment, de nombreuses approches spécialement conçues pour les données de plus grande dimension ont été proposées.O(2p)pn

Étant donné que vous n'avez pas spécifié dans votre question, je vais énumérer quelques références pour le cas p < 20 . Voici quelques articles qui expliquent cela plus en détail dans cette série d'articles de synthèse:pp<20

Rousseeuw, PJ et van Zomeren BC (1990). Démasquer les valeurs aberrantes multivariées et les points de levier . Journal de l'American Statistical Association , vol. 85, n ° 411, p. 633-639.

Rousseeuw, PJ et Van Driessen, K. (2006). Calcul de la régression LTS pour les grands ensembles de données . Archive de Data Mining et Knowledge Discovery, Volume 12, Numéro 1, Pages 29 - 45.

Hubert, M., Rousseeuw, PJ et Van Aelst, S. (2008). Méthodes multivariées robustes à décomposition élevée . Science statistique , vol. 23, n ° 1, 92-119

Ellis SP et Morgenthaler S. (1992). Effet de levier et décomposition en régression de N1. Journal de l'American Statistical Association , vol. 87, n ° 417, p. 143-148

Un ouvrage de référence récent sur le problème de l'identification des valeurs aberrantes est le suivant:

Maronna RA, Martin RD et Yohai VJ (2006). Statistiques robustes: théorie et méthodes . Wiley, New York.

Ces méthodes (et de nombreuses autres variantes de celles-ci) sont implémentées (entre autres) dans le package.robustbase R

utilisateur603
la source
4
Maintenant, c'est une excellente réponse!
Peter Flom - Rétablir Monica
p<dixp
2
p<dixM
1
"Un gros avantage est que la plupart de ces algorithmes sont embarrassants en parallèle." J'aime le libellé. ;)
Mateen Ulhaq
1
@Mateen, eh bien, c'est le terme de l'art après tout. :)
JM n'est pas un statisticien
19

Pour la régression simple (simple x), il y a quelque chose à dire sur la ligne Theil-Sen en termes de robustesse vis-à-vis des points extrêmes y et des points d'influence, ainsi que d'une efficacité généralement bonne (à la normale) par rapport à LS pour la pente. Le point de rupture de la pente est proche de 30%; tant que l'interception (il y a une variété d'interceptions possibles utilisées par les personnes) ne présente pas une panne plus basse, l'ensemble de la procédure gère assez bien une fraction non négligeable de contamination.

(n2)O(n2)O(n)O(nlogn)

Edit: user603 a demandé un avantage de la régression de Theil par rapport à la régression de L1. La réponse est l'autre chose que j'ai mentionnée - des points d'influence:

Theil_vs_L1

L1rqquantregL1

Glen_b
la source
nbûchenl1
1
@ user603 Voir la modification.
Glen_b
(+1) merci pour l'édition. Il est important de souligner cette fonctionnalité.
user603
1
Et quel est l’avantage par rapport à une estimation MM, telle que lmrob () du paquet R robustbase ou même {pas besoin d’installer autre chose que la 'base R'} rlm (*, ... method = "MM") du paquet MASS? Celles-ci ont un point de panne complet (~ 50%) et sont probablement encore plus efficaces à la normale.
Martin Mächler
1
@ MartinMächler On dirait que vous vous disputez contre une demande que je n'ai pas formulée là-bas. Si vous souhaitez proposer une réponse qui contienne également une comparaison d’autres estimateurs robustes à décomposition élevée, en particulier d’estimateurs aussi simples à comprendre pour un opérateur du niveau OP, je suis impatient de la lire.
Glen_b
12

Avez-vous regardé RANSAC (Wikipedia) ?

Cela devrait permettre de calculer un modèle linéaire raisonnable, même s'il y a beaucoup de valeurs aberrantes et de bruit, car il repose sur l'hypothèse que seule une partie des données appartiendra réellement au mécanisme.

Anony-Mousse
la source
oui, mais en ajoutant une simple étape de repondération, on obtient un estimateur (LTS) tout aussi robuste que beaucoup plus stable et statistiquement efficace. Pourquoi ne pas faire
user603
1

l1

y=UNEX+e
e
y-UNEX-e22+λe1
W=jeuneg(wje)
y-UNEX-e22+λWe1

Plus d'informations peuvent être trouvées ici: http://statweb.stanford.edu/~candes/papers/GrossErrorsSmallErrors.pdf

Mojovski
la source
avez-vous essayé cela sur l'exemple Glen_b (si vous ajoutez une deuxième valeur aberrante à côté de l'endroit où il a placé la sienne) ou j'ai posté?
user603
@ user603 non, je viens d'appliquer cela à des cas plus pratiques de modélisation 3D à partir d'images de caméras. Là ça a beaucoup aidé. Cependant, voici une leçon à retenir: si vous avez plusieurs possibilités pour éliminer vos valeurs éloignées, utilisez-les.
Mojovski