У меня есть данные о выживаемости пациентов. Некоторые из них подвергнуты цензуре. Я хочу подогнать обобщенную гамма-функцию к эмпирическим данным с помощью пакета flexsruv
в R. В то время как все другие функции, которые я хочу подогнать (такие как экспоненциальная, weibull и т. д.) работают нормально, я получаю следующий код ошибки для dist = "gengamma"
:
Error in optim(method = "BFGS", par = c(5.02274354115438, -0.0670900421918298, :
non-finite finite-difference value [2]
Вот данные, которые у меня есть:
db.survival <- data.frame(time = c(101, 111, 185, 707, 85, 58, 427, 672, 90,
1452, 608, 99, 556, 62, 60, 1445, 563, 246,
163, 276, 216, 64, 61, 66, 67, 68, 81, 83,
99, 100, 100, 100, 100, 100, 100, 100, 100),
status = c(1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1,
1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0))
Я получаю код ошибки для:
library(flexsurv)
flexsurvreg(Surv(time, status) ~ 1, data = db.survival, dist="gengamma")
Однако, когда я выбираю методы "CG"
или "SANN"
, я получаю результаты (но они разные).
Мои вопросы: почему я получаю ошибку в первую очередь? Я неправильно кодирую?
Заранее большое спасибо за любую помощь!