Trouver des valeurs aberrantes sans supposer une distribution normale

8

J'ai de petits ensembles de données de taille 40-50 points. Sans supposer que les données sont normalement distribuées, j'ai voulu découvrir les valeurs aberrantes avec une confiance de 90% au moins. Je pensais que le boxplot pourrait être un bon moyen de le faire, mais je ne suis pas sûr.

Toute aide appréciée.

De plus, avec les implémentations boxplot, je n'ai pas pu trouver une implémentation qui en plus de dessiner l'intrigue crache explicitement les valeurs aberrantes.

Abhi
la source
7
90% de confiance en quoi?
Henry
Ce que je vois aussi parfois, c'est que les chercheurs abandonnent le X% supérieur et inférieur de leurs observations pour réduire l'influence des cas extrêmes. Mais je ne sais pas si je suis d'accord, c'est assez arbitraire n'est-ce pas?
C. Pieters
Vous n'avez pas à supposer que vos données sont normalement distribuées, mais puisque vous savez à quelles données vous avez affaire, vous pouvez peut-être utiliser une autre distribution paramétrique. Par exemple, les temps d'attente sont souvent distribués par Poisson. Ensuite, il est logique de dire si un point de données de Poisson est susceptible d'être généré par une distribution donnée d'entre eux.
Jack Tanner

Réponses:

22

C'est parce qu'un tel algorithme ne peut pas exister. Vous avez besoin d'une distribution supposée afin de pouvoir classer quelque chose comme étant en dehors de la plage de valeurs attendues.

Même si vous supposez une distribution normale, déclarer des points de données comme des valeurs aberrantes est une entreprise difficile. En général, vous avez non seulement besoin d'une bonne estimation de la vraie distribution, qui n'est souvent pas disponible, mais aussi d'une bonne raison théoriquement appuyée pour prendre votre décision (c'est-à-dire que le sujet a cassé la configuration expérimentale d'une manière ou d'une autre). Un tel jugement est généralement impossible à codifier dans un algorithme.

rien101
la source
11
+1. En outre, l'utilisation de «avec une confiance de 90%» révèle une mauvaise compréhension de la manière dont le concept de confiance pourrait s'appliquer dans ce cas. Sans base pour un degré de confiance, il n'y a aucun moyen systématique de quantifier le niveau de confiance que l'on pourrait avoir. Cela reviendrait à une chose arbitraire, comme si l'on disait "je suis x% confiant que cette soupe est trop salée".
rolando2
5
@ rolando2, c'est comme cela peut être, mais néanmoins, je suis convaincu à 90% que c'est un bon commentaire.
gung - Rétablir Monica
6

Cela ne répond pas directement à votre question, mais vous pouvez apprendre quelque chose en regardant l' outliersensemble de données dans le TeachingDemospackage pour R et en travaillant à travers les exemples de la page d'aide. Cela peut vous permettre de mieux comprendre certains des problèmes liés à la détection automatique des valeurs aberrantes.

Greg Snow
la source
2

R crachera les valeurs aberrantes comme dans

dat <- c(6,8.5,-12,1,rnorm(40),-1,10,0)
boxplot(dat)$out

qui dessinera le boxplot et donnera

[1]   6.0   8.5 -12.0  10.0
Henri
la source
2
Non - la définition par défaut de "valeur aberrante" pour un boxplot est autre chose que 1.5IQR au-dessous de la charnière inférieure ou du quartile ou au-dessus 1.5IQR au-dessus de la charnière ou du quartile supérieur, où IQRest la plage interquartile. Étant donné que l'asymétrie affecte généralement la position relative des quartiles et de la médiane, vous ne pouvez pas dire que cela suppose une distribution symétrique. Pour quelque chose comme une distribution exponentielle, vous ne verrez généralement que des valeurs aberrantes dans le haut de gamme, mais c'est ce que vous attendez de toute façon.
Henry
4
Il convient de noter que trouver des points >|1,5jeQR|est quelque chose qui devrait se produire assez souvent et n'indique pas nécessairement de problème.
gung - Rétablir Monica
5
@gung: C'est 1,5jeQR au-delà du quartile, donc environ 2jeQRde la médiane pour une distribution symétrique. Cela dépend aussi de ce que vous entendez par «assez souvent» et de la distribution: presque jamais pour un échantillon d'une distribution uniforme; environ 0,7% d'un échantillon d'une distribution normale; environ 5% pour un échantillon d'une distribution exponentielle; environ 16% pour un échantillon d'une distribution de Cauchy.
Henry
1
Je me souviens d'avoir vu un bref article à ce sujet il y a un certain temps, bien sûr, je ne le trouve pas maintenant, mais voici ma pensée: je commence avec 2*(1-pnorm(4*qnorm(.75))), qui renvoie [1] 0.006976603, la valeur que vous signalez ci-dessus, mais ensuite je simule comme suit: Set.seed(1); out = c(); for(i in 1:100) x = rnorm(50) y = boxplot(x, plot=F) out[i] = length(y$out)>=1} sum(out)/100qui retourne [1] 0.3. C'est-à-dire, 30% des échantillons w /n=50apparaîtra comme ayant des valeurs aberrantes par cette méthode, même s'il n'y en a pas.
gung - Rétablir Monica
1
@gung: set.seed(1); out = c(); for(i in 1:100) {x = rnorm(500); y = boxplot(x, plot=F); out[i] = length(y$out)}; sum(out)/50000donne 0.00738ce qui est plus proche de ce que je décrivais
Henry
1

Comme d'autres l'ont dit, vous avez mal posé la question en termes de confiance. Il y a des tests statistiques pour les valeurs aberrantes comme le test de Grubbs et le test de ratio de Dixon que j'ai mentionnés dans un autre post. Ils supposent que la distribution de la population est normale bien que le test de Dixon soit robuste à l'hypothèse de normalité dans de petits échantillons. Un boxplot est un bon moyen informel de repérer les valeurs aberrantes dans vos données. Habituellement, les moustaches sont fixées au 5e et au 95e centile et les observations tracées au-delà des moustaches sont généralement considérées comme des valeurs aberrantes possibles. Cependant, cela n'implique pas de tests statistiques formels.

Michael R. Chernick
la source
2
Fixer les moustaches à ces centiles fixes me semble étrange. Avez-vous une référence pour cela? (Tukey, à l'origine du boxplot, n'a pas utilisé cette méthode: il a placé les moustaches soit aux extrêmes, si elles sont suffisamment proches des quartiles, mais pas plus de 1,5 "pas" (soit environ 1,5 fois l'IQR). des quartiles.) Ceci est beaucoup plus robuste pour la détection des valeurs aberrantes que l'utilisation d'un centile extrême, qui - par définition - identifierait toujours 10% des données comme des «valeurs aberrantes», ce qui ne serait pas une procédure très utile.
whuber
Je ne sais pas si j'aurais dû dire d'habitude. Je pense que beaucoup de points différents ont été utilisés pour les moustaches. Je pense que le 1er centile et le 99e ont également été utilisés ainsi que le min et le max. Mais si vous utilisez min et max, vous ne pouvez pas trouver de valeurs aberrantes au-delà des moustaches. Je n'ai aucune référence spécifique qui me vient à l'esprit pour le moment. Je ne voulais pas dire que quoi que ce soit en dehors des moustaches serait une valeur aberrante lorsque les 5e et 95e centiles sont utilisés. Je voulais juste dire que visuellement, vous pouvez les voir car ils seront bien au-dessus ou en dessous des moustaches.
Michael R. Chernick