首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >精算生存分析,分为区间

精算生存分析,分为区间
EN

Stack Overflow用户
提问于 2012-08-09 21:09:20
回答 3查看 1.2K关注 0票数 4

我正在尝试在R中创建一个精算生存分析(我正在遵循一些实际的例子)。我认为最好的方法是使用survival包。所以就像这样:

代码语言:javascript
复制
library(survival)
surv.test <- survfit(Surv(TIME,STATUS), data=test)

然而,为了得到正确的答案,我需要将TIME变量划分为365天的间隔,我不太清楚如何做到这一点,以便它与给定的结果相匹配。

据我所知,在survfit函数中没有可以做到这一点的选项。我看了几个文档示例,它们都没有尝试创建阶梯式绘图(有一个type='interval'选项,但似乎做了一些不同的事情)。因此,我想我需要在应用survival函数之前对数据进行重新分组?

有什么想法吗?

附注:在SPSS中,这将是INTERVAL = THRU 10000 BY 365;在Stata intervals(365) ... connect(stairsteps)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-10 01:21:09

我猜您希望将TIME变量划分为多个区间,因为您希望绘制一条Kaplan-Meier曲线。在R中,这不是必需的,您可以只在survfit对象上调用plot。例如,

代码语言:javascript
复制
s=survfit(Surv(futime, fustat)~rx, data=ovarian)
plot(s)

我想我能更好地理解你的问题。你会看到一条粗黑线的原因是因为你有很多的审查,并且在每一个有审查的点上都绘制了一个+,你可以用mark.time=F来关闭它。(您可以在?survival:::plot.survfit中查看其他选项)

但是,如果你仍然想要按年汇总,只需将跟进时间除以365,然后四舍五入即可。ceiling用于四舍五入。这是一个在不同的时间级别进行聚合而不进行审查的示例。

代码语言:javascript
复制
par(mfrow=c(1,3))
plot(survfit(Surv(ceiling(futime), fustat)~rx, data=ovarian),col=c('blue','red'),main='Day',mark.time=F)
plot(survfit(Surv(ceiling(futime/30), fustat)~rx, data=ovarian),col=c('blue','red'),main='Month',mark.time=F)
plot(survfit(Surv(ceiling(futime/365), fustat)~rx, data=ovarian),col=c('blue','red'),main='Year',mark.time=F)
par(mfrow=c(1,1))

但我认为,在没有审查符号的情况下绘制Kaplan-Meier会很好,并提供更多的洞察力。

票数 1
EN

Stack Overflow用户

发布于 2012-08-10 15:07:32

万岁,我现在应该可以发布这些图片了:

1)这是R基本生存图目前的样子

2)这是它应该是什么样子(SPSS示例)

票数 0
EN

Stack Overflow用户

发布于 2012-08-10 21:11:01

这正是我错过的!谢谢!

解决方案:

代码语言:javascript
复制
vas.surv <- survfit(Surv(ceiling(TIME/365), STATUS)~1, conf.type="none", data=vasectomy)
plot(vas.surv, ylim=c(0.975,1), mark.time=F, xlab="Years", ylab="Cumulative Survival")

一个不错的做法是在x轴上显示日期,而不是在SPSS中显示年份(如在SPSS中),但我对此并不太在意。

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

https://stackoverflow.com/questions/11884191

复制
相关文章

相似问题

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