设置:我有一堆建筑的能源使用数据,这些建筑是在不同的年份建造的。我想分析一下Tableau构建日期的能源使用情况。我最初的问题是,样本中没有足够的建筑物来为每年设置一个健壮的集合,结果输出显示出大量的噪声。分布是向右倾斜的,因为有许多高异常值,但没有接近于0的异常值,所以我想使用中值来减少少数(可能是错误的)高异常值的影响。
理想的解决方案:创建一个5年的“移动”或“运行”中值,它包括给定年份两年内任何方向的所有建筑,因此每组建筑都以该年为中心。
我在Tableau中的尝试:我想使用WINDOW_MEDIAN(能量,-2,2),但它是一个聚合函数。所以我尝试了WINDOW_MEDIAN(MEDIAN(能量,-2,2)。不幸的是,这得到了5个中位数的中位数(中位数?!嘘!)。同样,我希望在每个5年窗口中表示所有单个建筑的中位数(而不是聚合中值)。
有没有想过该怎么做?谢谢!
发布于 2021-02-19 15:21:13
请允许我重新定义移动中间带。以下是来自MatLab的示例:
A=4 8 6 -1 -2 -3 -1 3 4 5;M=移动中位数(A,3)
结果是10个中值。
要在Tableau中获得相同的解决方案,您有1-2个解决方案:
如果x轴是日期,则使用线条
佛朗哥
发布于 2015-03-06 01:50:46
在定义表计算时,除了计算公式本身之外,还需要指定额外的信息--告诉Tableau如何划分结果集、遍历哪些维度(地址)以及按什么顺序进行遍历。
您可以在"Compute Using“菜单下看到其中的一些选项,这通常是您所需要的,但更明确的做法是编辑表计算并为"Running of”选项选择“Advanced”。
你真正的问题是定义你想要的计算的详细程度。
根据定义,表计算对数据源返回给Tableau的聚合结果进行操作--这与由数据源执行的其他计算不同。这意味着,如果您希望您的表计算考虑到数据集中的每一行来计算中位数,那么Tableau必须在一个精细的粒度级别请求数据。您可以通过在视图中包含一些维度组合来实现这一点,这些维度组合可以唯一地标识数据中的每一行(考虑主键)。这将扩展提供给Tableau的聚合结果,以获得中位数计算所需的所有数据。
此时,您将需要指定哪些维度用于表计算的关联、寻址和排序,可能是在上面提到的高级面板上。网上有一些很好的教程,但实验也是一个很好的老师。
您仍然需要一个围绕能量的聚合函数,但由于每个数据行块都应该只有行,因此聚合函数没有太大作用。在这些情况下,我通常选择MIN(),但当分区中只有一行时,MAX()、AVG()、MEDIAN()都有相同的效果。
https://stackoverflow.com/questions/28870907
复制相似问题