我有一个生存对象(S),我正在使用 R 中的 survreg 函数和 weibull 分布对其进行 weibull 拟合。
S = Surv(data$ValueX, data$ValueY)
W = Survreg(S ~ 1, data=data, dist="weibull")
如何提取本质上是一条线性线的 Weibull 拟合的 R 平方值?或者有没有计算相关系数值Rho的函数?
基本上,我想计算拟合优度。
我有一个生存对象(S),我正在使用 R 中的 survreg 函数和 weibull 分布对其进行 weibull 拟合。
S = Surv(data$ValueX, data$ValueY)
W = Survreg(S ~ 1, data=data, dist="weibull")
如何提取本质上是一条线性线的 Weibull 拟合的 R 平方值?或者有没有计算相关系数值Rho的函数?
基本上,我想计算拟合优度。
查看pam.censor
PAmeasures 包,它会产生类似 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)
对于没有协变量的卵巢数据,93% 的 R^2 很高,但该图确实表明系统性偏离线性,因此它可能不是真正的 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 包具有三个函数,可为 cox 比例风险模型( 和 )提供 r 平方类型OXS
统计Nagelk
信息XO
。