Quels sont les algorithmes efficaces et précis pour exclure les valeurs aberrantes d'un ensemble de données?
-
20-09-2019 - |
Question
J'ai mis de 200 lignes de données (ce qui implique un petit ensemble de données). Je veux mener une analyse statistique, mais avant que je veux exclure des valeurs aberrantes.
Quels sont les algos potentiels dans le but? La précision est un sujet de préoccupation.
Je suis très nouveau Stats, donc besoin d'aide pour algos très basiques.
La solution
Commencez par tracer les levier des valeurs aberrantes et ensuite pour un bon ol «traumatisme interoculaire (aka regarder au nuage de points).
Beaucoup de progiciels statistiques ont des diagnostics de valeurs aberrantes / résiduelles, mais je préfère D. Cook Vous pouvez le calculer manuellement si vous souhaitez en utilisant
Autres conseils
Dans l'ensemble, la chose qui fait une question comme ce disque est qu'il n'y a pas de définition rigoureuse d'une valeur aberrante. Je recommande en fait contre l'utilisation d'un certain nombre d'écarts-types comme seuil pour les raisons suivantes:
- Quelques valeurs aberrantes peut avoir un impact énorme sur votre estimation de l'écart-type, l'écart type est une statistique robuste.
- L'interprétation de l'écart type dépend énormément de la distribution de vos données. Si vos données sont normalement distribuées puis 3 écarts-types est beaucoup, mais si elle est, par exemple, distribution log-normale, puis 3 écarts-types n'est pas beaucoup.
Il y a quelques bonnes façons de procéder:
-
Gardez toutes les données, et il suffit d'utiliser des statistiques robustes (médiane au lieu de la moyenne, test de Wilcoxon au lieu de T-test, etc.). Probablement bon si votre ensemble de données est grande.
-
Coupez ou Winsorize vos données. des moyens de rognage de retirer le haut et le bas x%. Winsorizing des moyens de réglage de la partie supérieure et inférieure x% de la xième et la valeur percentile de 1-xième respectivement.
-
Si vous avez un petit jeu de données, vous pouvez simplement tracer vos données et examiner manuellement des valeurs non plausibles.
-
Si vos données semble raisonnablement proche de normalement distribué (pas de queue lourde et à peu près symétrique), puis utilisez la balise
Vous avez peut-être entendu 'six sigma' l'expression.
Ceci fait référence à plus et moins 3 sigma (par exemple, les écarts-types) autour de la moyenne.
Tout en dehors de la gamme 'Six Sigma' pourrait être traités comme une valeur aberrante.
A la réflexion, je pense 'Six Sigma' est trop large.
Cet article décrit comment cela revient à « 3,4 pièces défectueuses par million d'opportunités. »
Il semble une exigence assez stricte à des fins de certification. Vous seul pouvez décider si cela vous convient.
En fonction de vos données et sa signification, vous voudrez peut-être regarder dans RANSAC (aléatoire consensus de l'échantillon). Ceci est largement utilisé dans la vision par ordinateur, et donne généralement d'excellents résultats lorsque vous essayez d'ajuster les données avec beaucoup de valeurs aberrantes à un modèle.
Et il est très simple à conceptualiser et expliquer. D'autre part, il est non déterministe, ce qui peut causer des problèmes en fonction de l'application.
Calculer l'écart type sur le plateau, et exclure tout l'extérieur de la première, deuxième ou troisième écart-type.
Voici comment j'aller à ce sujet dans SQL Server
La requête ci-dessous obtenir le poids moyen d'une table d'échelle fictive tenant une seule pesée pour chaque personne tout en ne permettant pas ceux qui sont trop gras ou maigre pour se débarrasser de la moyenne plus réaliste:
select w.Gender, Avg(w.Weight) as AvgWeight
from ScaleData w
join ( select d.Gender, Avg(d.Weight) as AvgWeight,
2*STDDEVP(d.Weight) StdDeviation
from ScaleData d
group by d.Gender
) d
on w.Gender = d.Gender
and w.Weight between d.AvgWeight-d.StdDeviation
and d.AvgWeight+d.StdDeviation
group by w.Gender
Il peut y avoir une meilleure façon de s'y prendre, mais il fonctionne et fonctionne bien. Si vous avez rencontré une autre solution plus efficace, j'aimerais entendre parler.
NOTE: l'enlève au-dessus du 5% des valeurs aberrantes haut et en bas de l'image à des fins de la moyenne. Vous pouvez régler le nombre de valeurs aberrantes supprimées en ajustant la 2 * 2 * dans le STDDEVP selon: http: / /en.wikipedia.org/wiki/Standard_deviation
Si vous voulez analyser juste, disons que vous voulez calculer la corrélation avec une autre variable, son ok pour exclure les valeurs aberrantes. Mais si vous voulez modéliser / prédire, il est toujours préférable de les exclure d'emblée.
Essayez de le traiter avec des méthodes telles que le plafonnement ou si vous pensez que les valeurs aberrantes contiennent des informations / modèle, puis le remplacer par manque, et le modèle / prédire. Je l'ai écrit quelques exemples de la façon dont vous pouvez aller sur ce en utilisant R .