tests/ipred-smalltest.R

library(ipred)
suppressWarnings(RNGversion("3.5.3"))

# check if SdiffKM computes
# 
# int_start^stop  (exp(-h*t) - c)^2 dt 
# 
# in the correct way 

# low-level interface needed
myfoo <- function(times, prob, h, window=0.0001) {
 .Call("SdiffKM", as.double(c(0, times)), 
        as.double(c(prob[1], prob)), as.double(c(h,
        window)), PACKAGE = "ipred")
}

# to compare with
mexp <- function(start, stop, haz, c=0) {
  foo <- function(t)
    exp(-2*haz*t)/(-2*haz) - 2*c*exp(-haz*t)/(-haz) + c^2*t
  foo(stop) - foo(start)
}
 

times <- seq(from=0.01, to=8, by=0.01)

for (myc in c(0,0.5,0.9)) {
  for (h in c(1,2,3)) {
    prob <- rep(myc, length(times))   
    a <- round(mexp(0, max(times), h, c=myc),7)
    b <- round(myfoo(times, prob, h), 7)
    stopifnot(all.equal(a,b))
  }
}

Try the ipred package in your browser

Any scripts or data that you put into this service are public.

ipred documentation built on March 31, 2023, 11:08 p.m.