配对 t 检验和两样本 t 检验

机器算法验证 t检验
2022-04-09 02:05:01

关于配对 t 检验和双样本 t 检验的使用,我有一个简单的问题:

  1. 对相关配对样本使用独立的两样本 t 检验的结果是什么?
  2. 对独立样本使用配对 t 检验的结果是什么?

谢谢!

2个回答

这会很糟糕——非常糟糕。如果您忽略配对并在您应该使用配对的地方使用双样本 t 检验,您可能无法检测到感兴趣的效果。在这种情况下,受试者之间的变异包含在用于衡量感兴趣效果的方差估计中。方差被夸大了,只有相当大的影响大小才会被认为是显着的。示例:给学生一个数学测试,然后是一个教学模块,然后是另一个测试。如果您忽略配对(每个学生之前和之后),则能力差异会添加到模块的效果中,从而使效果更难检测。

另一方面,如果您将配对强加到未配对的样本上,则会降低测试的自由度。您正在向模型中添加基本上是随机的变量(配对效应)。从某种意义上说,对于每一对,您都在为该对添加一个参数——但这些参数没有任何意义。从某种意义上说,你会增加噪音。

我想我会在这里发布 R 代码来说明我在上面对 Placidia 答案的评论中提出的观点(我喜欢,但我想更详细地讨论这一点。)这就是工作评论。

以下代码对来自两个独立样本的观察值进行随机配对。如果我们重复这种随机对的施加 1000 次,每次运行配对 t 检验,您会发现观察到的 p 值存在相当大的波动。当然,这是由估计的标准误差和 t 统计量的波动引起的,但我只是在这里说明 p 值。但请注意,这个问题对置信区间的构建也有影响,而不仅仅是假设检验本身。

我选择了下面的随机种子来说明当非配对 t 检验“显着”时会发生什么(即对这些数据的“正确”分析,因为它们来自独立样本),但该选择没有任何规范。

## Code written in R 2.15.2
set.seed(2464858)
## set a and b to be random selections from
a <- rnorm(20, m = .5, s = 1)
b <- rnorm(20, m = 1, s = 1)

# "Appropriate" unpaired t-test
t.test(a, b, paired=F)
# should return: t = -2.2397, df = 37.458, p-value = 0.03113

## Now 1000 iterations for imposing "fake" pairs at random: 
## with apologies for inefficient looping of code.
paired.ps <- array(NA, 1000)

for (i in 1:1000){
b2 <-   sample(b, length(b))
t.result <- t.test(a, b2, paired=T)
paired.ps[i] <- t.result$p.value
}

## Summary and histogram of distribution of p-values returned.
summary(paired.ps)
## returns    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##         0.00106 0.02533 0.03876 0.03936 0.05106 0.10000 

hist(paired.ps)

在此处输入图像描述

请注意,您可以调整以下 2 个总体中的均值/标准差,以查看这些参数对(应用不当)配对 t 检验的 p 值波动的影响。