2009-09-26 9 views
8

J'ai deux ensembles de statistiques générés à partir du traitement. Les données du traitement peuvent être une grande quantité de résultats, donc je préférerais ne pas avoir à stocker toutes les données pour recalculer les données supplémentaires plus tard. Disons que j'ai deux ensembles de statistiques qui décrivent deux sessions différentes d'exécutions sur un processus.Fusion de deux ensembles de résultats statistiques

Chaque ensemble contient

Statistics : { mean, median, standard deviation, runs on process} 

Comment puis-je fusionner la médiane des deux, et l'écart-type pour obtenir un résumé combiné des deux séries de statistiques décrivant. N'oubliez pas que je ne peux pas conserver les deux ensembles de données décrits par les statistiques.

Répondre

20

Vous pouvez obtenir l'écart moyen et standard, mais pas la médiane.

new_n = (n(0) + n(1) + ...) 
new_mean = (mean(0)*n(0) + mean(1)*n(1) + ...)/new_n 

new_var = ((var(0)+mean(0)**2)*n(0) + (var(1)+mean(1)**2)*n(1) + ...)/new_n - new_mean**2 

n(0) est le nombre de passages dans le premier ensemble de données, n(1) est le nombre de pistes dans la seconde, et ainsi de suite, mean est la moyenne, et var est la variance (qui est juste l'écart-type au carré). n**2 signifie "n carré". L'obtention de la variance combinée repose sur le fait que la variance d'un ensemble de données est égale à la moyenne du carré de l'ensemble de données moins le carré de la moyenne de l'ensemble de données. Dans le langage statistique,

Var(X) = E(X^2) - E(X)^2 

Les termes var(n)+mean(n)**2 nous donnent au-dessus de la partie E(X^2) que nous pouvons combiner avec d'autres ensembles de données, puis obtenir le résultat souhaité.

En termes de valeurs médianes:

Si vous combinez exactement deux ensembles de données, alors vous pouvez être certain que la médiane combinée se situe quelque part entre les deux terre-pleins (ou égal à l'un d'eux), mais il y a peu plus que vous pouvez dire. Prendre leur moyenne devrait être OK sauf si vous voulez éviter que la médiane ne soit pas égale à un point de données.

Si vous combinez plusieurs ensembles de données en une fois, vous pouvez soit prendre la médiane des médianes, soit prendre leur moyenne. S'il peut y avoir des différences systématiques significatives entre les différents ensembles de données, il est probablement préférable de prendre leur moyenne, car le fait de prendre la médiane réduit l'effet des valeurs aberrantes. Mais si vous avez des différences systématiques entre les courses, ne pas en tenir compte n'est probablement pas une bonne chose à faire.

3

La médiane n'est pas possible. Dites que vous avez deux tuples, (1, 1, 1, 2) et (0, 0, 2, 3, 3). Les médians sont 1 et 2, la médiane globale est de 1. Pas moyen de le dire.

23

Artelius est mathématiquement exact, mais la façon dont il suggère de calculer la variance est numériquement instable. Vous voulez calculer la variance comme suit:

new_var=(n(0)*(var(0)+(mean(0)-new_mean)**2) + n(1)*(var(1)+(mean(1)-new_mean)**2) + ...)/new_n 

modifier de commentaire
Le problème avec le code d'origine est, si votre écart est faible par rapport à votre moyenne, vous finirez par la soustraction d'un grand nombre de un grand nombre pour obtenir un nombre relativement petit, ce qui vous fera perdre la précision en virgule flottante.Le nouveau code évite ce problème; plutôt que de convertir en E (X^2) et en retour, il ajoute simplement toutes les contributions à la variance totale ensemble, correctement pondérées en fonction de la taille de l'échantillon.

+0

Bon point, mais pourriez-vous développer un peu? – Artelius

+9

Bien sûr. Le problème avec le code original est que, si votre écart est petit par rapport à votre moyenne, vous finirez par soustraire un grand nombre d'un grand nombre pour obtenir un nombre relativement petit, ce qui vous fera perdre la précision en virgule flottante. Le nouveau code évite ce problème; plutôt que de convertir en E (X^2) et en retour, il ajoute simplement toutes les contributions à la variance totale ensemble, correctement pondérées en fonction de la taille de l'échantillon. – comingstorm

+1

+1 pour votre réponse et commentaire. Les deux sont sur place, et très bien écrits. – duffymo

Questions connexes