最近小编突然发现proc freq过程步真的可以做好多事...今天打算来分享一段如何用SAS中的Proc freq过程步输出二项分布的可信区间的SAS程序...
可信区间的输出
关于二项分布的可信区间的输出在临床统计报告编程中经常会用到...小编不是统计专业也不是医学专业的,就不班门弄斧了的介绍理论知识了...就直接来看看如何用..
先随便制造一点数据
弄俩个组别、然后是否发生不良事件、对应的频数
如下图所示
有了数据后,接着就分别输出俩个组别发生不良事件的可信区间...
程序的实现方式其实很简单
在freq过程步中有参数可以控制可信区间的输出
binomial(cl= ) alpha=
这里的CL=可以选择输出的置信类型
alpha=则可以选择可信度
(alpha默认值是0.05,输出的是95%可信区间)
代码语言:javascript复制ods exclude all;
ods listing close;
ods output binomialcls=want;
proc sort data=have out=have sortseq=linguistic(numeric_collation=on);by group ;quit;
proc freq data=have ;
by group ;
tables aeyn/ missprint nowarn binomial(cl=ALL) ALPHA=0.05 ;
weight num;
run;
ods listing;
ods exclude none;
上段代码输出出来的结果就如下了
这里使用了ods output会将结果输出到输出want中
关于统计过程步中统计量如何输出到数据集中
可以见小编的历史文章
点击跳转:SAS-那些统计过程步的统计量的输出...
如果只想输出上图中标记红色的上下限的话
只需将 binomial(cl=ALL) 中的ALL改成 EXACT
就能有下面的效果
至于其他的几个类型的输出可见下图
结果是鼓捣出来了,那么结果对吗?想要的是发生不良事件(也就是AEYN=是)的置信区间,上面看起来怎么是怪怪的...明显不是预期的结果,这里输出的是未发生不良事件(AEYN=否)的置信区间..那么我是用1-置信区间得到AEYN=是的置信区间呢,还是有其他方式可以控制呢...是有其他方式的...只需一个参数(LEVEL=)
结果如下
关于LEVEL值的选取
根据小编浅薄的经验再加上有道词典对SASHELP粗略的翻译...在freq过程步的计算过程中,会对AEYN的值进行一个排序(所以在此之前你给数据集中的AEYN这个变量不管是升序还是降序都是没有作用的...),“是”的首字母是S,“否”的首字母是F,这个时候“否”就会排到前面成为第一个水平,“是”就会排到第二个水平。如果不加LEVEL这个选项程序则会默认LEVEL=1。下面附上SASHELP的解释..