我有两个数据集var1和var2。我想比较两个发行版。
libary(ggplot2)
library(reshape)
set.seed(101)
var1 = rnorm(1000, 0.5)
var2 = rnorm(100000,0.5)
combine = melt(data.frame("var1" = var1,"var2"= var2))
ggplot(data = combine) + geom_density(aes(x = value, color = variable), alpha = 0.2)
这导致分布的密度图看起来非常相似(除了中间部分的几个蠕动),但是,我想显示分布的尾部不相同。变量2的扩散比一个大。除了传播/分位数之外,哪些统计数据可以进行比较以显示差异?
是否有人知道任何技术,统计测试或可视化技术,尤其是为了显示分布尾部的差异(更高的尾部,更高的极端)。
答案 0 :(得分:2)
您可以通过绘制每个样本的分位数来显示尾部实际上是不同的(参见下面的示例)。
在测试样本是否来自正态分布方面,您可以使用Anderson-Darling测试来测试偏离正常性:
library(goftest)
ad.test(var1, "pnorm", mean=0.5)
ad.test(var2, "pnorm", mean=0.5)
您还可以使用Anscombe测试来测试峰度的差异(分布达到峰值),以确定尾部是否在统计上有显着差异:
library(moments)
anscombe.test(var1)
anscombe.test(var2)
这些测试都没有提出统计学上的显着偏离,这是有道理的,因为两个样本都相对较大,实际上它们来自同一分布。
您可能会发现这些链接对于测试分发尾部的差异非常有用:here和here。
在可视化分布方面,绘制分位数可能会更容易辨别出尾部的差异:
library(ggpubr)
prob = seq(0,1,0.0001)
dat = combine %>% group_by(variable) %>%
summarise(value = list(quantile(value, probs=prob)),
Percentile = list(prob*100))
p = dat %>% unnest %>%
ggplot(aes(Percentile, value, colour=variable)) +
geom_line() +
theme_bw()
ggarrange(p + scale_x_continuous(limits=c(0,10), breaks=0:100),
p + scale_x_continuous(limits=c(90,100), breaks=0:100),
ncol=2, common.legend=TRUE)
经验累积密度分布是另一种选择:
ggplot(combine, aes(value, colour=variable)) +
stat_ecdf() +
theme_bw()