Добавление/объединение стандартных отклонений

Краткая версия:
Можно ли добавлять/комбинировать 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

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


person Riyaz    schedule 13.10.2011    source источник
comment
Я думаю, что отношение между дисперсиями равно Var(X + Y) = Var(X) + Var(Y) + 2Cov(X, Y), поэтому вам также нужна ковариация.   -  person Kerrek SB    schedule 13.10.2011
comment
или хорошая оценка ковариации.   -  person ypercubeᵀᴹ    schedule 13.10.2011


Ответы (2)


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

Обозначить:

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)
person Michael J. Barber    schedule 13.10.2011
comment
Day_1 = (11,14,16,17), n = 4, m = 14.5, v = 7 | Day_2 = (21,34,43,12), n = 4, m = 27.5, v = 188.33333 | N = 8 | M = (4 * 14.5 + 4 * 27.5)/8 = 21 | S1 = ((4 * 7) + (4 * 188.33333)) = 781.33332 | S2 = ((4 * (14.5 - 21)^2) + (4 * (27.5 - 21)^2)) = 338 | V = (781.33332 + 338)/8 = 139.916665 Но дисперсия (11,14,16,17,21,34,43,12) = 132 - person Riyaz; 17.10.2011
comment
Выражения, которые я дал, относятся к дисперсии генеральной совокупности, дисперсии, которые вы используете, являются дисперсиями выборки. Предположительно, у вас много ежедневных данных, поэтому вы не заметите никакой разницы в результатах. Если вы считаете, что это имеет значение, существуют аналогичные формулы для выборочной дисперсии. - person Michael J. Barber; 17.10.2011
comment
Прежде всего, спасибо за ваш вклад. Я использую DB2, в которой есть функция VARIANCE для расчета дисперсии для заданного набора. Но не уверен, что это дисперсия населения или выборки. Не могли бы вы также опубликовать формулы для выборочной дисперсии. - person Riyaz; 18.10.2011
comment
en.wikipedia.org/wiki/Variance имеет обе формы. На самом деле все сводится к тому, делите ли вы сумму квадратов остатков на n для дисперсии генеральной совокупности или n-1 для дисперсии выборки. В моем ответе уже есть уравнения, необходимые для объединения либо генеральной совокупности, либо выборочной дисперсии; обратите внимание, что уравнения отличаются только заменой n[i] на n[i]-1. - person Michael J. Barber; 19.10.2011

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

Докажите это себе с помощью цифр, которые вы предоставили:

X = 2.645751311, Y = 13.72345923

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

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

http://en.wikipedia.org/wiki/Стандартное_отклонение

person duffymo    schedule 13.10.2011