我应该对高度偏斜和离散的数据使用 t 检验吗?

机器算法验证 假设检验 t检验 非参数 意思是
2022-03-24 21:41:43

我从一个高度倾斜的关于用户参与的数据集中获取样本(例如:帖子数量),这些样本具有不同的大小(但不少于 200),我想比较它们的平均值。为此,我使用了两个样本的非配对 t 检验(当样本具有不同的方差时,使用韦尔奇因子进行 t 检验)。正如我所听说的,对于非常大的样本,样本不是正态分布并不重要。

我的指标是离散的,它们是每个用户参与的数量。当然,我们有一些用户比其他用户参与得更多,但我不认为他们是异常值。以下是数据说明:https ://docs.google.com/spreadsheets/d/1WhSKgYIuP35eRsukHVoUFUlITNwO_RRcYoOoR9EmXHg/edit?usp=sharing

我的问题:有人在回顾我所做的事情时说我使用的测试不适合我的数据。他们建议在使用 t 检验之前对我的样本进行对数转换。

我知道我不能对这些进行对数转换,因为它们在样本上都具有零值。我的猜测是,如果我不能使用 t 检验,我应该使用 Mann Whitney U 检验。

他们错了吗?我错了吗?如果他们错了,是否有我可以引用/展示给他们的书或科学论文?如果我错了,我应该使用哪个测试?

4个回答

高度离散和偏斜变量可能会在其 t 统计量中表现出一些特殊问题:

例如,考虑这样的事情:

在此处输入图像描述

(它在右边有更多的尾巴,已经被切断了,到 90 岁左右)

大小为 50 的样本的双样本 t 统计量分布如下所示:

在此处输入图像描述

特别是,在 0 处有一些短尾和明显的尖峰。

诸如此类的问题表明,可能需要从看起来像您的样本的分布进行模拟来判断样本量是否“足够大”

你的数据似乎比我上面的例子有更多的尾巴,但你的样本量要大得多(我希望有一个频率表之类的东西)。可能没问题,但是您可以模拟样本分布附近的一些模型(或者您可以重新采样您的数据),以了解这些样本量是否足以将您的测试统计量的分布视为近似t


模拟研究 A - t.test 显着性水平(基于提供的频率表)

在这里,我重新采样了您的频率表,以了解您对 t 检验推断的分布的影响。我做了两次模拟,都使用了您的 UsersX 和 UsersY 组的样本大小,但在第一个实例中从两者的 X 数据中采样,在第二个实例中从两者的 Y 数据中采样(以获得 H0 真实情况)

结果非常相似(考虑到形状相似,这并不奇怪):

在此处输入图像描述

p 值的分布应该看起来像均匀分布。原因可能与我们看到我之前绘制的 t 统计量的直方图中出现峰值的原因相同——虽然总体形状还可以,但很可能均值差恰好为零。这个峰值夸大了 1 类错误率——将 5% 的显着性水平提升到大约 7.5% 或 8%:

> sum(tpres1<.05)/length(tpres1)
[1] 0.0769

> sum(tpres2<.05)/length(tpres2)
[1] 0.0801

这不一定是问题——如果你知道的话。例如,您可以(a)“按原样”进行测试,记住您将获得更高的 I 类错误率;或 (b) 将标称的 I 类错误率降低一半左右(甚至更多,因为它对较小的显着性水平的影响相对较大)。

我的建议——如果你想进行 t 检验——将改为使用 t 统计量,而是进行基于重采样的测试(进行排列/随机化测试,或者,如果你愿意,可以进行引导测试)。

--

模拟研究 B - Mann-Whitney 检验显着性水平(基于提供的频率表)

令我惊讶的是,相比之下,Mann-Whitney 在这个样本量下相当稳健。这与我看到的几组已发布的建议相矛盾(诚然,它们是在较小的样本量下进行的)。

> sum(mwpres1<.05)/length(mwpres1)
[1] 0.0509

> sum(mwpres2<.05)/length(mwpres2)
[1] 0.0482

(这种情况的直方图看起来是一致的,所以这在其他典型的显着性水平上应该类似)

4.8% 和 5.1% 的显着性水平(标准误差为 0.22%)非常适合此类分布。

在此基础上,我会说——至少在显着性水平上——曼·惠特尼的表现相当不错。我们必须进行功率研究才能看到对功率的影响,但我认为与 t 检验相比,它的效果不会太差(如果我们调整一些东西,使它们处于大致相同的实际显着性水平)。

所以我不得不吃掉我之前的话——在这个样本量下,我对 Mann-Whitney 的谨慎似乎是不必要的。


我在频率表中阅读的 R 代码

#metric1 sample1
UsersX=data.frame(
     count=c(182L, 119L, 41L, 11L, 7L, 5L, 5L, 3L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L),
     value=c(0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 12L, 17L, 18L, 20L, 29L, 35L, 42L)
             )

#metric 1 sample2
UsersY=data.frame(
    count=c(5098L, 2231L, 629L, 288L, 147L, 104L, 50L, 39L, 28L, 22L, 12L, 14L, 8L, 8L, 
     9L, 5L, 2L, 5L, 5L, 4L, 1L, 3L, 2L, 1L, 1L, 4L, 1L, 4L, 1L, 1L, 1L, 1L, 1L, 1L),
    value=c(0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 
     17L, 18L, 19L, 20L, 21L, 22L, 25L, 26L, 27L, 28L, 31L, 33L, 37L, 40L, 44L, 50L, 76L)

我的 R 代码进行模拟

resample=function(tbl,n=sum(tbl$count))                                           #$
                  sample(tbl$value,size=n,replace=TRUE,prob=tbl$count)            #$

n1=sum(UsersX$count)                                                              #$
n2=sum(UsersY$count)                                                              #$
tpres1=replicate(10000,t.test(resample(UsersX),resample(UsersX,n2))$p.value)      #$
tpres2=replicate(10000,t.test(resample(UsersY,n1),resample(UsersY))$p.value)      #$

mwpres1=replicate(10000,wilcox.test(resample(UsersX),resample(UsersX,n2))$p.value)#$
mwpres2=replicate(10000,wilcox.test(resample(UsersY,n1),resample(UsersY))$p.value)#$

# "#$" at end of each line avoids minor issue with rendering R code containing "$"

您不应该对非常偏斜的数据使用 t 检验甚至 Welch 修改的 t 检验,因为这些检验往往是保守的(例如,可以降低这些检验的 alpha 和功效;Zimmerman 和 Zumbo,1993)。

那么你应该使用哪个测试呢?您的响应变量是具有许多 0 的离散计数数据,并且您想要比较两个独立组的平均值。我建议使用零膨胀负二项式回归。这个页面有一个关于使用 R 技术的很棒的教程。

参考:

DW Zimmerman & BD (1993)。秩变换和学生 t 检验和 Welch t' 检验对具有不等方差的非正态人群的功效,加拿大实验心理学杂志,1993,47:3,523-539

T还是不是个问题吗?TT

我建议退后一点,问自己:“问题是什么问题是“人口 1 和 2 的均值是否相同?”还是问题“人口 1 和 2 的使用分布是否相同?”还是问题“人口 1 的中位数是否相同?”和 2 一样吗?”,或者问题还有别的吗?

自由度时,使用样本方差与总体方差之间的差异是一个小问题。数据来源问题更为重要。这些问题是这些数据是如何产生的?是否涉及任何类型的随机抽样机制?同样重要的是与分析相关的问题,例如上面提出的问题。ν>350

如果您回答了这些问题,您对检验统计量的选择就会更加清晰。当然,这个答案先于你的问题。

现在,假设问题确实关于均值的,我们必须询问是否是检验统计量分布的合理近似值。您正在处理的严重偏差的分布使我对此表示怀疑。我建议使用 Edgeworth 扩展并将该答案与标准 Normal 给出的答案进行比较。请注意,Edgeworth 扩展本身并非没有问题,但如果这两种方法给出完全不同的答案,我会倾向于相信 Edgeworth 扩展答案而不是答案。N(0,1)N(0,1)

虽然它有其自身的局限性,但倾向评分可能是确保样本平等的一种方式(Connelly 等人,2013 年)。