Функция ggforest возвращает сообщение об ошибке при использовании с coxph - PullRequest
1 голос
/ 24 января 2020

при применении ggforest() к объекту coxph я получаю следующее сообщение об ошибке

error in ggforest(res.cox3, data = Selection_cox) :
class(model) == "coxph" are not all TRUE

res.cox3 - это вывод coxph(), который включает в себя термин tt, strata и класса:

> class(res.cox3)
[1] "coxph.penal" "coxph"  

Я получаю то же сообщение для следующих фиктивных данных:

set.seed(132456)
'dummy survival data'
df<-data.frame(id=seq(1,1000,1), event=rep(0,1000),time=floor(runif(1000,7,10)),group=floor(runif(1000,0,2)))
'set events for a few random subjects'
'only within the first 100 to check results more easily'
id_list<-c(as.numeric(floor(runif(10,1,100))))
df$event[df$id %in% id_list]<-1

'set survival times for events'
t_list<-c(as.numeric(floor(runif(8,1,5))))
df2<-df[df$event==1,]
df2
df2$time<-t_list


'combine data'
df<-rbind(df,df2)
summary(df)

'Set up surfit '
require(survminer)
KM_fit<-coxph(Surv(time , event) ~ 1 + strata(group),data= df)

Что я делаю не так?

Спасибо!

1 Ответ

1 голос
/ 24 января 2020

Кажется, ggforest не поддерживает страты (на основе кода функции, которая извлекает имена терминов модели: attr(model$terms, "dataClasses")[-1] и сопоставляет их с именами предоставленных data.frame). Независимо от этой проблемы в приведенном вами примере вы пытались построить модель NULL; возможно, вы хотите построить следующую диаграмму:

KM_fit <- coxph(formula=Surv(time, event) ~ group, data=df)

Вместо того, чтобы использовать страты для стратификации по второму ковариате, вам, вероятно, придется добавить второй член в вашу модель, например:

df$group2 <- gl(2, k=nrow(df)/2)
KM_fit <- coxph(Surv(time , event) ~ group + group2, data= df)

Эта модель не будет точно такой же, как стратифицированная модель, так как нестратифицированная модель будет обеспечивать оценку обоих факторов с использованием одной базовой опасности, в то время как стратификация даст коэффициент опасности для каждого уровня страты, но на основе результатов, это, вероятно, Ваша лучшая ставка.

...