R语言基于ems包标准化死亡率 (SMR)计算(1)

分析队列人群有无死亡人数超额,通常应用标准人群死亡率来校正,即刻观察到中的实际死亡数(D)与定一个标准的死亡人数(E),D与E之比称为死亡比(standarized Mortality ratio,SMR). 标准化死亡率 (SMR) 是观察到的病例与预期病例的比率
因此计算SMR需要两个发病率,观察到的发病率和实际发病率,计算我们使用R语言ems包来进行演示
首先导入R包和其自带的ICU数据

library(ems)
bc<-data(icu)
attach(icu)

在这里插入图片描述
我们先来看看数据结构,数据很多名字很长,下图只是显示其中一部分,Unit The name of the ICU unit: ICU单元名称,Age Patient age年龄 患者年龄,Gender男性 = 1,女性 = 0,UnitAdmissionDateTimeICU入住日期和时间,UnitDischargeDateTimeICU出院日期和时间,UnitDischargeName结局:死亡 = 1,UnitDestinationName ICU住院日期,HospitalDischargeDate出院日期,HospitalDischargeName住院结果,LengthHospitalStayPriorUnitAdmission入院前的住院时间,LengthHospitalStayPriorUnitAdmissionICU 入院前患者的来源AdmissionTypeName_pri Admission as Clinical treatmen:治疗手段:1.药物2.择期手术3紧急手术
Vasopressors_D1是否要升压药,IsMechanicalVentilation1h是否1小时需要机械通气,CharlsonComorbidityIndex合并症指数,Saps3Points SAPS 3 score估计死亡概率,
SofaScoreSOFA 分数。
在这里插入图片描述
虽然文章数据很多,但是我们使用到的不多,我们先把分类变量改成因子,对一些变量打上标签

attr(icu, "var.labels")[match(c("Unit", "IsMechanicalVentilation1h",
                                "AdmissionTypeName_pri","Vasopressors_D1"), names(icu))] <-
  c("ICU unit","Mechanichal ventilation","Admission type","Vasopressors at admission")
icu$Saps3DeathProbabilityStandardEquation <- icu$Saps3DeathProbabilityStandardEquation /100###除以100变成比率
icu$IsMechanicalVentilation1h <- as.factor(ifelse(icu$IsMechanicalVentilation1h == 1, "Yes", "No"))
icu$AdmissionTypeName_pri <- as.factor(icu$AdmissionTypeName_pri)
levels(icu$AdmissionTypeName_pri) <- c("Clinical","Elective surgery", "Urgent surgery")
icu$Vasopressors_D1 <- as.factor(ifelse(icu$Vasopressors_D1 == 1, "Yes", "No"))

处理好数据后,我们就可以分析了,这文章的死亡率主要有两个,一个是UnitDischargeName指标的实际死亡率,一个是由SOFA评分构成的预测死亡率

SMR(icu$UnitDischargeName, icu$Saps3DeathProbabilityStandardEquation)

在这里插入图片描述
OK,实际死亡人数,预测死亡人数,SMR和可信区间都出来了,我们还可以求出分组的SMR和可信区间,假如我们想知道是否上呼吸机的SMR有无区别,

x1 <- SMR.table(data = icu, obs.var = "UnitDischargeName",
               pred.var = "Saps3DeathProbabilityStandardEquation",
               group.var = c( "IsMechanicalVentilation1h"),
               reorder = "no",
               decreasing = TRUE,
               use.label = TRUE)### obs.var为实际死亡得变量,pred.var为预测死亡变量

在这里插入图片描述
假如我们想多几组

x <- SMR.table(data = icu, obs.var = "UnitDischargeName",
               pred.var = "Saps3DeathProbabilityStandardEquation",
               group.var = c( "IsMechanicalVentilation1h",
                              "AdmissionTypeName_pri","Vasopressors_D1"),
               reorder = "no",
               decreasing = TRUE,
               use.label = TRUE)

在这里插入图片描述
还可以对数据做出可视化视图

forest.SMR(x, digits = 2)

在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天桥下的卖艺者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值