[R] Error in basehaz function ?
    David Mas 
    David.Mas at u-paris2.fr
       
    Fri Jan 19 14:33:46 CET 2007
    
    
  
Hello R-users.
I believe that the way basehaz (in the survival package) compute  the
baseline hazard function is false.
I come to question this function when it gives me hazard probabilities
greater than 1.
Looking at the code I think I've localised the error :
hazard probability is computed as :
H <- -log(surv)
but it seems to me that hazard probabilities is rather an instantaneous
survival rate that could be computed this way :
H[i] <- 1 - surv[i] / surv[i-1]
Using this rule I achieve satisfiable results with the two following
functions :
surv2haz <- function(surv) {
  haz <- surv
  haz[1] <- 1 - surv[1]
  
  for(i in c(2:length(surv)))
    {
      haz[i] <- 1 - surv[i] / surv[i - 1]
    }
  return(haz)
}
haz2surv <- function(haz) {
  surv <- haz
  surv[1] <- 1 - haz[1]
  
  for(i in c(2:length(haz)))
    {
      surv[i] <- (1 - haz[i]) * surv[i-1]
    }
  return(surv)
}
If I'm right, wouldn't it be a good idea to change the basehaz
function, to avoid misleading the overconfident user (as I happen to be)
?
I hope this will help contributing to a wonderful tool that speed up my
understanding of statistical analysis and my research.
David
-- 
David Mas
ERMES-FRE 2887-CNRS
Université Pantheon-Assas Paris II
12, place du Pantheon
F-75230 Paris Cedex 05
Tel: +33 (0)1 44 41 89 91
Mob: +33 (0)6 84 15 77 67 
Fax: +33 (0)1 40 51 81 30
http://www.u-paris2.fr/ermes/
    
    
More information about the R-help
mailing list