SAS:Poisson回归输出 人年发病率

这里想要求人年发病率及其95% CI,IRR及其95% CI,VE及其95% CI。

数据准备

trtp:组别;agegr1:年龄层;nvar:是否发生;lgpesyr1:人年数的对数结果。

data final;
    set inset;
    if effcat='水痘临床病例' then nvar=1;
    else nvar=0;
run;

这里需要将事件发生记为1,不发生记为0,我刚开始是事件发生记为1,不发生记为2,最终日志会报如下问题

查阅资料未果,只在sashelp中找到下面这段话,所以进行了调整。

        ods output estimates=estimates lsmeans=lsmeans;
        proc genmod data=final;
            class trtp(ref='对照组') agegr1/PARAM=GLM;/*trtp:组别,agegr1:年龄层*/
            model nvar(event='1') = trtp agegr1/offset=lgpesyr1 dist=poisson link=log;/*offset:偏移量,lgpesyr1放的是人年数的对数结果*/
            exact '试验组 vs 对照组' trtp / CLTYPE=EXACT  estimate= PARM;  /*取反对数后获得的是IRR,VE=1-IRR ,人年发病率是lsmeans数据集中的取幂的结果,IRR是estimates中exp(试验组 vs 对照组)中的结果,VE需要自行计算*/
            estimate '试验组 vs 对照组' trtp 1 -1/exp;
            lsmeans trtp/cl exp;
        run;
最后可以自行检查,发生的例数/总的人年数,看看是否等于人年发病率;如果出现不等的情况,可能是因为:数据不完整,某受试者发生了事件,但是人年数却为空,把这种数据剔除掉就会相等了。

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值