Estimation and inference when a longitudinal covariate is observed sparsely and intermittently, at times that do not line up with the times at which the outcome is measured. For a survival outcome, fits the transformed hazards family – proportional hazards, additive hazards, and the Box-Cox transformations between them – by the Sieve Maximum Kernel-weighted Log-likelihood Estimator (SMKLE) of Sun, Sun, Zhao and Cao (2025) doi:10.1080/01621459.2025.2476781 , with specialised kernel estimating-equation alternatives for the proportional and additive cases. For a longitudinal outcome recorded on its own time grid, fits generalised linear models by the kernel-weighted estimating equations of Cao, Zeng and Fine (2015) doi:10.1111/rssb.12086 , with either time-invariant or time-dependent coefficients. Half and full kernels, data simulation, and bandwidth selection by cross-validation are available throughout, and the numerical routines use 'Rcpp', 'RcppArmadillo' and the 'nloptr' C API.
Details
A longitudinal covariate is rarely measured at the time you need it. skmle
handles that mismatch directly, by weighting each observation according to
how far its measurement time sits from the time being modelled, rather than
carrying a value forward or smoothing the covariate and substituting it.
Two outcome types are covered.
Which function do I need?
Answer two questions.
First, what is the outcome?
- A time to an event
(death, relapse, failure), possibly censored – use the survival estimators. Your data is one long table with a row per covariate measurement.
- A repeatedly measured quantity
(a score, a lab value) recorded on its own schedule – use the asynchronous estimators. Your data is two tables, one per process.
Then pick within that group.
| Outcome | Situation | Function |
| Survival | Start here; Cox model | kee_cox() |
| Survival | Additive hazards instead | kee_additive() |
| Survival | Want the baseline hazard, or a model between the two | skmle() |
| Survival | Choose the bandwidth properly | skmle_cv() |
| Longitudinal | Start here; one constant effect | kee_async() |
| Longitudinal | Choose the bandwidth properly | kee_async_cv() |
| Longitudinal | The effect may change over time | kee_async_td() |
Every fitting function will pick a bandwidth for you if you do not supply
one, and will say in a message what it chose. That is enough to get a first
answer; the _cv() functions choose it from the data, which is what to
report.
Survival outcomes
skmle() fits the transformed hazards family by the Sieve Maximum
Kernel-weighted Log-likelihood Estimator of Sun, Sun, Zhao and Cao (2025).
The Box-Cox parameter s indexes the family: s = 0 is proportional
hazards, s = 1 is additive hazards, and other values interpolate.
kee_cox() and kee_additive() are faster specialised estimating equations
for the two named cases, and skmle_cv() selects the bandwidth by
subject-level cross-validation. Simulate with sim_skmle_data().
Asynchronous longitudinal outcomes
When the outcome is itself a sparsely observed longitudinal process, recorded
on a time grid that does not line up with the covariate's, kee_async() and
kee_async_td() fit generalised linear models by the kernel-weighted
estimating equations of Cao, Zeng and Fine (2015), with time-invariant
coefficients and with a coefficient curve \(\beta(t)\) respectively.
Simulate with sim_async_data().
Half and full kernels
Every estimator takes one_sided. A half kernel admits only measurements
strictly before the time being modelled, which is the risk-set restriction of
a hazard model and the causal reading of a covariate path; a full kernel
smooths from both sides. The survival estimators default to the half kernel,
as published; the asynchronous ones default to the full kernel, as published.
References
Sun, D., Sun, Z., Zhao, X. and Cao, H. (2025). Kernel meets sieve: transformed hazards models with sparse longitudinal covariates. Journal of the American Statistical Association 120, 2580-2591.
Cao, H., Zeng, D. and Fine, J. P. (2015). Regression analysis of sparse asynchronous longitudinal data. Journal of the Royal Statistical Society, Series B 77, 755-776.
Author
Maintainer: Dayu Sun dayusun@iu.edu [copyright holder]
Authors:
Dayu Sun dayusun@iu.edu [copyright holder]