R - 寻找生存概率 - Weibull AFT - 错误:X和Y值不同?

时间:2017-04-17 18:06:56

标签: r regression survival-analysis weibull

我有关于桥梁生存能力的数据:https://pastebin.com/1ryj68Bd 我是R和生存分析的新手,所以这可能听起来很基本,但我创建了一个Weibull AFT模型。我想使用模型预测一组特定变量值的生存概率。我怎么做?为了给你一些上下文,这里是代码:

weibul1=survival::survreg(survival::Surv(weibul$TIS,weibul$Survival) ~ weibul$ADT + weibul$NumberOfFreezeThawCycles + weibul$ADTT + weibul$NumberOfSnowfalls + weibul$Skew, weights = weibul$Quantity,  data = weibul[weibul$Age > 0,], dist = "weibull")
summary(weibul1) 

#plotting Weibull AFT; Gamma = 1/weibul1$Scale -- survreg gives log sigma and not sigma as output; Intercept = 1/weibul1$coefficients[1]
plot(weibul$Age,1-pweibull(weibul$Age,1/(weibul1$scale),exp(weibul1$coefficients[1])),xlab = 'Age', ylab='Survival Probability')

我想做的是给出ADT,ADTT,Age等的值,找到生存概率。我正在使用R中的survival包。所以,我使用predict使用以下代码:

covariates = list(Age = 26.68, ADT=5267, ADTT=763.37, NumberOfSnowfalls=14.88 , NumberOfFreezeThawCycles=56.34, Skew = 13.39)
predict(weibul1, newdata=covariates,  type="quantile", p=(1:98)/100)

plot(predict(weibul1, newdata=covariates,type="quantile",p=seq(.01,.99,by=.01)),seq(.99,.01,by=-.01),col="green")

但是,现在我看到一个错误:xy.coords(x,y,xlabel,ylabel,log)出错:   ' X'并且' y'长度不同

任何想法/建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

问题是x和y的长度不同。

尝试

length(predict(weibul1, newdata=covariates,  type="quantile", p=(1:1208)/100))

length((1:1208)/100)

他们应该是一样的。另外,你确定x和y是正确的吗?也许你反过来想要它们呢?