如何规范雷达图的统计数据

时间:2011-02-03 08:34:01

标签: statistics charts raphael scale data-visualization

我正在使用raphaelJS绘制“雷达图表”来显示统计数据。对于每个轴,它应该接受0到10之间的值。

例如,多边形的值,其中心点位于图表的中心[10,10,10,10,10]。简单...

但是,可能会发生数据如下所示:

[26, 14, 48, 18, 1],
[ 3, 14,  8,  9, 5],
[10,  6,  4, 16, 3]

导致这一点(显示多边形的中心点位于图表左下方):

radar off scale

如果我基于其最大值(在这种情况下为48)对数据进行标准化,则所有其他中心点将太靠近图表的中心,并且其信息值将大约为0.


相同的数据根据​​其最大值进行标准化:

[5.42, 2.92, 10,   3.75, 0.21],
[0.63, 2.92, 1.67, 1.88, 1.04],
[2.08, 1.25, 0.83, 3.34, 0.63]

radar normalized

所以现在所有其他中心点都聚集在图表的中心,并且已经失去了所有的解释力......如果有超过3个中心点,它们很可能会相互重叠。

centered

我正在考虑一种显示每个多边形的相对方式,而不会在每个多边形之间失去太多关系,如果可能的话......

任何想法如何做到这一点,或者可能是另一种方法如何规范化?

2 个答案:

答案 0 :(得分:11)

正如@daroczig所建议的那样,数据的对数转换是可行的方法。我只是想补充一点,你可以执行许多类型的转换。

也许一个例子可能对此有所帮助。我将使用Parallel Coordinates可视化来说明示例,但相同的概念应适用于Radar Chart。所有实验均在MATLAB中进行。

考虑Fisher Iris dataset,它包含150个实例,其中每个点有4个维度。如果我们在正常值范围之外添加异常点,我们得到:

org-vs-outlier

正如预期的那样,情节会缩放以适应新点,但结果我们失去了之前的详细视图。

答案是通过应用某种转换来规范化数据。以下显示了四种不同转换的比较:

  • 最小/最大标准化

    x_new = (x-min)/(max-min),以便x_new in [0,1]

  • <强> Z-标准化

    x_new = (x-mean)/std,其中x_new ~ N(0,1)

  • 使用logistic sigmoid进行softmax规范化

    x_new = 1/(1+exp(-(x-mean)/std))x_new in [0,1]

  • 能量正常化

    x_new = x / ||x||,使x_new in [0,1](使每个点成为单位矢量)

minmax-standarize-softmax-energy

答案 1 :(得分:2)

将数据转换为logaritmic scale不是一种选择吗?

这样一些极端值不会扭曲/挤压其他值。只需计算数组值的公共/自然对数(例如,请参阅w3school page on it),然后将其提供给图表API。