繁体   English   中英

SAS Fisher测试大样本量的p值

[英]SAS Fisher test p values for large sample sizes

我正在尝试计算一些优势比和有意义的东西,可以在2x2表中。 问题是Sas的Fisher测试需要很长时间。

我已经有细胞计数了。 我可以计算一个卡方,如果不是因为样本大小的完成非常小。 然而有些非常大,细胞大小达数十万。

当我尝试在R中计算这些时,我没有问题。 但是,当我尝试在Sas中计算它们时,它要么任务方式太长,要么只是错误输出消息“Fishers exact test无法以足够的精度计算此样本大小”。

当我创建一个玩具示例(从数据集中拉出一个实例并计算它)时,它会计算,但需要很长时间。 Data Bob; Input targ $ status $ wt; Cards; A c 4083 A d 111 B c 376494 B d 114231 ; Run;

Proc freq data = Bob; Weight wt; Tables targ*status; Exact Fisher; Run;

这里出了什么问题?

那很好笑。 SAS计算Fisher精确检验p值的确切方式,通过列举的每一个表,其中比值比是至少有利于备择假设的一样大或更大的超几何概率。 我可能有一种方法可以计算出有多少个表,但是知道它足以让SAS减速就足够了。

R不这样做。 R使用蒙特卡罗方法,在小样本量和大样本量下一样好。

tab <- matrix(c(4083, 111, 376494, 114231), 2, 2)
pc <- proc.time()
fisher.test(tab)
proc.time()-pc

给我们

> tab <- matrix(c(4083, 111, 376494, 114231), 2, 2)
> pc <- proc.time()
> fisher.test(tab)

        Fisher's Exact Test for Count Data

data:  tab
p-value < 2.2e-16
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
  9.240311 13.606906
sample estimates:
odds ratio 
  11.16046 

> proc.time()-pc
   user  system elapsed 
   0.08    0.00    0.08 
> 

几分之一秒。

也就是说,聪明的统计学家会在像你这样的表中意识到,对数比值比的正常近似值是相当好的,因此Pearson卡方检验应该得到近似非常相似的结果。

人们声称Fisher精确测试有两个非常不同的优点:有人说它在小样本中很好。 其他人说,当细胞计数在表格的特定边缘非常小时,它是好的。 我开始理解它的方式是,当引导数据集有可能生成具有无限比值比的表时,Fisher的精确测试是Chi Square测试的一个很好的替代方案。 从视觉上你可以想象,对数比值比的正常近似值正在下降。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM