Добавление / объединение стандартных отклонений - PullRequest
3 голосов
/ 13 октября 2011

Короткая версия:
Можно ли добавлять / комбинировать StdDevs? т.е.

if StdDev(11,14,16,17)=X and StdDev(21,34,43,12)=Y  
can we calculate StdDev(11,14,16,17,21,34,43,12) from X & Y

Длинная версия:
Я проектирую звездную схему. Схема имеет таблицу фактов (зерна = транзакция), в которой хранится отдельная транзакция response_time. Схема также имеет агрегатную таблицу (зерно = день), в которой хранится response_time_sum за день.
В моем отчете мне нужно вычислить стандартные отклонения времени отклика для данного временного измерения, скажем, дня, недели, месяца и т. Д. Как я могу вычислить StandardDeviation, используя aggregate_table вместо того, чтобы касаться огромной таблицы fact_table?

Ответы [ 2 ]

4 голосов
/ 13 октября 2011

Да, вы можете объединить их. Вам необходимо знать количество наблюдений, среднее значение и стандартное отклонение для каждого дня. С дисперсией легче работать, чем со стандартным отклонением, поэтому я выражу все остальное в терминах дисперсии. (Стандартное отклонение определяется как квадратный корень из дисперсии.)

Обозначим:

n[i] # observations for day i
m[i] # mean for day i
v[i] # variance for day i

Вам необходимо рассчитать общее количество наблюдений N и общее среднее значение M. Это легко:

days = [day1, day2, ..., day_final]
N = sum(n[i] for i in days)
M = sum(n[i] * m[i] for i in days) / N

Общая дисперсия V является более сложной, но все же может быть рассчитана:

s1 = sum(n[i] * v[i] for i in days)
s2 = sum(n[i] * (m[i] - M)**2 for i in days)
V = (s1 + s2) / N

Выше для дисперсии населения. Если вместо этого вы используете v[i] в качестве выборочной дисперсии, необходимо внести незначительные изменения в s1 и V:

s1_sample = sum((n[i] - 1) * v[i] for i in days)
V_sample = (s1_sample + s2) / (N - 1)
0 голосов
/ 13 октября 2011

Нет, вы не можете добавить стандартные отклонения.

Докажите это с помощью предоставленных вами номеров:

Х = 2,645751311, Y = 13,72345923

Стандартное отклонение комбинированного набора: 11,48912529

Вы можете сделать более общее доказательство, используя формулу для стандартного отклонения. Вам нужна ковариация двух - прокрутите вниз до «тождеств»:

http://en.wikipedia.org/wiki/Standard_deviation

...