SAS-可信区间的输出...

2019-10-20 14:34:15 浏览数 (1)

最近小编突然发现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的解释..

sas

0 人点赞