1

我正在做一些社会科学研究,偶然发现了一篇讨论不同精确测试的文章,包括伯纳德的测试。几位作者讨论了 Fisher 精确检验和 Bernard 检验之间的差异(Lydersen 在 2009 年,Mehta 和 Senchaudhuri 在 2003 年),但我只是好奇我是否能自己看到差异(并在此过程中更多地了解 R )。我找到了一种让费舍尔检验起作用的方法,但巴纳德检验却让我望而却步:

 library(plyr)
 library(Barnard)

 rook <- expand.grid(a=0:5,b=0:5,c=0:5,d=0:5)

 sums <- ddply(rook, .(a,b,c,d), sum)

 system.time(
 Fisher.l <- ddply(rook, .(a,b,c,d),function(z)
      fisher.test(matrix(unlist(z[,c(1,2,3,4)]),
      ncol=2),alternative="less")$p.value)
 )

但是,这些都不起作用……它们是尝试做同一件事的两种方式……

 system.time(
      Barnard <- ddply(rook, .(a,b,c,d), function(z)
      barnardw.test(unlist(z[,c(1,2,3,4)]), ncol=2))$p.value[[1]])
 )

 system.time(
      Barnard <- ddply(rook, .(a,b,c,d), function(z)
      barnardw.test(z[,1],z[,2],z[,3],z[,4]))$p.value[[1]])
 )
4

0 回答 0