从 Power BI 中的值和频率列计算标准偏差
Calculating the standard deviation from columns of values and frequencies in Power BI
我正在尝试计算 PowerBI 中一组值的标准差,但我卡住了。 table 中有两列(天数和计数)。这是运输车道的频率分布。天数从 1 到 100,count 是用了这些天数的发货数量。
计算频率分布标准偏差的公式非常简单:sqrt(sum(fx * (x - avgx)^2))/sum(fx)) 但是 Dax 给了我一个巨大的头痛。任何帮助将非常感激。谢谢。
我把Standard deviation Wikipedia page中的例子作为样本数据。
转换为等效的 Power BI 并满足您的天数和计数要求:
并且测量创建如下,棘手的部分是利用 SUMX 函数。我特意用 VAR
分解了中间步骤以使其更清楚。
st_dev =
VAR x_sum = SUMX(Lane, Lane[Days] * Lane[Count])
VAR x_count = SUM(Lane[Count])
VAR mean = x_sum / x_count
VAR dev_sq_sum = SUMX(Lane, POWER(Lane[Days] - mean, 2) * Lane[Count])
RETURN SQRT(dev_sq_sum / x_count)
结果:
P.S。 Power BI 实际上有一些用于计算标准偏差的内置函数,例如STDEVX.P,但在这种情况下它没那么有用。不过请随时查看。
我正在尝试计算 PowerBI 中一组值的标准差,但我卡住了。 table 中有两列(天数和计数)。这是运输车道的频率分布。天数从 1 到 100,count 是用了这些天数的发货数量。
计算频率分布标准偏差的公式非常简单:sqrt(sum(fx * (x - avgx)^2))/sum(fx)) 但是 Dax 给了我一个巨大的头痛。任何帮助将非常感激。谢谢。
我把Standard deviation Wikipedia page中的例子作为样本数据。
转换为等效的 Power BI 并满足您的天数和计数要求:
并且测量创建如下,棘手的部分是利用 SUMX 函数。我特意用 VAR
分解了中间步骤以使其更清楚。
st_dev =
VAR x_sum = SUMX(Lane, Lane[Days] * Lane[Count])
VAR x_count = SUM(Lane[Count])
VAR mean = x_sum / x_count
VAR dev_sq_sum = SUMX(Lane, POWER(Lane[Days] - mean, 2) * Lane[Count])
RETURN SQRT(dev_sq_sum / x_count)
结果:
P.S。 Power BI 实际上有一些用于计算标准偏差的内置函数,例如STDEVX.P,但在这种情况下它没那么有用。不过请随时查看。