在R中找到Weibull拟合(生存模型)的R平方值

时间:2018-07-02 18:24:22

标签: r weibull goodness-of-fit survival

我有一个生存对象(S),我正在使用survreg函数和R中的weibull分布对其进行weibull拟合。

S = Surv(data$ValueX, data$ValueY)
W = Survreg(S ~ 1, data=data, dist="weibull") 

如何提取实际上是线性线的Weibull拟合的R平方值?还是有一个计算相关系数值Rho的函数?

基本上,我想计算适合度。

1 个答案:

答案 0 :(得分:2)

查看PAmeasures包中的pam.censor,它会产生类似R ^ 2的统计信息。使用生存包中的卵巢数据集:

library(PAmeasures)
library(survival)

fit.s <- survreg(Surv(futime, fustat) ~ age, data = ovarian, dist="weibull" )
p <- predict(fit.s, type = "response")
with(ovarian, pam.censor(futime, p, fustat))

对于具有年龄回归值的卵巢数据,我们得到的值仅为0.0915。

另一个想法是,对于没有协变量的Weibull模型,我们有S(t)= exp(-(lambda * t)^ p),因此log(-log(S(t)))在log(t ),因此我们可以使用相应回归的R平方来衡量模型与Weibull拟合的程度。

library(survival)

fit1 <- survfit(Surv(futime, fustat) ~ 1, data = ovarian)
sum1 <- summary(fit1, times = ovarian$futime)
fo <- log(-log(surv)) ~ log(time)
d <- as.data.frame(sum1[c("time", "surv")])
fit.lm <- lm(fo, d)
summary(fit.lm)$r.sq

plot(fo, d)
abline(fit.lm)

对于没有协变量的卵巢数据,R ^ 2为93%较高,但是该图确实暗示了线性度的系统偏离,因此它可能不是真正的威布尔(Weibull)。

其他

不确定是否对此感兴趣,但是eha程序包具有check.dist函数,该函数可用于将参数基准危害模型与Cox比例危害模型进行可视比较。请参阅文档以及: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5233524/

使用来自生存的卵巢数据集:

library(eha)
library(surival)

fit.c <- coxreg(Surv(futime, fustat) ~ age, data = ovarian)
fit.p <- phreg(Surv(futime, fustat) ~ age, data = ovarian, dist = "weibull")
check.dist(fit.c, fit.p)

survAUC软件包具有三个功能,可为考克斯比例风险模型(OXSNagelkXO)提供平方型统计量。