- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
今天要给大家分享的文章是
Cone EB, Marchese M, Paciotti M, Nguyen DD, Nabi J, Cole AP, Molina G, Molina RL, Minami CA, Mucci LA, Kibel AS, Trinh QD. Assessment of Time-to-Treatment Initiation and Survival in a Cohort of Patients With Common Cancers. JAMA Netw Open. 2020 Dec 1;3(12):e2030072. doi: 10.1001/jamanetworkopen.2020.30072. PMID: 33315115; PMCID: PMC7737088.
作者做了癌症结局与延迟治疗时间的关系。作者希望能给在疫情背景下怎么样更好地分流癌症患者这一实际问题提供实证依据。作者纳入了4个癌症,发现了基本上Time-to-treatment initiation (TTI)约长,癌症患者的5年和10年死亡率越高。这个结果和目前的部分指南其实是矛盾的,所以整篇文章还是有一定实际意义的。
本文依然是关注文章如何在做法上在统计上进行复现,启发大家如何用自己的数据做一个同样设计的研究。
作者将关心的主变量TTI进行了分类处理,将延迟治疗时间分了4类:
TTI was a categorical variable with 4 levels: 8 to 60, 61 to 120, 121 to 180, and greater than 180 days
为了准确地回答TTI如何影响了全因死亡率,作者还纳入了一系列的协变量包括:clinical demographic variables,clinical demographic variables,Modality of any treatment。构建了一个cox模型。
作者呈现出来的结果包括两个表,如下图,分别是纳入的不同癌症人群的人群特征和按照延迟治疗时间分组后的癌症特征:
这两个表都是属于非常简单的描述统计,大家用用tableone或者gtsummary都可以很方便的做出来(请参考之前文章)。
具体到主分析,作者以all-cause mortality为结局变量,用训练好的cox模型以图的形式展示了不同TTI组随着时间变化predicted 5-year and 10-year all-cause mortality的变化情况:
上图就是文章中截取的,展示的是通过cox模型预测出来的不同TTI类别组的随着时间变化的生存概率。整篇文章的主要统计工作就是这些,那么我们今天要做的就是复现出来整个预测概率并出图。
我手上有数据如下:
我希望训练一个cox模型然后像文章一样通过模型预测情况看一看,不同用药组随着时间变化其生存概率的变化是如何的。
首先我用我的数据训练一个简单的cox模型,需要用到coxph函数,整体代码如下:
fit <- coxph(Surv(Time, death) ~ CD4 + drug + gender, data = data)
在上面的代码中我只是随意选择了3个变量:CD4 + drug + gender,或者说我在CD4 + gender存在的情况下我关心不同的drug(对应文章中的TTI)对患者随着时间变化的生存概率的影响情况。给大家展示下模型结果
可以看到drug的效应并不显著,但是不影响我们示例作图。
到目前我们的cox模型训练好了,接下来我们需要用这个模型预测各组(此时是Drug变量的不同水平)从而得到模型的预测值,这个预测值一定是用控制了一系列的协变量之后的cox模型得到的预测值,作者的处理办法是将协变量都固定在均值水平:
Deriving predicted outcomes, while setting the covariate values at their mean, allowed us to estimate the mean difference in outcomes for each patient under different TTI while conserving their clinical and demographic characteristics
对于我们的cox模型来讲,我们关心的是drug这个变量,其余的变量同样的均需要固定在均值水平,生成新数据的代码如下:
ND1 <- with(aids.id, expand.grid(CD4 = 3, drug = levels(drug),
gender = factor("male", levels = levels(gender))))
在上面的代码中,我们将协变量1--CD4固定在了3,将协变量性别固定为了男性,这个时候我们将数据带入训练好的cox模型中可以得到预测值surv_probs_Cox,直接用plot进行作图:
plot(surv_probs_Cox, col = c("black", "red"),
xlab = "Follow-Up Time (months)", ylab = "Survival Probabilities",
bty='l',
lwd=2
)
grid(ny=5,nx=NA,col='gray',lty = 1)
运行代码后得到下图,下面的图就展示了随着时间变化不同用药的病人死亡概率的差异。
当然啦,为了和原文更像一点,我们可以用同样的数据在ggplot2中重新画下,并且像原文章一样将曲线变为smoothed curve,效果如下:
基本上和原文的展示形式一样了。每种癌症做完,形成大图,整篇文章的主分析也就完成了,好了,本文毕。
今天给大家写了一篇文章的结果呈现方法,希望传递的信息是我们做cox模型,不一定都是在正文中给出一系列的HR,当我们能收到的临床数据很少的时候我们用图来展示结果有可能更加的easily interpreted by clinicians and policymakers。
我正在尝试创建一个 Django 网站,每次在本地主机上运行/articles/api/article 页面时:我都会收到此回溯: Environment: Request Method: GET R
我正在尽最大努力理解开放图谱协议(protocol)中的一切含义阅读 FB page在上面和 OGP Page .这在 FB 和 OGP 的世界中究竟意味着什么: Note that the Open
我的 HTML/CSS 中存在页脚与文章内容重叠的问题。是的,我一直在网上搜索但似乎没有任何效果,我希望你知道它有什么问题。我在这里做了一个codepen: CodePen LINK
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我可以将变量作为警报显示在函数中,但无法将变量传递给文章。我做错了什么? 我知道“a”保存了正确的信息,因为我已经通过警报显示了它。 我尝试使用以下方式传递变量:placeholderContent.
这个问题已经有答案了: Rails article helper - "a" or "an" (6 个回答) 已关闭 3 年前。 是否有类似 [#pluralize in ActiveSupport]
这个问题已经有答案了: Rails article helper - "a" or "an" (6 个回答) 已关闭 3 年前。 是否有类似 [#pluralize in ActiveSupport]
我有以下型号。 Book has Articles (Article has foreign key to Book) Article has Images (Article has upto #ma
我创建了一个页面,该页面显示了单个 类别下的所有帖子,即如果我单击类别音乐,我将获得与音乐类别相关的所有文章。 但我的目标是创建一个过滤选项,它可以过滤掉某些类别,并且只显示与您过滤的类别相关的所有帖
我使用这样的代码: $query = "SELECT introtext FROM #__content WHERE alias = '$alias'"; $db->setQuery($query);
我在主页上设置了一些特色文章。显示的所有文章似乎都剩下太多填充。我知道足以进入 css 并在 layout.css 上编辑 .itembody 的填充或边距,但似乎没有任何改变。我希望我的文章通过模块
ORM 中存储文章及其修订的最佳实践是什么?当我自己用SQL存储时,我曾经有以下结构: articles [id, parent_id, name, text] 通过parent_id,我可以轻松识
我的 HTML : Interest About Interest
我正在用jade构建一个nodejs、express、mongodb博客。 我的文件夹结构是:项目/ 模块/ 观点/ 索引.jade 应用程序.js 文章提供者内存.js 文章provider-mon
我的问题比较具体,至少对我来说是这样。具体是因为在做了很多搜索之后我找不到任何有用的东西。因此,正如标题所说,我正在寻找一种算法,它会发现输入中给出的两篇文章是否“匹配”,但不是通常的字符串匹配意义上
关闭。这个问题是off-topic .它目前不接受答案。 9年前关闭。 锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我无法弄清楚动态编程的原
我有这个问题。我正在建立一个社交网站,我必须在两栏中创建帖子。父容器是一个部分,元素“post”是样式为 float: left 的文章。我如何让滑到那些较短的下方创建的空白空间的帖子? 最佳答案 c
这里有几个关于文件与数据库的问题,但我仍然不确定使用什么以及为什么在我的案例中应该使用它。 我的网站上有很多 HTML 文章(长度在几百到几千字之间)。在数据库 (MySQL) 中,我有一个没有搜索索
微信公众号文章 Semantic Kernel —— LangChain 的替代品? [1] ,它使用的示例代码是Python ,他却发了这么一个疑问: 支持的语言对比(因为 Sem
我想编写一个 polymer 元素来显示一些 WordPress 文章。 http://www.jsv-lippstadt.de/?json=get_category_posts&slug=app
我是一名优秀的程序员,十分优秀!