我有一个生存对象(S),我正在使用survreg函数和R中的威布尔分布对其进行威布尔拟合。
S = Surv(data$ValueX, data$ValueY)
W = Survreg(S ~ 1, data=data, dist="weibull") 我如何提取威布尔拟合的R平方值,它本质上是一条线性直线?或者,是否有计算相关系数值Rho的函数?
基本上,我想计算拟合的优度。
发布于 2018-07-03 03:55:12
看看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。
另一个想法是,对于没有协变量的威布尔模型,我们有S(t) = exp(- (λ* t)^p),因此log(-log(S(T)在log(t)中是线性的,因此我们可以使用相应回归的R平方来衡量该模型与威布尔模型的拟合程度。
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%是很高的,但该图确实表明系统偏离了线性,因此它可能不是真正的威布尔。
其他
不确定这是否令人感兴趣,但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软件包有三个函数,可为cox比例风险模型(OXS,Nagelk和XO)提供r方类型统计。
https://stackoverflow.com/questions/51141834
复制相似问题