Qliksense:计算分组数据的中位数

问题描述 投票:1回答:1

我在QlikSense中面临一个问题,试图在已经按源分组的数据集上计算一些统计指标(Percentiles,Quartiles,StdDev,Median等)。

我的意思是我的数据集类似于以下内容,其中我对Week和Customer Age的每个组合都有购买总数:Dataset

我想显示客户年龄的中位数,由于数据集的结构,我不能使用分数或中位数内置函数,因为它们会出现不同的东西。

假设我想计算所有3周内人们的年龄中位数,这样我想知道完成50%购买的人的年龄。

为了让您更好地理解这个问题,我向您展示了直方图:

Histogram

在这种情况下,我想得到的中位数是24-26岁,因为总人口的50%属于该范围。

我在这里找到了一个有用的参考,但我在QlikSense中编写这个公式时遇到了麻烦

https://mba-lectures.com/statistics/descriptive-statistics/603/relationship-between-quartiles-decile ...

非常感谢提前。

[编辑]:这是我的数据模型视图:

DMV

[编辑2]:Here是我的qvf,其数据集与我正在使用的原始数据集更相似。如您所见,我无法使用您的公式得到正确的结果。另外,我想用它来绘制中位数到几周的趋势,但似乎不可能(即使我使用了我在评论中指出的公式的修改版本)。

qliksense
1个回答
1
投票

如果你想在这种情况下计算中位数,你需要加权中位数,并基本检查中间的维度值:

Aggr(
    If(
        (Rangesum(
            Above([# Purchases],0,RowNo())
        )
        /Sum(TOTAL [# Purchases]))>=0.5 
    and 
        (Rangesum(
            Above([# Purchases],1,RowNo()-1))
        /Sum(TOTAL [# Purchases]))<0.5
    ,[Customer Age])
 ,[Customer Age])
© www.soinside.com 2019 - 2024. All rights reserved.