| Type: | Package | 
| Title: | Temporal Process Regression | 
| Version: | 0.3-3 | 
| Author: | Jun Yan <jun.yan@uconn.edu> | 
| Maintainer: | Jun Yan <jun.yan@uconn.edu> | 
| Description: | Regression models for temporal process responses with time-varying coefficient. | 
| Depends: | R (≥ 4.0), stats, lgtdl | 
| License: | GPL (≥ 3) | 
| NeedsCompilation: | yes | 
| Packaged: | 2022-10-17 00:50:48 UTC; junyan | 
| Repository: | CRAN | 
| Date/Publication: | 2022-10-17 07:10:02 UTC | 
Temporal Process Regression
Description
Fit regression models for temporal process responses with time-varying and time-independent coefficients.
Details
An overview of how to use the package, including the most important functions
Author(s)
Jun Yan <jun.yan@uconn.edu>
References
Fine, Yan, and Kosorok (2004): Temporal Process Regression. Biometrika.
Confidence Interval Plot
Description
Plotting time-varying coefficient with pointwise confidence.
Usage
ci.plot(x, y, se, level = 0.95, ylim = NULL, newplot = TRUE,
        fun = gaussian()$linkinv, dfun = gaussian()$mu.eta, ...)
Arguments
x | 
 the x coordinate  | 
y | 
 the y coordinate  | 
se | 
 the standard error of y  | 
level | 
 confidence level  | 
ylim | 
 the range of y axis  | 
newplot | 
 if TRUE, draw a new plot  | 
fun | 
 a transform function  | 
dfun | 
 the derivative of the tranform function  | 
... | 
 arguments to be passed to plot  | 
Author(s)
Jun Yan jun.yan@uconn.edu
rhDNase Data
Description
Randomized trial of rhDNase for treatment of cystic fibrosis
Usage
data(dnase)
Format
A data frame with 767 observations on the following 6 variables.
idsubject id
rxtreatment arm: 0 = placebo, 1 = rhDNase
fevforced expirotary volume, a measure of lung capacity
futimefollow time
iv1IV start time
iv2IV stop time
Details
During an exacerbation, patients received intravenous (IV) antibiotics and were considered unsusceptible until seven exacerbation-free days beyond the end of IV therapy.
A few subjects were infected at the time of enrollment, for instance a subject has a first infection interval of -21 to 7. We do not count this first infection as an "event", and the subject first enters the risk set at day 7.
Source
Therneau and Grambsch (2000). Modeling Survival Data: Extending the Cox model. Springer. http://www.mayo.edu/hsr/people/therneau/book/data/dnase.html
References
Yan and Fine (2008). Analysis of Episodic Data with Application to Recurrent Pulmonary Exacerbations in Cystic Fibrosis Patients. JASA.
Examples
## This example steps through how to set up for the tpr function.
## Three objects are needed:
##     1) response process (an object of "lgtdl")
##     2) data availability process (an object of "lgtdl")
##     3) a time-independent covariate matrix
data(dnase)
## extracting the unique id and subject level information
dat <- unique(dnase[,c("id", "futime", "fev", "rx")])
## construct temporal process response for recurrent enent
rec <- lapply(split(dnase[,c("id", "iv1", "futime")], dnase$id),
              function(x) {
                v <- x$iv1
                maxfu <- max(x$futime)
                ## iv1 may be negative!!!
                if (is.na(v[1])) c(0, maxfu + 1.0)
                else if (v[1] < 0) c(v[1] - 1, v[!is.na(v)], maxfu + 1.0)
                else c(0, v[!is.na(v)], maxfu + 1.0)
              })
yrec <- lapply(rec,
               function(x) {
                 dat <- data.frame(time=x, cov=1:length(x)-1)
                 len <- length(x)
                 dat$cov[len] <- dat$cov[len - 1]
                 as.lgtdl(dat)
               })
## construct temporal process response for accumulative days exacerbation
do1.acc <- function(x) {
  gap <- x$iv2 - x$iv1 + 1
  if (all(is.na(gap))) yy <- tt <- NULL
  else {
    gap <- na.omit(gap)
    yy <- cumsum(rep(1, sum(gap)))
    tt <- unlist(sapply(1:length(gap), function(i)
                        seq(x$iv1[i], x$iv2[i], by=1.0)))
  }
  yy <- c(0, yy, rev(yy)[1])
  if (!is.null(tt[1]) && tt[1] < 0)
    tt <- c(tt[1] - 1, tt, max(x$futime) + 1.0)
  else tt <- c(0, tt, max(x$futime) + 1.0)
  as.lgtdl(data.frame(time=tt, cov=yy))
}
yacc <- lapply(split(dnase[,c("id", "iv1", "iv2", "futime")], dnase$id),
              do1.acc)
## construct data availability (or at risk) indicator process
tu <- max(dat$futime) + 0.001
rt <- lapply(1:nrow(dat),
             function(i) {
               x <- dat[i, "futime"]
               time <- c(0, x, tu)
               cov <- c(1, 0, 0)
               as.lgtdl(data.frame(time=time, cov=cov))
             })
## time-independent covariate matrix
xmat <- model.matrix(~ rx + fev, data=dat)
## time-window in days
tlim <- c(10, 168)
good <- unlist(lapply(yrec, function(x) x$time[1] == 0))
## fully functional temporal process regression
## for recurrent event
m.rec <- tpr(yrec, rt, xmat[,1:3], list(), xmat[,-(1:3),drop=FALSE], list(),
             tis=10:160, w = rep(1, 151), family = poisson(),
             evstr = list(link = 5, v = 3))
par(mfrow=c(1,3), mgp=c(2,1,0), mar=c(4,2,1,0), oma=c(0,2,0,0))
for(i in 1:3) ci.plot(m.rec$tis, m.rec$alpha[,i], sqrt(m.rec$valpha[,i]))
## hypothesis test of significance
## integral test, covariate index 2 and 3
sig.test.int.ff(m.rec, idx=2:3, ncut=2)
sig.test.boots.ff(m.rec, idx=2:3, nsim=1000)
## constant fit
cfit <- cst.fit.ff(m.rec, idx=2:3)
## goodness-of-fit test for constant fit
gof.test.int.ff(m.rec, idx=2:3, ncut=2)
gof.test.boots.ff(m.rec, idx=2:3, nsim=1000)
## for cumulative days in exacerbation
m.acc <- tpr(yacc, rt, xmat[,1:3], list(), xmat[,-(1:3),drop=FALSE], list(),
             tis=10:160, w = rep(1, 151), family = gaussian(),
             evstr = list(link = 1, v = 1))
par(mfrow=c(1,3), mgp=c(2,1,0), mar=c(4,2,1,0), oma=c(0,2,0,0))
for(i in 1:3) ci.plot(m.acc$tis, m.acc$alpha[,i], sqrt(m.acc$valpha[,i]))
Temporal Process Regression
Description
Regression for temporal process responses and time-independent covariate. Some covariates have time-varying coefficients while others have time-independent coefficients.
Usage
tpr(y, delta, x, xtv=list(), z, ztv=list(), w, tis,
    family = poisson(),
    evstr = list(link = 5, v = 3),
    alpha = NULL, theta = NULL,
    tidx = 1:length(tis),
    kernstr = list(kern=1, poly=1, band=range(tis)/50),
    control = list(maxit=25, tol=0.0001, smooth=0, intsmooth=0))
Arguments
y | 
 Response, a list of "lgtdl" objects.  | 
delta | 
 Data availability indicator, a list of "lgtdl" objects.  | 
x | 
 Covariate matrix for time-varying coefficients.  | 
xtv | 
 A list of list of "lgtdl" for time-varying covariates with time-varying coefficients.  | 
z | 
 NOT READY YET; Covariate matrix for time-independent coefficients.  | 
ztv | 
 NOT READY YET; A list of list of "lgtdl" for time-varying covariates with time-independent coefficients.  | 
w | 
  Weight vector with the same length of   | 
tis | 
 A vector of time points at which the model is to be fitted.  | 
family | 
  Specification of the response distribution; see
  | 
evstr | 
 A list of two named components, link function and variance function. link: 1 = identity, 2 = logit, 3 = probit, 4 = cloglog, 5 = log; v: 1 = gaussian, 2 = binomial, 3 = poisson  | 
alpha | 
 A matrix supplying initial values of alpha.  | 
theta | 
 A numeric vector supplying initial values of theta.  | 
tidx | 
 indices for time points used to get initial values.  | 
kernstr | 
 A list of two names components: kern: 1 = Epanechnikov, 2 = triangular, 0 = uniform; band: bandwidth  | 
control | 
 A list of named components: maxit: maximum number of iterations; tol: tolerance level of iterations. smooth: 1 = smoothing; 0 = no smoothing.  | 
Details
This rapper function can be made more user-friendly in the future. For
example, evstr can be determined from the family argument.
Value
An object of class "tpr":
tis | 
 same as the input argument  | 
alpha | 
 estimate of time-varying coefficients  | 
beta | 
 estimate of time-independent coefficients  | 
valpha | 
 a matrix of variance of alpha at tis  | 
vbeta | 
 a matrix of variance of beta at tis  | 
niter | 
 the number of iterations used  | 
infAlpha | 
 a list of influence functions for alpha  | 
infBeta | 
 a matrix of influence functions for beta  | 
Author(s)
Jun Yan <jun.yan@uconn.edu>
References
Fine, Yan, and Kosorok (2004). Temporal Process Regression. Biometrika.
Yan and Huang (2009). Partly Functional Temporal Process Regression with Semiparametric Profile Estimating Functions. Biometrics.
Constant fit of coefficients in a TPR model
Description
Weighted least square estimate of a constant model for time-varying coefficients in a TPR model.
Usage
cst.fit.ff(fit, idx)
Arguments
fit | 
  a fitted object from   | 
idx | 
 the index of the  | 
Value
The estimated constant fit, standard error, z-value and p-value.
Author(s)
Jun Yan jun.yan@uconn.edu
References
Fine, Yan, and Kosorok (2004). Temporal Process Regression. Biometrika.
See Also
Significance and Goodness-of-fit Test of TPR
Description
Two kinds of tests are provided for inference on the coefficients in a fully functional TRP model: integral test and bootstrap test.
Usage
sig.test.int.ff(fit, chypo = 0, idx, weight = TRUE, ncut = 2)
sig.test.boots.ff(fit, chypo = 0, idx, nsim = 1000, plot = FALSE)
gof.test.int.ff(fit, cfitList = NULL, idx, weight = TRUE, ncut = 2)
gof.test.boots.ff(fit, cfitList = NULL, idx, nsim = 1000, plot = FALSE)
gof.test.boots.pf(fit1, fit2, nsim, p = NULL, q = 1)
Arguments
fit | 
  a fitted object from   | 
chypo | 
 hypothesized value of coefficients  | 
idx | 
 the index of the coefficients to be tested  | 
weight | 
 whether or not use inverse variation weight  | 
ncut | 
 the number of cuts of the interval of interest in integral test  | 
cfitList | 
  a list of fitted object from   | 
nsim | 
 the number of bootstrap samples in bootstrap test  | 
plot | 
 whether or not plot  | 
fit1 | 
 fit of H0 model (reduced)  | 
fit2 | 
 fit of H1 model (full)  | 
p | 
 the index of the time-varying estimation in fit2  | 
q | 
 the index of the time-independent estimation in fit1  | 
Value
Test statistics and their p-values.
Author(s)
Jun Yan jun.yan@uconn.edu
References
Fine, Yan, and Kosorok (2004). Temporal Process Regression. Biometrika.
See Also
Examples
## see ?tpr