Это более простая вариация вопроса, на который был дан ответ на Как построить кривую выживания, генерируемую с помощью суррег (выживание пакета R)?
# Create simple Weibull survival fit using library(survival)
surmo<-survreg( Surv(validtimes, status)~1, dist="weibull")
# Getting Kaplan-Meier
fKM<-survfit( Surv(validtimes, status)~1)
# Plot Kaplan-Meier
plot(fKM,xlab="Time,Days",conf.int=TRUE,mark.time=TRUE,ylab="Fraction",main="Kaplan-Meier Plot")
Все доэто работало нормально без каких-либо проблем.
Проблемы возникли, когда я захотел наложить прогнозируемое соответствие Вейбулла на данные.Основываясь на примере, который я использовал.
pct <- seq(.01,.99,by=.01)
maxvalidtimes<-max(validtimes)
# Getting the Weibull lines to overlay
lines(predict(surmo,newdata=list(1:maxvalidtimes),type="quantile",p=pct),1-pct,col="red")
Я получаю ошибку
Ошибка в xy.coords (x, y): длины 'x' и 'y' различаются
Я предположил, что проблема связана с термином: newdata = list (1: maxvalidtimes)
Я попытался удалить термин newdata, а также установил newdata = list (1:99) вбезрезультатно.
Я попробовал то же самое в пакете flexsurv, и я получил точные графики, которые хотел, без особых усилий.
# Using flexsurv package here
surmof <- flexsurvreg( Surv(validtimes, status)~1,dist='weibull')
plot(surmof,mark.time=TRUE,xlab="Time,Days",ylab="Fraction",main="FlexSurv Plot")