比较样本量不等的两个分布的视觉表示的方法

机器算法验证 分布 数据可视化 直方图
2022-03-24 15:02:51

我有两个连续的、非配对的测量分布。我想用一对直方图来可视化这两个分布,计算落在 bin 区间内的测量值。

有没有办法重新调整或处理两组中较小的一组,这样当我制作他们的数据的两个直方图(或其他可视化、小提琴、盒子等)时,可视化不会导致查看者偏爱包含相对于另一组,一组测量值的代表性不足或过多。

2个回答

如果您确实需要比较不同样本大小的直方图,请将它们都缩放到区域 1(即作为密度估计值)。

绘图显示两个可比较的直方图 - 缩放为密度 - 即使 n 相差 4 倍

但是,正如尼克在评论中建议的那样,还有其他方法可以比较不需要分箱的分布。

例如,您可以在同一轴上绘制 ecdfs 或一对理论 QQ 图(理论分布不需要完美,尽管合理的近似值将有助于进行详细比较),或者可能是内核密度估计。

因为您询问了直方图,所以我假设您有兴趣比较两个分布的形状以了解它们的相似程度。这与试图可视化分布的其他方面不同,例如它们的均值是否不同。

一般来说,直方图是一种用于评估分布形状的钝器(请参阅这个出色的答案:Assessing proper distribution of data based on a histogram)。尽管在尝试比较两种分布时您会遇到相同的问题,但它们不一定会相互抵消。因此,直方图并不是这个任务的好选择。

你最好的选择是使用qq-plot如今,qq 图被认为是一种将观察到的分布与理论分布进行比较的方法。但是,它们最初是为了比较分布而开发的。和你在这里的情况一样。插值方法通常用于匹配不同大小的数据集,因此这在很大程度上不是问题。如果分布的形状相同,则这些点将落在一条直线上。

为了探索这个建议,让我们检查一些数据。在这里,我模拟了指数分布和卡方分布的数据。两者都强烈右偏,但它们的形状不同。我将使用以下代码编写示例R

set.seed(7264)  # this makes the example exactly reproducible
x1 = rexp(20, rate=1)
x2 = rchisq(100, df=2)

windows()
  qqplot(x1, x2)
  abline(0,1, col="gray")

在此处输入图像描述

最基本的发现是这些点不落在一条直线上。这意味着形状不同。一个后续问题是评估分布有何不同。在某种程度上,这可以通过检查情节的各个方面来确定。我在原点添加了一条 45线。需要明确的是,要点不必落在线——它们可以落在任何一条直线上,但这条特定的参考线可以帮助我们理解它们的不同之处:因为这些点从 (0, 0) 开始,但大部分都在直线上方,我们可以看出 X2 的方差为大于 X1。我们可以看到最后一点大约是 (2.7, 10),因此最大 X2 值要远得多。因为中间值在直线上方,我们可以看出 X2 的中值大于 X1 的中值。此外,上凹曲线意味着 X2 比 X1 更偏斜。

尽管如此,人们通常很难从 qq 图中确定形状或相对形状。我通常建议人们将它们与内核密度图配对您可以评估形状是否与 qq-plot 相似,然后从密度图中找出形状似乎是什么。

windows()
  plot(density(x2),  col="navyblue", ylim=c(0, max(density(x1)$y)), 
       xlim=c(0, max(density(x2)$x)), lwd=2, xlab="value", main="")
  lines(density(x1), col="green4", lwd=2)

  xs = seq(0,10,.1)
  lines(x=xs, y=dexp(xs, rate=1), lty=2, lwd=2, col="chartreuse")
  lines(x=xs, y=dchisq(xs, df=2), lty=2, lwd=2, col="cyan")
  legend("topright", legend=c("exp kernel density", 
                              "chi-squared kernel density", 
                              "exp theoretical density", 
                              "chi-squared theoretical density"),
         lty=c(1,1,2,2), lwd=2, col=c("navyblue","green4","chartreuse","cyan"))

![在此处输入图像描述

我认为这些形状在这里更容易看到。(如果您想查看它们的外观,我还包含了真正 PDF 的代码。)