使用独立的t检验分析非正态分布的A / B检验结果


14

我有一组来自A / B测试的结果(一个对照组,一个功能组),这些结果不符合正态分布。实际上,该分布与Landau分布更相似。

我认为独立的t检验要求样本至少近似正态分布,这使我不愿意将t检验用作有效的显着性检验方法。

但是我的问题是: 在什么时候可以说t检验不是一种重要的重要检验方法?

或换一种说法,仅给出数据集,如何确定t检验的p值的可靠性?

Answers:


8

数据的分布不必是正态的,而是采样分布必须接近正态。如果样本量足够大,则由于中心极限定理,来自Landau分布的均值的采样分布应接近正态。

因此,这意味着您应该能够安全地对数据进行t检验。

让我们考虑这个示例:假设我们有一个人口,对数分布为mu = 0,sd = 0.5(看上去与Landau有点相似)

对数正态密度

因此,我们每次计算样本均值时,从此分布中采样30次观察5000次

这就是我们得到的

抽样分布

看起来很正常,不是吗?如果我们增加样本量,则更加明显

抽样分布

R代码

x = seq(0, 4, 0.05)
y = dlnorm(x, mean=0, sd=0.5)
plot(x, y, type='l', bty='n')


n = 30
m = 1000

set.seed(0)
samp = rep(NA, m)

for (i in 1:m) {
  samp[i] = mean(rlnorm(n, mean=0, sd=0.5))
}

hist(samp, col='orange', probability=T, breaks=25, main='sample size = 30')
x = seq(0.5, 1.5, 0.01)
lines(x, dnorm(x, mean=mean(samp), sd=sd(samp)))


n = 300
samp = rep(NA, m)

for (i in 1:m) {
  samp[i] = mean(rlnorm(n, mean=0, sd=0.5))
}

hist(samp, col='orange', probability=T, breaks=25, main='sample size = 300')
x = seq(1, 1.25, 0.005)
lines(x, dnorm(x, mean=mean(samp), sd=sd(samp)))

嗨阿列克谢!看来您精通R,所以我想知道,如果您对我目前遇到的问题有任何建议,请访问:stackoverflow.com/questions/25101444/…。除此之外,我很高兴与您建立联系(有关专业社交网络的个人资料,请访问aleksandrblekh.com),因为我们似乎有一些共同的兴趣(包括母语:-)。
Aleksandr Blekh 2014年

这是一个很好的解释,实际上是我最终使用的方法。我想将这种方法视为将整个样本集分成较小的子样本,并使用每个子样本的均值(CLT的平均值)作为数据集的分布。感谢您的回答!
teebszet 2014年

1

基本上,使用独立的t检验或2个样本的t检验来检查两个样本的平均值是否显着不同。或者,换句话说,如果两个样本的均值之间存在显着差异。

现在,这两个样本的均值是两个统计量,根据CLT,如果提供了足够的样本,则它们具有正态分布。请注意,无论建立平均统计的分布如何,CLT都可以工作。

通常,可以使用z检验,但是如果从样本估计方差(因为未知),则会引入一些其他不确定性,并将其纳入t分布。这就是为什么在这里应用2样本t检验。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.