Question:
Calcul de la valeur moyenne en ignorant les valeurs aberrantes
Max
2011-05-16 19:01:19 UTC
view on stackexchange narkive permalink

C'est plus une question de statistiques générales, mais si cela compte, j'écris du code PHP.

Disons que j'essaie de calculer la valeur moyenne d'un jouet qui est couramment acheté et vendu sur le marché secondaire, et j'ai un ensemble de valeurs de prix extraites à la fois des enchères et des données "prix payé" saisies par l'utilisateur. Les points de données qui représentent les enchères sont assez fiables, mais j'obtiens aussi occasionnellement le type de point de données "vente de garage", où quelqu'un a peut-être payé un dollar pour acheter quelque chose à tante Polly lors d'une vente de garage. Le problème est que les points de données de type $ 1 ne sont pas vraiment précieux pour moi, car ils n'indiquent pas vraiment de valeur - tante Polly ne savait pas mieux, et s'en moquait. De même, je peux parfois obtenir un point de données provenant d'un farceur qui saisit 9000 $ pour un jouet qui ne vaut vraiment que $9.

Donc, lors du calcul valeur, quel est le meilleur moyen de factoriser ces types d'anomalies à partir de données autrement utiles?

J'ai lu des informations sur les valeurs aberrantes et quelque chose sur le fait d'ignorer généralement tout ce qui est supérieur à 2,5 écarts-types en dehors du reste de la données, mais je cherche la recette complète, ici.

Merci beaucoup!

La recette complète, c'est que vous pouvez contrôler l'entrée. Vous devriez le faire. Validez les réponses ou demandez des réponses numériques. L'ajout d'un champ de commentaire pourrait fournir une qualification précieuse aux prix que vous pourrez consulter par la suite.
Vraiment à la recherche d'une solution statistique, mais merci quand même.
FYI, _outlier_ est un terme scientifique valide.
Cinq réponses:
#1
+9
Nick Sabbe
2011-05-16 19:22:43 UTC
view on stackexchange narkive permalink

Dans les boîtes à moustaches, les valeurs qui sont plus de 1,5 fois le QI (intervalle interquartile, différence entre le quartile 1 et 3) éloignées (comme dans: dans la direction s'éloignant de la médiane) des quartiles sont généralement considérées comme des valeurs aberrantes.

Je ne peux pas dire s'il s'agit d'une mesure appropriée pour vos données, cependant ...

C'est la bonne approche. Le critère est généralement de 1,5 IQR des * quartiles *, et non de la médiane. Voir le texte * EDA * de Tukey, par exemple. (Je crois qu'il est à l'origine de cette règle, qu'il analyse rigoureusement dans un article enfoui quelque part dans ses œuvres collectées.) Elle devient appropriée lorsque les données sont d'abord ré-exprimées d'une manière qui rend la distribution approximativement symétrique par rapport à sa médiane. Pour des moyens simples de déterminer une ré-expression, voir * EDA * * op. cit. *
#2
+5
mark999
2011-05-17 00:10:28 UTC
view on stackexchange narkive permalink

Vous pouvez envisager d'utiliser une moyenne tronquée. Cela impliquerait de rejeter, par exemple, les 10% de valeurs les plus élevés et les 10% de valeurs les plus bas, que vous les considérez comme mauvaises ou non.

Les moyennes réduites sont une bonne idée, conformément à la nécessité d'une statistique robuste. Mais l'OP devrait-il être à l'aise avec seulement 10% de coupe? Peut-être que 20% de coupe serait mieux? Cette réflexion nous amène assez rapidement à un extrême de ne rapporter que la médiane (une moyenne réduite à 50%). L'autre extrême est une analyse des valeurs aberrantes, le rejet des valeurs aberrantes et une ré-estimation des statistiques souhaitées.
Je ne suis pas exactement un expert, mais lancer simplement les 10% les plus élevés et les plus bas semble très différent de rejeter des valeurs qui sont clairement anormales. Si j'ai une centaine de valeurs qui se situent à peu près là où je les attendais, pourquoi voudrais-je en supprimer une? C'est seulement le ou les deux dans le champ gauche que je veux attraper et écarter ...
@whuber Je viens d'utiliser 10% comme exemple. Je ne sais pas quel serait le meilleur choix, ni même comment le «meilleur» serait défini. @Max Je ne sais pas si les moyens coupés sont vraiment bons pour votre situation, mais au moins vous seriez cohérent et éviteriez les décisions subjectives sur ce qu'il faut écarter.
@Max L'idée est que la suppression de quelques valeurs aux deux extrémités des données n'affectera probablement pas votre estimation de l'emplacement de la plupart des valeurs, que ce que vous jetez soit ou non une valeur aberrante. J'insiste un peu sur ce point, sachant à quel point les données Web peuvent être mauvaises, et je suggère une approche encore plus simple d'utilisation de la valeur moyenne pour estimer votre prix typique: c'est la même chose que de «jeter» tout sauf une seule valeur! Vous pouvez également vous pencher sur une statistique étroitement liée, la [moyenne Winsored] (http://en.wikipedia.org/wiki/Winsorized_mean)
#3
+2
Tom Gullen
2011-05-16 19:13:38 UTC
view on stackexchange narkive permalink

J'ai initialement publié ceci sur SO avant qu'il ne soit supprimé:

https://stats.stackexchange.com/ vous aidera probablement mieux avec cela, et vous en donnera plus réponse complète. Je ne suis pas un mathématicien, mais je soupçonne qu'il existe plusieurs façons de résoudre ce problème.

En tant que programmeur, c'est ainsi que j'aborderais le problème. Je ne suis pas assez habile pour vous dire si cela est valable, mais pour des données simples, cela devrait être acceptable.

Selon le type de données, il peut être acceptable d'avoir des quantités coupées. Vous voudrez probablement une moyenne mobile (souvent utilisée sur les marchés boursiers) qui prend le prix moyen des n derniers mois, cela permet d'annuler l'impact de l'inflation, puis d'avoir un seuil de $ n ou un pourcentage seuil basé sur la moyenne mobile, c'est-à-dire que toute valeur qui s'écarte de + -20% ou + - $ n de la moyenne mobile sera ignorée.

Cela fonctionnerait très bien pour des marchés relativement stables , si votre entité existe sur un marché volatil qui fluctue énormément, vous voudrez probablement trouver une approche différente.

Vous devez également envisager sérieusement de couper les données, vous mentionnez la vente de garage de mamie qui est sans doute une réduction légitime désactivé, mais vous devez accepter que vous perdrez probablement également des points de données légitimes qui pourraient avoir un effet significatif sur vos résultats.

Mais encore une fois, il y aura plusieurs façons d'y parvenir.

L'ensemble de données avec lequel je travaille représente les 6 derniers mois de données, donc beaucoup sont déjà en place. Et merci pour l'aide, mais je recherche vraiment une solution exprimée en termes statistiques.
#4
  0
Thies Heidecke
2011-05-16 23:31:09 UTC
view on stackexchange narkive permalink

Peut-être qu'un estimateur robuste comme RANSAC pourrait être utilisé ici.

#5
  0
IrishStat
2011-05-16 23:58:16 UTC
view on stackexchange narkive permalink

J'espère que cela aide

Les approches simplistes, comme suggéré ici, échouent souvent à leur manque de généralité. En général, vous pouvez avoir une série qui a plusieurs tendances et / ou plusieurs niveaux afin de détecter les anomalies qu'il faut "contrôler" pour ces effets. De plus, il peut y avoir un effet saisonnier qui peut avoir commencé dans les k dernières périodes et ne pas être présent dans les premières valeurs n-k. Passons maintenant à l'essentiel du problème. Supposons qu'il n'y ait aucun changement moyen / aucun changement de tendance / aucune structure d'impulsions saisonnières dans les données. Les données peuvent être autocorrélées, ce qui entraîne une sur ou sous-estimation de l'écart type simple en fonction de la nature de l'autocorrélation. L'existence possible d'impulsions, d'impulsions saisonnières, de changements de niveau et / ou de tendances temporelles locales obscurcit l'identification des «exceptions». L'utilisation d'un "mauvais écart type" pour essayer d'identifier des anomalies est imparfaite car il s'agit d'un test hors modèle par rapport à un "test en modèle" qui est finalement ce qui est utilisé pour conclure sur la signification statistique des anomilies. Vous pourriez chercher sur Google "comment faire la détection des interventions statistiques" pour vous aider à trouver des sources / logiciels pour ce faire.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...