Giả sử tôi có bộ dữ liệu "ống thông thận". Tôi đang cố gắng mô hình hóa đường cong sinh tồn bằng mô hình Cox. Nếu tôi xem xét mô hình Cox: tôi cần ước tính về rủi ro cơ bản. Bằng cách sử dụng chức năng gói R tích hợp , tôi có thể dễ dàng làm như thế này:
survival
basehaz()
library(survival)
data(kidney)
fit <- coxph(Surv(time, status) ~ age , kidney)
basehaz(fit)
Nhưng nếu tôi muốn viết một chức năng từng bước của mối nguy cơ bản cho một ước tính tham số nhất định, b
làm thế nào tôi có thể tiến hành? Tôi đã thử:
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)
Nhưng điều này không cho kết quả tương tự như basehaz(fit)
. Vấn đề là gì?