Skip to content
Fitting semiparametric dynamic frailty models
R C++
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

This is an R package for fitting semiparametric dynamic frailty models with the EM algorithm. The hazard for individual j from cluster i is specified as: λi**j(t|Zi(t)) = Zi(t)exp(βxi**j(t))λ0(t). The model used here is described in detail in Putter & van Houwelingen (2015). The distribution of Zi(t) is described by two parameters: θ, that is an inverse-variability parameter of Zi(t) for a fixed t, and λ, that describes the autocorrelation of the process, so that for t1 ≤ t2 cor(Zi(t1),Zi(t2)) = exp(λ(t2 − t1)).

The estimation process is that for fixed (θ, λ) the maximized profile likelihood is calculated, i.e. maximized with respect to (β, λ0). This profile likelihood is finally maximized itself.


The development version from GitHub:


The following packages are needed to build dynfrail:

install.packages(c("RcppArmadillo", "tibble", "magrittr", "dplyr", "tidyr"))

The functioning of the package is described in the documentation of the main fitting function, dynfrail().


  • gamma, PVF, compount Poisson, inverse Gaussian distributions
  • flexible adjustment of estimation parameters
  • semiparametric Z(t) that changes values at every t or piecewise constant Z(t)
  • clustered survival data & recurrent events (calendar time or gaptime) ar supported


  • dynfrail() has a friendly syntax very similar to the frailtyEM package: next to a formula and data argument, the distribution argument is used to specify the distribution parameters and the control parameter is used for controling the precision of the estimation.
  • dynfrail_prep() and dynfrail_fit() are used internally by dynfrail() but are made user-available. The first one prepares the input of dynfrail() to make it suitable for the actual EM algorithm. The second one performs one EM algorithm for fixed (θ, λ) to estimate the maximum (β, λ0).


  • slow even for medium sized data sets. It is recommended to start with a small number of piecewise constant intervals and/or a subset of the data
  • no direct standard errors for (θ, λ).
You can’t perform that action at this time.