Код, который я использовал для ввода данных:
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)
Простая модель отображает прогнозы двух исследовательских групп на кривых КМ:
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 = 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