在使用R的生存分析中,Cox比例风险模型中“幸存”功能的目的是什么?

时间:2014-08-22 05:37:40

标签: r survival-analysis

我目前正在查看一份文件,声明使用Cox比例风险模型,您的响应变量为公式部分

coxph(formula, data=, weights, subset, 
      na.action, init, control, 
      ties=c("efron","breslow","exact"), 
      singular.ok=TRUE, robust=FALSE, 
      model=FALSE, x=FALSE, y=TRUE, tt, method, ...)

必须在公式部分中幸存()。

有人能告诉我surv()函数的作用吗?我理解它说它是一个生存对象,但我不确定它是否是必然需要的东西。谢谢!

2 个答案:

答案 0 :(得分:1)

在这种情况下,您只需阅读文档并在其中运行示例。 ? coxph中的第一个示例显示以下内容:

# Create the simplest test data set 
test1 <- list(time=c(4,3,1,1,2,2,3), 
              status=c(1,1,1,0,1,1,0), 
              x=c(0,2,1,1,1,0,0), 
              sex=c(0,0,0,0,1,1,1)) 
# Fit a stratified model 
coxph(Surv(time, status) ~ x + strata(sex), test1) 

显然,您需要将公式的左侧/响应部分作为Surv的输出(其中还有明确的文档供您阅读;请参阅?Surv)。如果你看看那个对象:

> str(Surv(test1$time,test1$status))
 Surv [1:7, 1:2] 4  3  1  1+ 2  2  3+
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:2] "time" "status"
 - attr(*, "type")= chr "right"

并了解它如何反映timestatus列中包含的信息:

> with(test1, cbind.data.frame(time, status, Surv(time,status)))
  time status Surv(time, status)
1    4      1                 4 
2    3      1                 3 
3    1      1                 1 
4    1      0                 1+
5    2      1                 2 
6    2      1                 2 
7    3      0                 3+

然后,为了回答您是否有必要的问题,您可以尝试在没有它的情况下运行coxph,看看会发生什么:

> coxph(time ~ x + strata(sex), test1) 
Error in coxph(time ~ x + strata(sex), test1) : 
  Response must be a survival object

答案 1 :(得分:1)

Surv()是一个创建生存对象的函数。对于生存分析,您需要随访时间(或时间相关变量的时间间隔)和个体的状态。显然,这是必然的。

您应首先阅读survival package documentation。我还建议您阅读这本关于生存分析的非常好的解释书:Survival Analysis: A Self-Learning Text