如何计算R中的基线风险?

问题描述 投票:0回答:1

我有一个 Cox 回归模型如下:


library(dplyr)
library(survival)
library(eha)

df <- data.frame(id = c("a", "a", "a", "b", "b", "c", "c", "c"),
                 sex = c("0", "0", "0", "1", "1", "0", "0", "0"),
                 start = c(0, 1, 5, 0, 7, 0, 2, 10),
                 stop = c(1, 5, 10, 7, 18, 2, 10, 19), 
                 status = c(1, 1, 0, 1, 0, 1, 1, 0))

  id sex start stop status
1  a   0     0    1      1
2  a   0     1    5      1
3  a   0     5   10      0
4  b   1     0    7      1
5  b   1     7   18      0
6  c   0     0    2      1
7  c   0     2   10      1
8  c   0    10   19      0

# Sex violates proportional hazards
logrank(Surv(start, stop, status), group = sex, data = df)

# Regression
fit <- coxph(Surv(start, stop, status) ~ strata(sex) + cluster(id), data = df)

cluster(id)
代表针对重复事件的 Anderson-Gill 模型 的实现。我想据此估计(非累积)风险函数。 我知道我可以使用以下方法获得累积基线危险:

# Cumulative hazard
basehaz(fit)

但是如何获得非累积风险呢?如有任何帮助,我们将不胜感激。

r dplyr survival-analysis cox-regression hazard
1个回答
0
投票

basehaz
函数将返回分层模型的结果。本质上,它将分析分解为特定阶层的危害:

df <- data.frame(id = c("a", "a", "a", "b", "b", "c", "c", "c"),
                  sex = c("0", "0", "0", "1", "1", "0", "0", "0"),
                  start = c(0, 1, 5, 0, 7, 0, 2, 10),
                  stop = c(1, 5, 10, 7, 18, 2, 10, 19), 
                  status = c(1, 1, 0, 1, 0, 1, 1, 0))
 
fit <- coxph(Surv(start, stop, status) ~ strata(sex) + cluster(id), data = df) 
basehaz(fit)
#------
  hazard time strata
1    0.5    1      0
2    1.0    2      0
3    1.5    5      0
4    2.0   10      0
5    2.0   19      0
6    1.0    7      1
7    1.0   18      1
© www.soinside.com 2019 - 2024. All rights reserved.