пакет flexsurv: код для построения прогнозов на кривых Каплана-Мейера для двух исследовательских групп - PullRequest
1 голос
/ 23 апреля 2020

Код, который я использовал для ввода данных:

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

...