On Sep 29, 2012, at 10:23 AM, Salma Wafi wrote: > Hello, > I am trying to generate random survival times by inverting the function, > S(t)= exp(b*F(t)),
This looks a bit confused. S(t) = 1- exp( -integral( h(t)dt ) where h(t) is the instantaneous hazard. That integral is the cumulative hazard function. > where b is constant and F(t) is some cumulative distribution function, let > say that F(t) is cdf of normal distribution or any others distributions. > > as we know that S(t) has uniform distribution on (0,1) We do? Seems dubious. That would seem especially unlikely if we assumed that S(t) =exp( b* CDF_normal(t)) > so we can write that > U= exp(b*F(t)), where U is uniform (0,1). Now to generat the time t, we do > log(U)= b* F(t) > (log(U))/ b = F(t) and then t = F((log(U))/b)^(-1). > > My Question is how we can get the inverse function for the cumulative > distribution F(t) in R?. Is there any package in R can help to invert some > function especially if this function is pdf or cdf?. You may want to look at the Quantile2 function in package Hmisc. It is designed to generate simulated times for varying hazard ratios when offered survival probabilities. Harrell also has a Lognorm2, a Gompertz2, and Weibull2 functions. -- David Winsemius, MD Alameda, CA, USA ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.