1

我正在为具有两个子组的人口使用生存包。我需要每个组的 5 年 KM 存活率。我从以下位置得到这个值:

summary(survfit(Surv(survtime, vital)~subgroup)), time = 60) #in months

但是,我还想对两个五年生存率进行 chisq 测试。有没有一种简单的方法来使用生存包运行这个测试?

感谢您的任何建议和帮助!

4

2 回答 2

3

不确定这是否是正确的方法(请注意买家),但这里有一个示例,使用包含在包中的aml数据集作为示例数据。survival

library(survival)
amlsurv <- with(aml,survfit(Surv(time,status) ~ x))
summary(amlsurv ,time=20)

这导致time=20

Call: survfit(formula = Surv(time, status) ~ x)

                x=Maintained 
        time       n.risk      n.event
      20.000        7.000        3.000 ...

                x=Nonmaintained 
        time       n.risk      n.event
      20.000        6.000        5.000 ...

这两个选项都使用以下survdiff功能失败:

survdiff(summary(aml,time=20))
survdiff(aml,time=20)

现在尝试手动限制为 20 天:

aml$status.20 <- aml$status
# set 'deaths' with a time greater than 20 to be 'survivors'
aml$status.20[aml$status == 1 & aml$time > 20] <- 0
amlsurv <- (Surv(aml$time,aml$status.20) ~ aml$x)
summary(survfit(amlsurv))
# results are the same as above, Maintained=3 events,Nonmaintained=5 events

现在,您可以通过比较两组来获得 20 天限制的结果:

survdiff(amlsurv)
Call:
survdiff(formula = amlsurv)

                     N Observed Expected (O-E)^2/E (O-E)^2/V
aml$x=Maintained    11        3      4.3     0.392     0.874
aml$x=Nonmaintained 12        5      3.7     0.455     0.874

 Chisq= 0.9  on 1 degrees of freedom, p= 0.35 
于 2013-02-04T06:08:54.823 回答
0

您可以轻松使用survdiff()

s.fit <- survfit(Surv(survtime, vital)~subgroup)
survdiff(s.fit)
于 2013-04-30T09:42:35.733 回答