假设我有一个“肾导管”数据集。我正在尝试使用 Cox 模型对生存曲线进行建模。如果我考虑 Cox 模型:
我需要对基线危害的估计。通过使用内置的
survival
包 R 函数basehaz()
,我可以很容易地做到这一点:
library(survival)
data(kidney)
fit <- coxph(Surv(time, status) ~ age , kidney)
basehaz(fit)
但是,如果我想为给定的参数估计值编写基线危害的逐步函数,b
我该如何进行?我试过:
bhaz <- function(beta, time, status, x) {
data <- data.frame(time,status,x)
data <- data[order(data$time), ]
dt <- data$time
k <- length(dt)
risk <- exp(data.matrix(data[,-c(1:2)]) %*% beta)
h <- rep(0,k)
for(i in 1:k) {
h[i] <- data$status[data$time==dt[i]] / sum(risk[data$time>=dt[i]])
}
return(data.frame(h, dt))
}
h0 <- bhaz(fit$coef, kidney$time, kidney$status, kidney$age)
但这并没有给出与 相同的结果basehaz(fit)
。问题是什么?