小提琴图是基于原始数据计算的结果
本文不会深入讨论小提琴图创建背后的数学原理,但要记住的最重要的一点是,小提琴图是根据输入的原始数据创建的,用于显示估计的数据密度分布。正因如此,在非线性轴(即对数轴或概率轴)上显示的小提琴图可能会令人困惑,并可能误导许多查看图表的人。本文的其余部分将讨论在对数轴上绘制小提琴图的具体细节。
小提琴图和对数轴的两个主要问题
当考虑在对数Y轴上绘制的小提琴图时,有两个必须考虑的重要问题。这两个问题中的每一个都会导致小提琴图(使用对数轴时)具有其独特的视觉特性,如果处理不当,每个问题都可能导致严重的混淆。以下是对这两个问题的简要总结:
问题1
即使用于生成小提琴图的数据仅包含正数,小提琴图本身可能会延伸到零以下的负值区域。这是有问题的,因为对数不能为负(或零)。
线性Y轴
对数Y轴
问题2
小提琴图的宽度是通过以线性方式检查值之间的距离来确定的。这是有问题的,因为对数轴上的值之间的距离不是均匀的。
线性Y轴
对数Y轴
主要要点
在对数轴上使用小提琴图比一开始看起来要复杂,结果可能会有潜在的误导性。因此,强烈建议在不了解结果所显示的内容的情况下不要使用这种设置组合。本文的其余部分通过视觉示例对上述列出的两个问题进行了全面解释。
我没有时间阅读整页内容……我该怎么办?
最重要的是,小提琴图是根据原始输入数据创建的。一般来说,小提琴的宽度与给定Y值处数据的估计分布直接相关。将Y轴从线性更改为对数只是拉伸/挤压了Y值的显示方式。可以说Prism从8.4.3版本开始显示小提琴图的方式是描绘原始数据可视化的“最正确”方式。但是,如果您已经创建了数据的小提琴图,为Y轴选择了对数轴,并且小提琴图看起来没有“跟随数据”,请尝试以下操作:
- 使用Y=log(Y)转换原始数据
- 创建转换后数据的小提琴图
- 在格式轴对话框中,将Y轴的刻度保持为线性
- 在同一对话框的“等间距刻度”部分,在格式下拉菜单中选择“反对数(Antilog)”选项
[size=14.6667px]
得到的图形将是经过对数转换的数据的小提琴图,但绘制在线性轴上。
线性Y轴(原始数据)
线性Y轴(转换后的数据,反对数刻度)
问题1:对数不能为负,但我的小提琴图是负的
小提琴图主要有两种类型:“截断型(truncated)”或“扩展型(extended)”。对于“截断型”小提琴图,小提琴的曲线仅延伸到数据集中的最小值和最大值。在这些值处,曲线被修剪,形成一条水平线连接小提琴的两侧。对于“扩展型”小提琴图,由于创建小提琴图本身所使用的算法,小提琴的曲线会超出数据的最小值和最大值。*根据不同人的说法,“常规”的小提琴图可能指的是其中任何一种,而Prism提供了选择这两种方式的功能。
如您从该图中所见,截断的小提琴图在数据的最小值处结束。更重要的是,此最小数据值大于零。相比之下,扩展的小提琴图长处了数据的最小值和最大值,在此例中,小提琴的底部实际上延伸到了负值。如果我们将Y轴的刻度更改为对数刻度,我们会得到如下的图形外观(在此例中,使用了log10,但所有对数刻度都会有类似的外观,因为对数不能为零或负)。
请注意每个版本的小提琴图发生了什么。对于截断的小提琴图,可以观察到其最小值大于0(用于创建这些小提琴图的数据集中的最小值为2)。然而,扩展的小提琴图似乎插槽出了X轴(在上图中,X轴与Y轴在Y=1处相交)。这不能通过将X轴和Y轴的交点设置为更小的Y值来解决。在这种情况下,小提琴图将始终延伸到X轴下方,因为X轴必须与正的Y值处的Y轴相交(再次强调,对数不能为负)。以下是具有从100到0.001的对数Y轴的相同数据:
关于这个问题需要记住什么?
首先,您应该记住小提琴图是根据原始输入数据创建的。即使轴是以对数轴显示,数据也并未以任何方式进行转换。因此,所显示的小提琴图只是相应地被拉伸/挤压了。当小提琴图延伸到负值并绘制在对数轴上时,从本质上讲,它是被无限拉伸了(您永远无法看到两侧重新会合的点)。所以,小提琴图只是延伸到X轴,而与您为Y轴范围设置的内容无关。
问题2:我的小提琴图的形状和散点图(数据点)的形状不一样
看一下下面图表中的小提琴图。再次说明,该图显示了截断的和扩展的小提琴图。此外,这次每个值都显示为单个数据点。首先要注意的是,此小提琴图是绘制在线性轴上的。与前面的例子一样,这些值中没有一个实际上是负的(此数据集的最小值为1)。在此刻度上,可以清楚地看到在范围的低端(接近零的值)附近有很多数据点。因此,小提琴图的最宽点大致出现在这个范围内。可能稍微难以看出此小提琴图的最大宽度出现在Y值约为800处。
如上所述,扩展的小提琴图延伸到了负值区域,所以我们预计,当使用对数Y轴时,该小提琴图将一直延伸到X轴,而截断的小提琴图仅在数据集的最小值处(同样,在Y=1处)被修剪。
然而,可能令人惊讶或困惑的是,小提琴图的形状和散点图的形状似乎不再匹配。这里发生了什么呢?
解释分为两部分。第一部分的解释是,小提琴图是根据原始输入数据创建的。将Y轴更改为对数刻度不会改变原始数据,因此不应改变生成的小提琴图的宽度。请记住,之前在线性轴上小提琴图的最大宽度似乎在Y值约为800处。在对数轴上,可以看到这个最大宽度仍在Y值约为800处。这很好!这意味着我们的小提琴图仍在显示相同的信息。
“好的,但是为什么散点图看起来与小提琴图不同呢?”这可能是您问自己的问题。答案是,数据点——无论是在线性刻度轴还是对数刻度轴上——都必须仍放置在其给定的Y值处。在对数刻度上,与线性刻度上的相同范围相比,较大的值范围会被“挤压”。这意味着对于此分布的高端值,在对数刻度上绘制它们的垂直空间会更少。因此(为了在不重叠的情况下显示尽可能多的数据点),这些点会向左和向右偏移。结果是,小提琴图仍在显示任何给定Y值的原始输入数据的估计分布,但数据点本身呈现出数据的对数变换的外观。
我知道这很令人困惑。但重要的是要记住,更改轴的刻度不会改变或转换实际数据!在处理剂量——反应曲线和作为原始浓度值或对数转换浓度值输入的X值时,经常会出现这个问题。更改轴的刻度实际上并不会转换这些值,因此在选择曲线拟合的适当模型时必须小心。
“更改轴的刻度不会改变或转换实际数据”
最终,Prism的默认设置似乎是在线性或对数刻度上生成小提琴图的“最正确”方法。如所示,当小提琴图绘制在对数刻度上时,它可能与数据点的散点图不“匹配”。如果您仍然对整个“对数轴上的小提琴图”问题不确定,可以尝试选择不同的图形样式(例如只显示所有数据点)。然而,您很可能想要一个估计此对数转换分布而不是原始输入数据的小提琴图。本文上部分提供了如何做到这一点的步骤。只需在绘制之前对数据进行对数转换,然后根据这些转换后的数据创建小提琴图。
小提琴图是使用了一种称为核密度估计(KDE)的概念生成的。本常见问题解答不会深入探讨此技术的具体细节,但如果您想要了解更多,维基百科有一个“math-heavy”页面对此进行了解释。关于KDE的一个重要点是,“宽度”的概念与生成的小提琴图的平滑程度或锯齿程度密切相关。较宽的带宽往往会生成更平滑的小提琴图,而较窄的宽带会在小提琴图的边缘产生更多变化。然而,也许更重要的是,在创建小提琴图时,通常对构成小提琴图的所有点保持带宽恒定。这导致了本文的第二个问题,因为数值上均匀分布的值在对数轴上不是空间均匀分布的。换句话说,对数刻度的低端的“带宽高度”较大,而高端的较小。