r - Cox回归HR分组
问题描述
我想对以下问题进行 Cox 回归:一组患者是否接受“药物”治疗(0 / 1)。我的时间变量“时间”告诉我,观察患者的天数以及患者存活或死亡的“状态”(死亡 = 1,存活 = 0)。
library(survival)
set.seed(123)
df <- data.frame(time = round(runif(100, min = 1, max = 70)),
status = round(runif(100, min = 0, max = 1)),
drug = round(runif(100, min = 0, max = 1)),
age40 = round(runif(100, min = 0, max = 1)),
stringsAsFactors = FALSE)
object <- Surv(df$time, df$status)
model <- coxph(object ~ drug, data = df)
summary(model)
这对我来说很好,并告诉我,HR 为 0.89,因此该药物可以防止患者死亡。
现在我想做一些亚组分析,如果患者 <= 40 岁或 > 40 岁(年龄 40:0 对 1),HR 会如何变化。
我要做的就是将变量“age40”包含到 coxph 中吗?
object2 <- Surv(df$time, df$status)
model2 <- coxph(object2 ~ drug + age40, data = df)
summary(model2)
如果我这样做,我在 drug1 的摘要中的 HR 会略微更改为 0.86,而我会得到另一个 age40 (1.12) 的 HR。
现在我的问题是:如果患者 <= 40 或 > 40 岁,治疗中死亡的风险比(药物 = 1)如何。
编辑:另一个问题是以图形方式显示药物对森林图中状态影响的不同 HR,如下所示:https ://rpkgs.datanovia.com/survminer/reference/ggforest-2.png 。而不是“sex”、“rx”、“adhere”等。我想显示 Age40 = 0 对 1 的 HR 以及其他变量,如高血压 = 0 对 1,吸烟者 = 0 对 1。
谢谢!
解决方案
使用论据strata
。
coxph(object ~ drug + strata(age40), data = df)
推荐阅读
- python - -753 在“pd.Timestamp”中的时区是什么意思
- node.js - Mongoose findById 检查用户权限的正确方法
- html - 顶部和左侧不需要的空白
- javascript - JSON Stringfy 只有几个属性
- python - 从一个句子列表中删除一个点元素
- reactjs - Enter 和 Backspace 不能在 React 中使用 Slate.js 编辑器
- unity3d - 如果我要求奖励视频太多会不会有问题?
- regex - RegEx 用于匹配从 0.00 到 50.00 的数字
- python - Cython 不适用于带参数的双装饰器。有解决方法吗?
- scala - 如何将文件列中的值列表解析为Spark sql Dataframe