gpt4 book ai didi

database - 添加/组合标准偏差

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:59 26 4
gpt4 key购买 nike

简短版:
可以添加/组合 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。该模式还有一个聚合表(grain=day),用于存储每天的 response_time_sum。
在我的报告中,我需要计算给定时间维度(例如天、周、月等)的响应时间的标准偏差。如何使用 aggregate_table 而不是触及巨大的 fact_table 来计算 StandardDeviation?

最佳答案

是的,您可以将它们结合起来。您需要知道每天的观察次数、均值和标准差。方差比标准差更容易处理,所以我将用方差来表达其他一切。 (标准偏差定义为方差的平方根。)

表示:

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] 作为样本方差,则需要对 s1V 进行一些小的修改:

s1_sample = sum((n[i] - 1) * v[i] for i in days)
V_sample = (s1_sample + s2) / (N - 1)

关于database - 添加/组合标准偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7753002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com