我已经读过,当样本的分布偏离正态分布时,t检验是“合理可靠的”。当然,重要的是差异的抽样分布。我有两组数据。这些组之一在因变量上有很大的偏差。两组的样本量都非常小(一组中n = 33,另一组中n = 45)。我是否应该假设在这些条件下,我的t检验对于违反正态性假设会很可靠?
我已经读过,当样本的分布偏离正态分布时,t检验是“合理可靠的”。当然,重要的是差异的抽样分布。我有两组数据。这些组之一在因变量上有很大的偏差。两组的样本量都非常小(一组中n = 33,另一组中n = 45)。我是否应该假设在这些条件下,我的t检验对于违反正态性假设会很可靠?
Answers:
关于健壮性的问题很难很好地回答-因为可能会以多种方式违反这种假设,并且在每种程度上都会违反这种假设。仿真工作只能对可能违规的很小一部分进行采样。
由于计算的状态,我认为这是值得经常运行时间两个参数化和非参数检验,如果两者都可用。然后,您可以比较结果。
如果您真的有野心,甚至可以进行置换测试。
如果艾伦·图灵(Alan Turing)在罗纳德·费舍尔(Ronald Fisher)做之前做了他的工作,该怎么办?:-)。
@PeterFlom用他的第一句话打了钉子。
我将尝试简要概述我所学的内容(如果需要链接,可能需要一段时间):
总体而言,两个样本t检验对于对称非正态性具有合理的幂稳健性(真实的I型错误率在某种程度上受峰度的影响,幂主要受此影响)。
当两个样本在相同方向上轻微倾斜时,单尾t检验将不再是无偏的。t统计量与分布方向相反,并且在一个方向上进行测试比在另一个方向上进行测试具有更多的功效。如果它们朝相反的方向倾斜,则I型错误率会受到严重影响。
严重的偏斜可能会产生更大的影响,但总的来说,如果您不介意在本质上将测试的更多能力分配给另一个方向,则采用双尾测试的中等偏斜并不算太坏。
简而言之,如果您可以忍受对显着性水平的某些影响和一些轻微的偏见,则两尾两样本t检验对于此类情况具有相当强的鲁棒性。
但是,有很多很多方法可以使分发不正常,但这些注释并未涵盖这些方法。
@PeterFlom已经提到模拟研究永远无法涵盖所有情况和可能性,因此无法得出明确的答案。但是,我仍然发现通过进行一些模拟来探讨这样的问题仍然很有用(这恰好是我在向学生介绍蒙特卡洛模拟研究的想法时喜欢使用的一种练习类型)。因此,让我们实际尝试一下。我将为此使用R。
代码
n1 <- 33
n2 <- 45
mu1 <- 0
mu2 <- 0
sd1 <- 1
sd2 <- 1
iters <- 100000
p1 <- p2 <- p3 <- p4 <- p5 <- rep(NA, iters)
for (i in 1:iters) {
### normal distributions
x1 <- rnorm(n1, mu1, sd1)
x2 <- rnorm(n2, mu2, sd2)
p1[i] <- t.test(x1, x2)$p.value
### both variables skewed to the right
x1 <- (rchisq(n1, df=1) - 1)/sqrt(2) * sd1 + mu1
x2 <- (rchisq(n2, df=1) - 1)/sqrt(2) * sd2 + mu2
p2[i] <- t.test(x1, x2)$p.value
### both variables skewed to the left
x1 <- -1 * (rchisq(n1, df=1) - 1)/sqrt(2) * sd1 + mu1
x2 <- -1 * (rchisq(n2, df=1) - 1)/sqrt(2) * sd2 + mu2
p3[i] <- t.test(x1, x2)$p.value
### first skewed to the left, second skewed to the right
x1 <- -1 * (rchisq(n1, df=1) - 1)/sqrt(2) * sd1 + mu1
x2 <- (rchisq(n2, df=1) - 1)/sqrt(2) * sd2 + mu2
p4[i] <- t.test(x1, x2)$p.value
### first skewed to the right, second skewed to the left
x1 <- (rchisq(n1, df=1) - 1)/sqrt(2) * sd1 + mu1
x2 <- -1 * (rchisq(n2, df=1) - 1)/sqrt(2) * sd2 + mu2
p5[i] <- t.test(x1, x2)$p.value
}
print(round((apply(cbind(p1, p2, p3, p4, p5), 2, function(p) mean(p <= .05))), 3))
说明
首先,我们设置组大小(n1
和n2
),真正的组均值(mu1
和mu2
),以及真正的标准差(sd1
和sd2
)。
然后,我们定义要运行的迭代次数,并设置向量以存储p值。
然后,我在5种情况下模拟数据:
请注意,我正在使用卡方分布来生成偏斜分布。具有一个自由度,这些分布严重偏斜。由于具有一个自由度的卡方分布的真实均值和方差分别等于1和2(请参阅Wikipedia),因此我将这些分布重新缩放为首先具有均值0和标准偏差1,然后对其进行重新缩放以使其具有所需的真实均值和标准差(可以一步完成,但是这样做更清晰)。
在每种情况下,我都应用t检验(韦尔奇(Welch)的版本-当然也可以考虑假设两组均具有相同方差的Student的版本),并将p值保存到较早设置的向量中。
最后,一旦所有迭代都完成,我将为每个向量计算p值等于或小于.05的频率(即,测试“显着”)。这是经验拒绝率。
一些结果
完全如上所述进行模拟将产生:
p1 p2 p3 p4 p5
0.049 0.048 0.047 0.070 0.070
如果将代码更改为mu1 <- .5
,则得到:
p1 p2 p3 p4 p5
0.574 0.610 0.606 0.592 0.602
所以,相比于其中两个分布是正常的(如假定由测试)的情况下,功率实际上似乎是略微更高时偏斜度是在相同的方向!如果对此感到惊讶,则可能需要重新运行几次(当然,每次都会得到略有不同的结果),但是模式仍然存在。
请注意,在两种情况下,在偏度方向相反的情况下,我们必须谨慎解释经验功效值,因为类型I的错误率不太明显(作为极端情况,假设无论数据如何,我都会始终拒绝)显示;然后,我将始终以最大的能力进行测试,但是当然,该测试还具有相当高的I型错误率)。
可以开始探索一系列值mu1
(并且mu2
-但真正重要的是两者之间的差异),更重要的是,开始更改两组的真实标准差(即sd1
和sd2
),尤其是使其不相等。我也坚持OP提到的样本数量,但是当然也可以进行调整。与我们在具有一个自由度的卡方分布中看到的偏斜相比,偏斜当然可以采取许多其他形式。我仍然认为以这种方式处理事情是有用的,尽管它不能给出明确的答案。
在您的情况下,就I类错误率而言,t检验可能会很健壮,但在II类错误率方面却不是。通过a)Kruskal-Wallis检验,或b)在t检验之前进行归一化转换,您可能会获得更大的功效。
我将这一结论基于两项蒙特卡洛研究。在第一篇文章中(Khan&Rayner,2003年),通过g-k分布族的参数间接地控制了歪斜和峰度,并检验了产生的功效。重要的是,Kruskal-Wallis检验的功效受非正态性的损害较小,尤其是在n> = 15的情况下。
有关此研究的一些注意事项/资格:高峰度通常会损害电源,但受偏斜影响较小。乍一看,这种模式似乎与您的情况不太相关,因为您注意到了偏斜而不是峰度的问题。但是,我敢打赌,您的情况下,峰度过高也是极端的。请记住,过量峰度至少要与skew ^ 2-2高。 (2003)检验了3组的方差分析,但其结果可能会推广到两个样本的t检验。
第二项相关研究(Beasley,Erikson和Allison,2009年)检查了具有各种非正态分布的I型和II型错误,例如卡方(1)和Weibull(1,.5)。对于至少25个样本量,t检验可将I型错误率充分控制在标称alpha水平或以下。但是,在进行t检验之前,使用Kruskal-Wallis检验或基于等级的逆正态变换(Blom评分)时,功效最高。Beasley及其同事通常反对标准化方法,但应注意的是,标准化方法控制I型错误率的n> = 25,其功效有时会略大于Kruskal-Wallis检验的功效。也就是说,规范化方法对于您的情况似乎很有希望。有关详细信息,请参见其文章中的表1和表4。
参考文献:
Khan,A.,&Rayner,GD(2003)。对于多样本定位问题,普通测试的鲁棒性强。应用数学和决策科学学报,7,187-206。
Beasley,TM,Erickson,S。,&Allison,DB(2009)。基于等级的逆正态变换越来越多地被使用,但是它们值得吗?行为遗传学,39,580-595。
首先,如果您假设两个样本的分布不同,请确保您使用的是t检验的Welch版本,该版本假定各组之间的方差不相等。这至少将尝试说明由于分布而发生的某些差异。
如果我们看一下Welch t检验的公式:
我们可以看到,每当存在s时,我们就知道方差已被考虑在内。假设两个方差实际上是相同的,但是一个偏斜,导致方差估计不同。如果由于偏斜而导致的方差估计实际上不能代表您的数据,那么实际上的偏倚效果实际上就是该偏倚的平方根除以用于计算它的数据点数。因此,方差和较高的n会稍微掩盖方差估计错误的影响,这可能就是为什么共识是它仍然是可靠的检验的原因。
偏态分布的另一个问题是均值计算也会受到影响,这可能是测试假设违背的真正问题所在,因为均值对偏态相对敏感。通过计算均值的差异(与中位数的差异相比),可以大致确定测试的鲁棒性。也许您甚至可以尝试用t检验中位数的差异代替均值的差异,作为更可靠的衡量指标(我敢肯定有人对此进行了讨论,但我在Google上找不到足够快的东西可以链接到它)。
如果您所做的只是t检验,我还建议运行一个置换检验。排列检验是一种精确的检验,与分布假设无关。最重要的是,如果满足参数检验的假设,则置换检验和t检验将得出相同的结果。因此,您寻求的鲁棒性度量可以是1-排列和t检验p值之间的差,其中1的分数表示完全鲁棒,而0的分数表示完全不鲁棒。