置换检验 配对秩和检验

置换检验

置换检验(Permutation test),也称随机化检验或重随机化检验,是Fisher于20世纪30年代提出的一种基于大量计算(computationally intensive),利用样本数据的全(或随机)排列,进行统计推断的方法。
其对总体分布自由,应用较为广泛,特别适用于总体分布未知的小样本资料,以及某些难以用常规方法分析资料的假设检验问题,属于非参数检验方法。
与Bootstrap Methods类似,通过对样本进行顺序上的置换,重新计算统计检验量,构造经验分布,然后在此基础上求出P值进行推断。
步骤:
两独立样本比较 (A组 10个观测值, B组15个观测值)

  1. 与参数方法类似,计算观测数据的 t t t统计量,称为 t 0 t_0 t0
  2. 将A、B两组数据合并到一个集合中
  3. 随机分配10个观测值到A组,剩下的分配15个观测值到B组;
  4. 计算并记录新观测的 t t t统计量;
  5. 对每一种可能随机分配重复步骤(3)~(4),此处有 C 25 10 C^{10}_{25} C2510种可能的分配组合;
  6. C 25 10 C^{10}_{25} C2510 t t t 统计量按升序排列,这便是基于样本数据的经验分布;如果 t 0 t_0 t0落在经验分布中间95%部分的外面,说明在零假设条件下这个数值是很少出现的,则在0.05的显著性水平下,拒绝两组的总体均值相等的零假设。

置换检验通常使用coin包,里面包含各种置换检验函数。

举例
现有“en”及“ch”两组独立数据

pacman::p_load(coin)
feature <-c(4508,21904,9.717835,0.039856,4.28406,4112,17423,8.474222,0.020499,5.00825,4632,33252,14.35751,0.032547,4.07546,4646,25483,10.96987,0.020499,5.00825)
group <- factor(c(rep("ch",10),rep("en",10)))
mydata <- data.frame(group,feature)
mydata # 长格式数据
    group      feature
1     ch  4508.000000
2     ch 21904.000000
3     ch     9.717835
4     ch     0.039856
5     ch     4.284060
6     ch  4112.000000
7     ch 17423.000000
8     ch     8.474222
9     ch     0.020499
10    ch     5.008250
11    en  4632.000000
12    en 33252.000000
13    en    14.357510
14    en     0.032547
15    en     4.075460
16    en  4646.000000
17    en 25483.000000
18    en    10.969870
19    en     0.020499
20    en     5.008250

oneway_test(feature~group, data=mydata, distribution="exact")

     Exact Two-Sample Fisher-Pitman Permutation Test
data:  feature by group (ch, en)
Z = -0.44355, p-value = 0.6614
alternative hypothesis: true mu is not equal to 0

置换检验使用条件:
假定数据成正态分布并不合适;
担心离群点的影响;
对于标准的参数方法来说数据集太小。

长短格式数据转换

数据整形既有专门的包也可用R内置的函数作简单变换。

mydata2 <- unstack(mydata, feature~group) #转换为宽格式
mydata2
           ch           en
1   4508.000000  4632.000000
2  21904.000000 33252.000000
3      9.717835    14.357510
4      0.039856     0.032547
5      4.284060     4.075460
6   4112.000000  4646.000000
7  17423.000000 25483.000000
8      8.474222    10.969870
9      0.020499     0.020499
10     5.008250     5.008250

两样本秩和配对检验

 with(mydata2,wilcox.test(ch,en,paired = TRUE))

    Wilcoxon signed rank test with continuity correction
data:  ch and en
V = 3, p-value = 0.04232
alternative hypothesis: true location shift is not equal to 0

其他非参数秩和检验可参考R语言差异检验:非参数检验

你可能感兴趣的:(R实践)