版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
置换检验,也称随机化检验或重随机化检验,以一个实例去理解置换检验。
有两种处理条件的实验,十个受试者已经被 随机分配到其中一种条件(A或B)中,相应的结果变量(score)被记录在以下表格:
A处理 | B处理 |
---|---|
40 | 57 |
57 | 64 |
45 | 55 |
55 | 62 |
58 | 65 |
传统参数检验
步骤:
- 假设数据抽样自等方差的正态分布;
- 零假设为A处理的总体均值与B处理的总体均值相等;
- 双尾独立样本 t 检验;
- 将 t 统计量与理论分布进行比较,如果观测到的 t 统计量值十分极端,比如落在理论分布值 的95%置信区间外,那么将会拒绝零假设,断言在0.05的显著性水平下两组的总体均值不相等。
score <- c(40, 57, 45, 55, 58, 57, 64, 55, 62, 65)
treatment <- factor(c(rep("A",5), rep("B",5)))
mydata <- data.frame(treatment, score)
t.test(score~treatment, data=mydata, var.equal=TRUE)
##
## Two Sample t-test
##
## data: score by treatment
## t = -2.345, df = 8, p-value = 0.04705
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -19.0405455 -0.1594545
## sample estimates:
## mean in group A mean in group B
## 51.0 60.6
t 检验结果显示 ,拒绝原假设。
置换检验
步骤:
- 与参数方法类似,计算观测数据的 t 统计量,称为 ;
- 将10个得分放在一个组中;
- 随机分配五个得分到A处理中,并分配五个得分到B处理中;
- 计算并记录新观测的 t 统计量;
- 对每一种可能随机分配重复步骤(3)~(4),此处有252种可能的分配组合;
- 将252个 t 统计量按升序排列,这便是基于(或以之为条件)样本数据的经验分布;
- 如果 落在经验分布中间95%部分的外面,则在0.05的显著性水平下,拒绝两个处理组的总体均值相等的零假设。
置换检验通常使用coin包
,里面包含各种置换检验函数。
library(coin)
oneway_test(score~treatment, data=mydata, distribution="exact") #单因素精确置换检验
##
## Exact Two-Sample Fisher-Pitman Permutation Test
##
## data: score by treatment (A, B)
## Z = -1.9147, p-value = 0.07143
## alternative hypothesis: true mu is not equal to 0
检验结果显示 ,接受原假设。
t 检验和置换检验的联系与区别
联系:
- 计算了相同的 t 统计量。
区别:
- t 检验将统计量与理论分布进行比较,置换检验将统计量与经验分布比较,根据统计量值的极端性判断是否有足够的理由拒绝零假设。
根据经验分布依据的数据是否为所有可能的排列组合可进一步将置换检验分为以下两种:
-
精确检验:经验分布依据的数据为所有可能的排列组合,样本量的增加,获取所有可能排列的时间开销会非常大。
-
蒙特卡洛模拟:从所有可能的排列中进行抽样,获得一个近似的检验。
set.seed(123) # 设置随机数种子 oneway_test(score~treatment, data=mydata, distribution = approximate(nresample = 200))
置换检验使用场景
- 假定数据成正态分布并不合适;
- 担心离群点的影响;
- 对于标准的参数方法来说数据集太小。
参考文献:
R语言实战(二)