首页 > 解决方案 > flexsurv 包:用于绘制两个研究组的 Kaplan-Meier 曲线预测的代码

问题描述

我用于数据输入的代码:

library(tidyverse)
library(survminer)
library(flexsurv)
library(survival)
library(finalfit)

data = read_delim("data.csv", 
    ",", escape_double = FALSE, trim_ws = TRUE)
data = data %>%
      mutate_if(is.character, as.factor)

简单模型在 KM 曲线上绘制了两个研究组的预测:

model1 = flexsurvreg(Surv(time, status) ~ group, dist="weibull", data = data)
plot(model1)

但是,当我将其他变量添加到模型中时,该图不会为 A 组和 B 组绘制单独的线。

model2 = flexsurvreg(Surv(time, status) ~ group + age + sex, dist="weibull", data = data)
plot(model2)

因此,我使用“newdata”参数为 A 组和 B 组绘制单独的曲线:

newdata = data.frame(group=c("A", "B"), age = 50, sex = c("f","m"))

然后在 KM 曲线上绘制模型预测:

KM = survfit(Surv(time, status) ~ group, data=data)
plot(KM, col="black")
lines(model2, newdata = mf, col = "red")

链接到情节

线条不会收敛太多,我想我弄清楚了问题所在。“newdata” 论点仅将 A 组受试者与女性结合起来,反之亦然。请查看汇总表:

表链接

我用于汇总表的代码:

summary(model2, newdata=newdata, ci = TRUE, tidy = T)

如何解决问题或获得 A 组(包括女性和男性)和 B 组(包括女性和男性)的预测?

这是代码和数据:R项目文件夹

标签: rsurvival-analysissurvival

解决方案


推荐阅读