如果您熟悉盒须图,那么您也知道这是一个非常好的图表来检查数据的分布并突出显示异常值。但有时仅仅显示异常值是不够的,我们可能也想筛选掉异常值,因为这些异常值可能是由于数据问题或某些我们不希望在分析中包含的特定情况所引起的。那我们该如何在 Tableau 中根据盒须图的逻辑筛选出异常值?
如果您不确定盒须图的样子,下图是一个简单的示意图。
图表中的每个圆圈代表 Sample Superstore Sales Excel 文件中美国各个州的总利润。盒子展示了各个州利润的中位数以及上四分位数(百分位 75)和下四分位数(百分位 25)之间的范围。另外两条须分别代表仍在 1.5 IQR 范围内的最低和最高线。IQR 是四分位数的范围 - 上四分位数和下四分位数之间的差值。也就是说,每条须都显示了该范围之间的数据点。
因此,如果我们想要筛除或突出异常值,我们需要计算 IQR 和所有在 IQR+/- 1.5 倍之内的数据。那么我们该怎么做?
第 1 步计算百分位 25 和百分位 75
首先,我们要计算百分位 25(Q1)和百分位 75(Q3)之间的所有数据。也就是盒子内的所有数据。为此,我们将使用度量(利润)的百分位数创建计算字段,并使用布尔运算让该范围之间的所有数据点返回 TRUE 值。
在 P25 和 P75 之间:
RANK_PERCENTILE(SUM([Profit]))<=0.75 and
RANK_PERCENTILE(SUM([Profit]))>=0.25
此计算将让 Q1 和 Q3 之间的所有数据点返回 True 值。在我们的示例中,我们必须确保计算按州进行。因此我们可以将它放置在颜色架上来确保计算是按照我们希望的方式进行的。
第 2 步计算盒子的限制 – 下限与上限
我们已经在步骤 1 中突出显示了 Q1 和 Q3 之间的所有数据点。现在我们需要计算 Q1 的下限和 Q3 的上限,这样我们就可以计算出 IQR,这就是百分位 25 和百分 75 之间的差值。通常我们可以使用 LOD 来计算这些数字,但是由于我们不能在 LOD 中使用表计算,所以我们需要寻找另一个解决方案。为此,我们将在 WINDOW_MAX 中使用 IF 语句,而我们只能获得百分位 25 和百分位 75 之间的数据最大值 – 也就是上限。
Q1 和 Q3 之间的最大值
WINDOW_MAX(IF [Between P25 and P75] THEN SUM([Profit] ELSE NULL END)
我们将用同样的方法来计算最小值以获得 Q1 和 Q3 之间的下限。
Q1 和 Q3 之间的最小值
WINDOW_MIN(IF [Between P25 and P75] THEN SUM([Profit] ELSE NULL END)
就像我们在步骤 1 中进行计算一样,在我们的例子中,我们必须确保两个计算都是按州进行。我们还可以将两个计算放到到详细信息中,并将它们添加为参考线,以检查数字是否正确,如下图所示。
这看起来非常像步骤 1 之后的图像,但是如果您仔细看图,您可以发现使用刚刚建立的计算所制作的两条参考线,与上下限相互重合了。这表明我们离成功越来越近了!
第 3 步计算 IQR
我们之前也提到过 IQR 是 Q3 和 Q1 之间的差值,也是百分位 25 和百分位 75 之间的数据上下限之间的差值。换句话说,也就是我们在步骤 2 中所构建的两个计算之间的差异。可能是这篇文章中最简单的一步:
IQR:
[Max between Q1 and Q3] – [Min between Q1 and Q3]
第 4 步计算上下须
第 3 步很简单,而第 4 步也不困难。在上文中,我们已将须扩大到了 IQR 1.5 倍以内的数据。因此,我们只需要使用步骤 2 中构建的 Q1 和 Q3 之间的数据上下限以及步骤 3 中计算的 IQR 来计算上下须之间的数据范围,如下所示:
下须:
[Min between Q1 and Q3] – (1.5 * [IQR])
上须:
[Max between Q1 and Q3] + (1.5 * [IQR])
请小心并特别注意差值。对于较低的须而言,我们必须减去 1.5 倍的 IQR,并为上须增加 1.5 倍的 IQR。与上文一样,在我们的例子中,我们必须确保使用州来进行此计算。
第 5 步标记异常值
我们离成功很近了。现在我们有了来识别异常值的所有值。基本上来说,异常值将是低于我们下须极限或高于我们上须极限的所有数据点。我们可以用与步骤 1 非常相似的方式来创建一个计算,让这些异常值返回 TRUE 值。
异常值:
SUM([Profit]) < [Lower Whisker Limit] OR SUM([Profit]) > [Upper Whisker Limit]
同样的,请确保使用州(如果您按我们的例子)或代表您标记(圆圈)的维度进行计算。我们可以将这最后的计算放到颜色架中来突出显示异常值。
让异常值变大或变小。
甚至用改变形状的方式来突出异常值。
第 6 步筛除异常值
按照这篇文章的主要目的,我们现在可以做的是筛除异常值。但请记住,盒子和须将会使用新的数据重新计算。例如,如果现在我们将子类别添加到行,我们将获得这样的视图,使用颜色突出显示异常值,证如我们在步骤 5 中提到的那样。
但是我不想将我的异常值放在颜色中,我希望删除盒子和须线,并将异常值计算放到筛选器中,并排除 TRUE 值。然后我可能会添加一个参考线来显示按子类别划分的每个州的平均利润,但不考虑每个子类别的异常值。
完成了!现在我们可以在没有异常值的情况下查看并分析数据,我们也可以看到每个州的利润现在已经比以前更好地分布在子类别中。
全部0条评论
快来发表一下你的评论吧 !