首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用独立t检验分析非正态分布的A/B检验结果。

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

Data Science用户
提问于 2014-08-04 22:27:10
回答 2查看 4.8K关注 0票数 15

我有一组A/B测试的结果(一个对照组,一个特征组),这些结果不符合正态分布。事实上,这种分布更接近于兰道分布。

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

但我的问题是:在什么时候才能说t检验不是一种很好的显着性测试方法?

或者换句话说,如果只给出数据集,如何才能确定t检验的p值有多可靠?

EN

回答 2

Data Science用户

回答已采纳

发布于 2014-08-05 08:12:15

数据的分布不需要是正常的,几乎正常的是抽样分布。如果你的样本量足够大,那么由于中心极限定理的原因,兰道分布的抽样分布应该接近正常。

因此,这意味着您应该能够安全地使用t检验与您的数据。

示例

让我们来看看这个例子:假设我们有一个带有对数正态分布和mu=0和sd=0.5的人口(看起来有点像兰道)

因此,我们每次从这个分布中抽取30个观测值5000次,计算样本的平均值。

这就是我们得到的

看起来很正常,不是吗?如果我们增加样本的数量,那就更明显了

R码

代码语言:javascript
复制
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)))
票数 9
EN

Data Science用户

发布于 2014-08-05 10:15:33

基本上,使用独立的t检验或2样本t检验来检验两个样本的平均值是否有显著差异。或者,换句话说,如果这两个样本的平均值有显著差异。

现在,这两个样本的平均值是两个统计量,如果提供足够的样本,则符合CLT的正态分布。请注意,CLT可以工作,而不管平均统计数据是从哪个分布生成的。

通常情况下,我们可以使用z检验,但是如果方差是从样本中估计出来的(因为它是未知的),就会引入一些附加的不确定度,它包含在t分布中。这就是为什么2样本t检验适用于这里。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档