"신장 카테터"데이터 세트가 있다고 가정하겠습니다. Cox 모델을 사용하여 생존 곡선을 모델링하려고합니다. Cox 모형을 고려하면 : 기준 위험 추정치가 필요합니다. 내장 패키지 R 함수 를 사용하면 다음과 같이 쉽게 할 수 있습니다.
survival
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)
. 무엇이 문제입니까?
@gung 이 질문에 도움 이 될 수 있습니까? 나는 며칠 동안 고투했다 ...
—
Haitao Du