Marginal predictions (possibly class-specific) of a hlme, lcmm, multlcmm or Jointlcmm object in the natural scale of the longitudinal outcome(s) for a specified profile of covariates.

Description

For hlme and Jointlcmm objects, the function computes the predicted values of the longitudinal marker in each latent class for a specified profile of covariates. For lcmm and multlcmm objects, the function computes predicted values in the natural scale of the outcomes for a specified profile of covariates. For linear and threshold links, the predicted values are computed analytically. For splines and Beta links, a Gauss-Hermite or Monte-Carlo integration are used to numerically compute the predictions. In addition, for any type of link function, confidence bands (and median) can be computed by a Monte Carlo approximation of the posterior distribution of the predicted values.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
## S3 method for class 'lcmm'
predictY(x,newdata,var.time,methInteg=0,nsim=20,draws=FALSE,
ndraws=2000,na.action=1,...)
## S3 method for class 'hlme'
predictY(x,newdata,var.time,draws=FALSE,na.action=1,...)
## S3 method for class 'Jointlcmm'
predictY(x,newdata,var.time,methInteg=0,nsim=20,draws=FALSE,
ndraws=2000,na.action=1,...)
## S3 method for class 'multlcmm'
predictY(x,newdata,var.time,methInteg=0,nsim=20,draws=FALSE,
ndraws=2000,na.action=1,...)

Arguments

x

an object inheriting from class lcmm, hlme, Jointlcmm or multlcmm representing a general latent class mixed model.

newdata

data frame containing the data from which predictions are computed. The data frame should include at least all the covariates listed in x$Xnames2. Names in the data frame should be exactly x$Xnames2 that are the names of covariates specified in lcmm, hlme, Jointlcmm or multlcmm calls.

var.time

A character string containing the name of the variable that corresponds to time in the data frame (x axis in the plot).

methInteg

optional integer specifying the type of numerical integration required only for predictions with splines or Beta link functions. Value 0 (by default) specifies a Gauss-Hermite integration which is very rapid but neglects the correlation between the predicted values (in presence of random-effects). Value 1 refers to a Monte-Carlo integration which is slower but correctly account for the correlation between the predicted values.

nsim

For a lcmm, multlcmm or Jointlcmm object only; optional number of points used in the numerical integration with splines or Beta link functions. For methInteg=0, nsim should be chosen among the following values: 5, 7, 9, 15, 20, 30, 40 or 50 (nsim=20 by default). If methInteg=1, nsim should be relatively important (more than 200).

draws

optional boolean specifying whether median and confidence bands of the predicted values should be computed (TRUE) - whatever the type of link function. For a lcmm, multlcmm or Jointlcmm object, a Monte Carlo approximation of the posterior distribution of the predicted values is computed and the median, 2.5% and 97.5% percentiles are given. Otherwise, the predicted values are computed at the point estimate. By default, draws=FALSE.

ndraws

For a lcmm, multlcmm or Jointlcmm object only; if draws=TRUE, ndraws specifies the number of draws that should be generated to approximate the posterior distribution of the predicted values. By default, ndraws=2000.

na.action

Integer indicating how NAs are managed. The default is 1 for 'na.omit'. The alternative is 2 for 'na.fail'. Other options such as 'na.pass' or 'na.exclude' are not implemented in the current version.

...

further arguments to be passed to or from other methods. They are ignored in this function.

Value

An object of class predictY with values :

- pred : a matrix with the same rows (number and order) as in newdata.

For hlme objects and lcmm or Jointlcmm with draws=FALSE, returns a matrix with ng columns corresponding to the ng class-specific vectors of predicted values computed at the point estimate

For objects of class lcmm or Jointlcmm with draws=TRUE, returns a matrix with ng*3 columns representing the ng class-specific 50%, 2.5% and 97.5% percentiles of the approximated posterior distribution of the class-specific predicted values.

For objects of class multlcmm with draws=FALSE, returns a matrix with ng+1 columns: the first column indicates the name of the outcome which is predicted and the ng subsequent columns correspond to the ng class-specific vectors of predicted values computed at the point estimate

For objects of class multlcmm with draws=TRUE, returns a matrix with ng*3+1 columns: the first column indicates the name of the outcome which is predicted and the ng*3 subsequent columns correspond to the ng class-specific 50%, 2.5% and 97.5% percentiles of the approximated posterior distribution of the class-specific predicted values.

- times : the var.time variable from newdata

Author(s)

Cecile Proust-Lima, Viviane Philipps

See Also

lcmm, multlcmm, hlme, Jointlcmm

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#### Prediction from a 2-class model with a Splines link function
## Not run: 
## fitted model
m<-lcmm(Ydep2~Time*X1,mixture=~Time,random=~Time,classmb=~X2+X3,
subject='ID',ng=2,data=data_lcmm,link="splines",B=c(
-0.175,      -0.191,       0.654,      -0.443, 
-0.345,      -1.780,       0.913,       0.016, 
 0.389,       0.028,       0.083,      -7.349, 
 0.722,       0.770,       1.376,       1.653, 
 1.640,       1.285))
summary(m)
## predictions for times from 0 to 5 for X1=0
newdata<-data.frame(Time=seq(0,5,length=100),
X1=rep(0,100),X2=rep(0,100),X3=rep(0,100))
pred0 <- predictY(m,newdata,var.time="Time")
head(pred0)
## Option draws=TRUE to compute a MonteCarlo 
# approximation of the predicted value distribution 
# (quite long with ndraws=2000 by default)
\dontrun{
pred0MC <- predictY(m,newdata,draws=TRUE,var.time="Time")
}
## predictions for times from 0 to 5 for X1=1
newdata$X1 <- 1
pred1 <- predictY(m,newdata,var.time="Time")
## Option draws=TRUE to compute a MonteCarlo 
# approximation of the predicted value distribution 
# (quite long with ndraws=2000 by default)
\dontrun{
pred1MC <- predictY(m,newdata,draws=TRUE,var.time="Time")
}

## End(Not run)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.