Qlik Sense使用Stdev()函数计算标准差

什么是标准差?

标准差(Standard Deviation)是衡量一组数值分散程度的统计量,表示数据与平均数之间的偏差。标准差是方差的平方根,它能够反映数据集内部的变异性或离散程度。

  • 计算方法:标准差的计算涉及到每一个数据点与平均值的差值,这些差值被平方后加总,然后除以数据点的个数(对于样本标准差是除以个数减一)得到方差,最后取方差的平方根即为标准差。
  • 意义解释:一个较小的标准差意味着数据点接近平均值,而较大的标准差则意味着数据点分散得比较开。
  • 应用范畴:标准差在多个领域都有广泛应用,如在投资领域用于评估风险,在制造业中用于质量控制等。

此外,标准差还与正态分布的概率有关,例如在一个正态分布的数据集中,大约68%的数据值落在距离平均数一个标准差的范围内,约95%的数据落在两个标准差内,而约99%的数据落在三个标准差内。

综上所述,了解标准差有助于我们更好地理解数据的波动性和可靠性。

Qlik Sense 计算标准差的最佳实践

在Qlik Sense中,可以使用以下步骤来计算标准差:

  1. 加载数据:确保您的数据已经加载到Qlik Sense中,并且已经进行了适当的数据处理和关联。

  2. 创建度量:在Qlik Sense中,您可以创建一个度量来定义标准差的计算方式。通常,标准差的计算公式为:

    其中,��Xi​ 是各个数据点,�μ 是数据的平均值,N) 是数据点的总数。在样本标准差的计算中,除以的是 \(N-1(样本大小减去1),而在总体标准差的计算中,除以的是 �N。

  3. 使用聚合函数:在Qlik Sense的图表中,您可以使用聚合函数来应用这个度量。例如,如果您想计算某个字段的标准差,可以在图表的表达式中使用StdDev()函数。

  4. 应用表达式:在需要计算标准差的字段上应用上述创建的度量或直接使用StdDev()函数。例如,如果您有一个名为Sales的字段,您可能想要计算其标准差,可以这样写:StdDev({<Field>}, Sales),其中<Field>是您要基于其计算标准差的条件字段。

  5. 查看结果:完成上述步骤后,您就可以在图表中看到计算出的标准差值了。

Stdev函数实战

Stdev() 用于返回迭代于 group by 子句定义的大量记录的表达式中的标准偏差值。(标准差)

语法:  

Stdev([distinct] expr)

返回数据类型: 数字

参数:  

参数
参数说明
expr表达式或字段包含要度量的数据。
distinct如果在表达式前面出现单词 distinct,则将忽略所有重复值。

Sample 1 Stdev脚本函数

Table1:
Crosstable (Type, Value)
Load recno() as ID, * inline [
Observation|Comparison
35|2
40|27
12|38
15|31
21|1
14|19
46|1
10|34
28|3
48|1
16|2
30|3
32|2
48|1
31|2
22|1
12|3
39|29
19|37
25|2 ] (delimiter is '|');

 
Stdev1:

LOAD Type,

Stdev(Value) as MyStdev

Resident Table1 Group By Type;

 

Stdev() 计算的结果是:

  • Type 是 MyStdev
  • Comparison 是 14.61245
  • Observation 是 12.507997

Sample 2 Measure调用脚本函数

MaterialJanFebMrchAvgStd
a0110,666666670,471404521
b15115,666666674,109609335
b0100,333333330,471404521
Try with RangeAvg function


T:
LOAD
*,
Sqrt(RangeSum(Pow((Jan - Average),2), Pow((Feb - Average),2), Pow((Mrch - Average),2)) / 3)
;
LOAD Material,
Jan,
Feb,
Mrch,
Avg,
Std,
RangeAvg(Jan, Feb, Mrch) as Average
FROM [lib://WebQlikCommunity]
(html, utf8, embedded labels, table is @1);

 

With a pivot

And user Measures

if(SecondaryDimensionality()=0, null(), sum(Value))

if(SecondaryDimensionality()=0, avg(TOTAL <Material> Value))

if(SecondaryDimensionality()=0, StDev(TOTAL <Material> Value))

 

Sample 3 两倍/N倍标准差

TestData:
LOAD
floor(NormInv(Rand(),0,1)*100) as F1
AutoGenerate 1000
;

Threshold:
LOAD
Avg(F1) + (StDev(F1)* 2) as Threshold
Resident TestData
;
Let vThreshold = Peek('Threshold');

Counts:
LOAD
Count(F1) as Counted
Resident TestData
Where F1 > $(vThreshold)
;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值