matlab,data,integration,splines

First of all, you should not use the same letter for a bunch of things; your code is pretty hard to read because one has to figure out what T means at every instance. Second, pure math helps: after a change of variables and simple computation, the double integral becomes...

This is when you get when you run the first example in ?cph of the rms-package: n <- 1000 set.seed(731) age <- 50 + 12*rnorm(n) label(age) <- "Age" sex <- factor(sample(c('Male','Female'), n, rep=TRUE, prob=c(.6, .4))) cens <- 15*runif(n) h <- .02*exp(.04*(age-50)+.8*(sex=='Female')) dt <- -log(runif(n))/h label(dt) <- 'Follow-up Time' e <-...