首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中找到威布尔拟合(生存模型)的R平方值

在R中找到威布尔拟合(生存模型)的R平方值
EN

Stack Overflow用户
提问于 2018-07-03 02:24:22
回答 1查看 727关注 0票数 0

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

代码语言:javascript
复制
S = Surv(data$ValueX, data$ValueY)
W = Survreg(S ~ 1, data=data, dist="weibull") 

我如何提取威布尔拟合的R平方值,它本质上是一条线性直线?或者,是否有计算相关系数值Rho的函数?

基本上,我想计算拟合的优度。

EN

回答 1

Stack Overflow用户

发布于 2018-07-03 03:55:12

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

代码语言:javascript
复制
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平方来衡量该模型与威布尔模型的拟合程度。

代码语言:javascript
复制
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/

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

代码语言:javascript
复制
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比例风险模型(OXSNagelkXO)提供r方类型统计。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51141834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档