手动计算校正年龄、性别后的标准化死亡率 (SMR)

news2024/11/25 6:50:33

分析队列人群有无死亡人数超额,通常应用标准人群死亡率来校正,即刻观察到中的实际死亡数(D)与定一个标准的死亡人数(E),D与E之比称为死亡比(standarized Mortality ratio,SMR). 标准化死亡率 (SMR) 是观察到的病例与预期病例的比率。
在这里插入图片描述
今天我们介绍一下怎么通过手动计算校正年龄、性别后的标准化死亡率 (SMR)。 我们先导入R包和数据,也不能算完全手动,还是需要用到survival包。

library(survival)
bc<-read.csv("E:/r/test/smr1.csv",sep=',',header=TRUE)
head(bc,6)
##      sex      age entry_date status   futime
## 1   male 11213.45  1985/2/26      1 2750.988
## 2 female  6681.62   1994/3/1      0 1981.679
## 3   male 10411.76   1992/6/6      0 2979.385
## 4 female 10665.13  1985/9/22      0 2576.967
## 5   male 19065.91  1986/11/2      0 4993.524
## 6   male 10154.70  1993/4/23      0 1821.558

这是一个很简单的数据,sex为性别,age是年龄,entry_date为诊断也就是进入这个队列的时间,status为结局变量,futime为生存时间。(公众号回复:SMR1可以获得该数据) 先处理一下生存时间

bc$entry_date<-as.Date(bc$entry_date)

我们首先要算出它的haz, 每人年的平均人口死亡率(d/(pyrs),其中d是死亡人数,pyrs是人年),可以通过survival包的survexp函数计算。sex这个指标不能少,如果全是女的也要设置.

bc$risk1 <- -log(survexp(futime ~ 1, data = bc, 
                          rmap = list(year = entry_date, age = age, sex = sex), 
                        cohort = FALSE, conditional = TRUE))

survexp函数中选项还有一个费率表,就是用来调整生成的预测概率的,可以理解为校正功能。 survival函数自带了3个survexp.us, survexp.usr和survexp.mn. survexp.usr就是1940年至2014年按年龄、性别和种族划分的美国人口。这里有黑人和白人的数据集,我这里只取白人的

survexp.uswhite <- survexp.usr[,,"white",]
head(survexp.uswhite ,6)
## Rate table with dimension(s): age sex year 
## , , year = 1940
## 
##    sex
## age         male       female
##   0 1.350207e-04 1.057536e-04
##   1 1.336591e-05 1.185314e-05
##   2 7.264935e-06 6.029907e-06
##   3 5.206865e-06 4.411492e-06
##   4 4.192119e-06 3.506694e-06
##   5 3.780843e-06 3.013293e-06
## 
## , , year = 1941
## 
##    sex
## age         male       female
##   0 1.300527e-04 1.017030e-04
##   1 1.260761e-05 1.118577e-05
##   2 6.919267e-06 5.733727e-06
##   3 4.976544e-06 4.208639e-06
##   4 4.019425e-06 3.345001e-06
##   5 3.624615e-06 2.879024e-06
## 
## , , year = 1942
## 

如果你想算某个地方的生存率,可以使用当地人口普查数据,这里我们把费率表加进去。

bc$risk2 <- -log(survexp(futime ~ 1, data = bc, 
                                  rmap = list(year = entry_date, age = age, sex = sex), 
                                  cohort = FALSE, ratetable = survexp.uswhite , conditional = TRUE))
head(bc,6)
##      sex      age entry_date status   futime       risk1       risk2
## 1   male 11213.45 1985-02-26      1 2750.988 0.017979337 0.015404330
## 2 female  6681.62 1994-03-01      0 1981.679 0.002648331 0.002482978
## 3   male 10411.76 1992-06-06      0 2979.385 0.015381638 0.013551117
## 4 female 10665.13 1985-09-22      0 2576.967 0.006089193 0.005058961
## 5   male 19065.91 1986-11-02      0 4993.524 0.186826509 0.175753223
## 6   male 10154.70 1993-04-23      0 1821.558 0.008510061 0.007464535

可以看到,加入费率表的概率和不加的是不一样的。算出了预测概率后我们就可以进一步计算了。

O <- sum(bc$status)
E <- sum(bc$risk2)
O;
## [1] 46
E
## [1] 6.74174

可以得到O为46,E为6.74.SMR等于O/E

SMR <- O/E
SMR
## [1] 6.823164

接下来计算可信区间,先设置一下alpha

alpha = 0.05

接下来计算可信区间,公式是固定的,直接放进去就可以了

SMR.lo <- O/E * (1 - 1/9/O - qnorm(1 - alpha/2)/3/sqrt(O))^3
SMR.up <- (O + 1)/E * (1 - 1/9/(O + 1) + qnorm(1 - alpha/2)/3/sqrt(O + 1))^3
SMR.lo
## [1] 4.994967
SMR.up
## [1] 9.101355

这样全部结果就计算出来啦,计算结果我们使用survexp.fr包来验证一下

library(survexp.fr)
attach(bc)
bc$entry_date<-as.Date(bc$entry_date)
SMR(futime, status, age, sex, entry_date,ratetable =survexp.uswhite)
## $O
## [1] 46
## 
## $E
## [1] 6.74174
## 
## $SMR.classic
## $SMR.classic$SMR
## [1] 6.823164
## 
## $SMR.classic$SMR.lo
## [1] 4.994967
## 
## $SMR.classic$SMR.up
## [1] 9.101355
## 
## $SMR.classic$p.value
## [1] 0
## 
## 
## $SMR.poisson
## $SMR.poisson$SMR
## [1] 6.823164
## 
## $SMR.poisson$SMR.lo
## [1] 5.110733
## 
## $SMR.poisson$SMR.up
## [1] 9.109373
## 
## $SMR.poisson$p.value
## [1] 8.903473e-39

两者算得一模一样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588873.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运筹学-单纯形法

一、单纯形法的求解思路 单纯形法求解线性规划的思路&#xff1a;在高斯消去法的基础上&#xff0c;发展为求解变量数大于方程数&#xff0c;并且使目标函数值优化的方法。从线性方程中找到一个个的单纯形&#xff0c;每个单纯形&#xff08;图形的顶点&#xff09;可以得到一组…

支付宝 小程序 抽奖组件 大转盘

介绍 使用支付宝原有的大转盘营销组件进行改造的&#xff0c;由于背景使用的图片&#xff0c;目前只支持 6 个奖品&#xff0c;一般情况下的大转盘都是这个规格。 转盘停止&#xff1a;之前使用的是计算角度来完成的&#xff0c;没有那种缓慢停止的动画。现在加了一个缓慢停止…

Android实现皮肤主题修改

最近在做App内皮肤切换功能&#xff0c;想了很久方案&#xff0c;写了个皮肤更换工具类&#xff0c;适配N皮肤种类。 话不多说&#xff0c;直接捋一下我的设计思路&#xff0c;因为我的App默认为黑色主题&#xff0c;因此在做其他皮肤主题时&#xff0c;我的图片命名方式是直接…

Fastjson核心解析器DefaultJSONParser,解析算法递归下降算法,实例解析json的步骤

先恭喜热火没有在3-0的情况下被凯尔特人翻盘&#xff0c;抢七获胜成功晋级总决赛~ 最近的项目用到了fastjson&#xff0c;因为源码比较容易搞到&#xff0c;所以就拿来简单的了解了一下&#xff0c;json的主要功能就是解析json和生成json字符串&#xff0c;今天主要是从解析jso…

基于vue3.0简单的页面使用

基于vue3.0简单的页面使用 项目效果图项目文件图package.jsonmain.jsApp.vueviews/Tutorial.vueviews/TS.vueviews/Docs.vueviews/Community.vueviews/Blog.vueviews/About.vueutils/create.jsxutils/defineCom.jsutils/DragIcon.jsutils/someName.tsutils/TS.tsstores/client.…

win11任务栏时间改成12时制

需求&#xff1a;默认24小时值&#xff0c;想改成12小时3:49 方法&#xff1a;设置-时间和语言-语言和区域-管理语言设置-格式 将时间格式改成带tt的

2022年长三角高校数学建模竞赛C题隧道的升级改造与设计解题全过程文档及程序

2022年长三角高校数学建模竞赛 C题 隧道的升级改造与设计 原题再现&#xff1a; 某地现存一旧式双洞隧道&#xff0c;现计划将该隧道在旧貌基础上升级改造。在升级改造前&#xff0c;需进行定标与设计。考虑到该隧道洞壁附着特殊涂料&#xff0c;无人机在洞内通信信号较差&am…

网络面试题:什么是 TCP/IP?

目录标题 什么是 TCP/IP?1) 网络接口层:2) 网络层:3) 传输层:4) 应用层: 2.数据包3.网络接口层4.网络层1) IP:2)地址解析协议 ARP3)子网 5 传输层1&#xff09;UDP&#xff1a;2&#xff09;TCP&#xff1a; 6 应用层运行在TCP协议上的协议&#xff1a;运行在UDP协议上的协议&…

Netty 实现百万级连接服务的难点和优点分析总结

推送服务 还记得一年半前&#xff0c;做的一个项目需要用到 Android 推送服务。和 iOS 不同&#xff0c;Android 生态中没有统一的推送服务。Google 虽然有 Google Cloud Messaging &#xff0c;但是连国外都没统一&#xff0c;更别说国内了&#xff0c;直接被墙。 所以之前在…

Lua学习笔记:C/C++和Lua的相互调用

前言 本篇在讲什么 C/C和Lua的相互调用 本篇适合什么 适合初学Lua的小白 适合需要C/C和lua结合开发的人 本篇需要什么 对Lua语法有简单认知 对C/C语法有简单认知 依赖Lua5.1的环境 依赖VS 2017编辑器 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&…

云南智慧档案库综合管理系统建设解决方案

一、智慧档案管理系统建设背景 档案作为一种特殊的文献&#xff0c;是人类社会活动的产物&#xff0c;具有特殊的价值&#xff0c;其价值可以概括为现实价值和历史价值。档案是人类留给国家和社会的宝贵财富&#xff0c;它在经济与社会建设中起着重要的作用。档案是反映一个单…

多重共线性的处理方法

回归分析需要考虑多重共线性问题。多重共线性是指自变量之间存在高度相关性&#xff0c;导致回归模型的系数估计不稳定和假设检验不可靠。在实际应用中&#xff0c;许多自变量之间都可能存在一定程度的相关性&#xff0c;如果没有进行控制&#xff0c;就会导致多重共线性问题的…

设计模式之美-实战二:如何对接口鉴权这样一个功能开发做面向对象分析?

面向对象的三个环节&#xff1a;面向对象分析&#xff08;OOA&#xff09;、面向对象设计&#xff08;OOD&#xff09;、面向对象编程&#xff08;OOP&#xff09;。只知道OOA、OOD、OOP只能说有一个宏观了解&#xff0c;我们更重要的还是要知道“如何做”&#xff0c;也就是&a…

【快应用】多语言适配案例

【关键词】 多语言&#xff0c;$t 【问题背景】 快应用平台的能力会覆盖多个国家地区&#xff0c;平台支持多语言的能力后&#xff0c;可以让一个快应同时支持多个语言版本的切换&#xff0c;开发者无需开发多个不同语言的源码项目&#xff0c;避免给项目维护带来困难。使用系…

子串分值--子串分值和 模拟,找规律

子串分值和 n有十万&#xff0c;需要找规律&#xff0c;O(n^2)不满足要求 分析样例&#xff1a; Ababc 01234 长度是n5 索引下标-对应字符 0A贡献 112 a;ab;---22*1 next a 2&#xff1b; pre a -1 1b贡献 112 b;ba;---42*2 next b 3&#xff1b; pre b -1 2a贡献 1113…

2023年测试前景?测试开发工程师养成记,开发企业级测试平台...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试开发&#xff…

IDS 和 IPS 日志监控

什么是IDS/IPS 入侵检测系统 &#xff08;IDS&#xff09; 和入侵防御系统 &#xff08;IPS&#xff09; 是监视组织网络中的流量以检测和防止恶意活动和策略违规的网络组件。 入侵检测系统&#xff08;IDS&#xff09;和入侵防御系统&#xff08;IPS&#xff09;可以说是企业…

C语言学习分享(第八次)------数据的存储

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C语言学习分享⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C语言知识   &#x1f51d;&#x1f51d; 数据的存储 1. 前言&#x1f6a9;2…

现代化智慧档案室建设图文推介

1、防火。建立档案库房防火制度&#xff0c;档案库房附近严禁存放易燃、易爆物品&#xff0c;库房内严禁吸烟&#xff0c;并备有灭火器&#xff0c;经常进行检查更换。 主要设备为&#xff1a;烟雾探测器和感温探测器和七氟丙烷灭火系统。 2、防潮。库房内备有温湿度计&#x…

GB28181 对接海康平台,解决音视频卡顿问题

GB28181 对接海康平台,解决音视频卡顿问题 一、概述二、问题分析1、设备对比分析2、抓包对比分析3、验证分析结果三、总结四、讨论一、概述 设备使用GB28181协议对接海康平台时,发现音频和视频存在卡顿现象,不是一直卡顿,有时候卡有时候不卡,但是卡顿的时候音视频一起卡顿…