[R] [newbie] Cox Baseline Hazard
Daniel A. Powers
dpowers at mail.la.utexas.edu
Fri Feb 23 04:53:15 CET 2001
Meles --
Here are a couple of routines. One computes Aalen's estimate of the
cumulative hazard and the other a log-likelihood based on it
Cheers,
Dan
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Dan Powers
Associate Professor, Sociology
University of Texas at Austin
--snip
aalen <- function(coxfit)
{
#calculate Aalen's estimate of cum hazard
if(!inherits(coxfit,"coxph")) stop(
"argument must be a proportional hazard's fit")
event <- coxfit$y[,"status"] == 1
time <- coxfit$y[,"time"]
risk <- exp(coxfit$linear.predictor)
dt <- unique(time[event])
k <- length(dt)
lambda <- rep(0,k)
for(i in 1:k) {
lambda[i] <- sum(event[time==dt[i]])/sum(risk[time >= dt[i]])
}
data.frame(time=dt, lambda=lambda)
}
aalen.loglik <- function(coxfit)
{
# Calculate survival likelihood using Cox-Aalen Estimates
#
a <- aalen(coxfit)
event <- coxfit$y[,"status"] == 1
time <- coxfit$y[,"time"]
risk <- exp(coxfit$linear.predictors)
loglik <-0
for(i in 1:length(event)) {
if (event[i]) {
lambda <- risk[i] * a$lambda[a$time == time[i]]
loglik <- loglik + log(lambda)
}
loglik <- loglik - risk[i] * sum(a$lambda[a$time <= time[i]])
}
loglik
}
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list