这篇接着上一篇的说(SAS-可信区间的输出...),率差的输出...为啥要分开呢,因为这样不就是显得小编勤奋高频输出吗...
真的是感觉太久没打理公众号,现在打算好好打理一段时间了
可能又是把三分钟热度演绎的淋淋尽致...
率差的输出
上一篇文章说到了Proc freq过程步可以做很多事情。可以输出可信区间,同样也可以输出率差,这里的率差是2*2表的率差,同样也是一个参数来控制。
计算试验组与对照组发生不良事件的率差
数据还是沿用上一篇推送的(如下)
这个控制的参数就是riskdiff
输出数据的方式有俩种
<1>使用output语句
proc freq data=have ;
weight num;
tables group*aeyn /alpha=0.05 sparse chisq nowarn riskdiff;
output out=test(keep=l_rdif2 u_rdif2 _rdif2_ l_rdif1 u_rdif1 _rdif1_) riskdiff ;
run;
这里可以直接在过程步中添加output语句,使用out选项进行控制输出数据,就可以实现将率差以及可信区间的输出。上面程序运行的结果输出如下。
至于这里的DIF1,与DIF2之间的区别,稍后再说。且来看看第二种输出方式。
<2>使用ods output语句
输出的数据结果如下:
不难发现这里又是有dif1与dif2。那么究竟哪一个才是最开始想要计算的对照组-试验组的率差以及可信区间呢,答案是不管dif1还是dif2都是对照组-试验组的率差,但是dif1与dif2分别表示(group*aeyn)中*后面的变量(aeyn)对应的分类的结果的率差。根据经验,aeyn的2个水平“否”会排在“是”的前面,所以呢,dif1表示的是否发生不良事件为否的率差,dif2表示发生不良事件为是的率差。其实这个地方就和前面的一篇文章(可信区间的输出)中非常类似...是否有参数控制呢,小编没有查。因为已经够用了。。。
Group*AEYN等价于AEYN*Group吗
如题所述,在率差的计算中Group*AEYN是否等价于AEYN*GROUP,答案是明显不等于的。这个就得从2*2表的输出的结构以及率差计算的方式(第一行-第二行)来说了。先来看看下面的的图:
如果是AEYN*GROUP计算的就是“否”-“是”之间的率差了,而不是对照组与试验组了,所以呀,这个变量先后顺序还是值得注意的。总结一下,率差的输出需要注意俩点,一个是变量的顺序,一个是变量水平的顺序。选对顺序就不会错了。