简短版本:
可以添加/组合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
长版本:
我正在设计一个星型模式。模式有一个fact_table(grain = transaction),它存储单个事务response_time。模式还有一个aggregate_table(grain = day),它存储每天的response_time_sum
在我的报告中,我需要计算给定时间尺度的响应时间的标准偏差,比如天,周,月等。如何使用aggregate_table计算StandardDeviation而不是触及巨大的fact_table?
答案 0 :(得分:4)
是的,你可以将它们结合起来。您需要知道每天的观察次数,平均值和标准偏差。方差比标准偏差更容易使用,因此我将根据方差表达其他所有内容。 (标准偏差定义为方差的平方根。)
表示:
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)
答案 1 :(得分:0)
不,您无法添加标准偏差。
使用您提供的号码证明自己:
X = 2.645751311,Y = 13.72345923
组合标准偏差:11.48912529
您可以使用标准偏差公式进行更一般的证明。你需要两者的协方差 - 向下滚动到“身份”: