在proc freq中抑制Fisher对2x2表的精确测试

时间:2016-01-04 17:56:57

标签: sas

规范:旧的Solaris安装上的SAS 9.3。评论移动;对不起,如果我的格式不稳定。

我有一些较大的数据集(n~ = 30k患者),我想运行一些2x2表并获得卡方检验。不幸的是,凭借其无限的智慧,当您要求2x2表的卡方统计时,SAS决定将Fisher的精确测试部分作为默认输出。由于样本量很大,SAS在尝试Fisher精确测试时会发出警告:

"警告:对于此样本量,不能以足够的精度计算Fisher精确检验。"

(如果SAS研究所的任何人正在阅读:我有没有要求进行测试的原因,朋友们!)

我需要这个警告不要发生,因为我将这个SAS调用嵌入到GNU make脚本中,make会停止警告。我很确定NOWARN只能抑制这样小的单元尺寸" chi square可能不准确。警告,而不是这一个。在这种情况下,有没有办法压制Fisher的精确测试?我也尝试手动计算卡方,但我需要一个包含整体N的输出数据集,我不能使用OUTPUT语句,除了N之外不会调用任何统计数据。

编辑:这是一个导致问题的表,{Nij}向上舍入。

var1,var2: N
-------------------
P,X: 10000
P,Y: 3600
Q,X: 13000
Q,Y: 1000

1 个答案:

答案 0 :(得分:1)

假设您正在谈论表格本身的警告(而不是日志中的警告),您可以使用ODS(目标)排除该部分。

假设HTML是您的目的地(否则将该部分修改为LISTING或PDF或诸如此类):

ods html exclude fishersexact;
proc freq data=sashelp.snacks;
  tables advertised*holiday/chisq;
run;
ods html exclude none;