| predict | R Documentation |
The following functions can be used to compute point predictions and/or various measures of uncertainty associated to such predictions:
* predict can be used for prediction of the response variable by its expected value obtained as (the inverse link transformation of) the linear predictor (\eta) and more generally for terms of the form X_n\beta+Z_nLv, for new design matrices X_n and Z_n.
* Various components of prediction variances and predictions intervals can also be computed using predict.
The get_... functions are convenient extractors for such components;
* get_predCov_var_fix extracts a block of a prediction covariance matrix. It was conceived for the specific purpose of computing the spatial prediction covariances between two “new” sets of geographic locations, without computing the full covariance matrix for both the new locations and the original (fitted) locations. When one of the two sets of new locations is fixed while the other varies, some expensive computations can be performed once for all sets of new locations, and be provided as the fix_X_ZAC.object argument. The preprocess_fix_corr extractor is designed to compute this argument.
## S3 method for class 'HLfit'
predict(object, newdata = newX, newX = NULL, re.form = NULL,
variances=list(), binding = FALSE, intervals = NULL,
level = 0.95, blockSize = 2000L, type = "response", verbose=NULL,
control=list(), na.action=na.omit, cluster_args=list(), ...)
get_predCov_var_fix(object, newdata = NULL, fix_X_ZAC.object, fixdata,
re.form = NULL, variances=list(disp=TRUE, residVar=FALSE, cov=FALSE),
control=list(), ...)
preprocess_fix_corr(object, fixdata, re.form = NULL,
variances=list(residVar=FALSE, cov=FALSE), control=list())
get_fixefVar(...)
get_predVar(..., variances=list(), which="predVar")
get_residVar(...)
get_respVar(...)
get_intervals(..., intervals="predVar")
object |
The return object of fitting functions |
newdata |
Either NULL, a matrix or data frame, or a numeric vector. If If |
newX |
equivalent to newdata, available for back-compatibility |
re.form |
formula for random effects to include. By default, it is NULL, in which case all random effects are included. If it is NA, no random effect is included. If it is a formula, only the random effects it contains are retained. The other variance components are removed from both point prediction and |
variances |
A list whose elements control the computation of different estimated variances.
In particular, |
intervals |
NULL or character string or vector of strings. Provides prediction intervals with nominal level |
which |
any of |
level |
Coverage of the intervals. |
binding |
If |
fixdata |
A data frame describing reference data whose covariances with variable |
fix_X_ZAC.object |
The return value of calling |
blockSize |
For data with many rows, it may be more efficient to perform some operations on slices of the data, and this gives the maximum number or rows of each slice. Further, parallelisation of computations over the slices is possible, as controlled by the |
type |
character string; The returned point predictions are on the response scale if |
control |
A list; a warning will direct you to relevant usage when needed. |
cluster_args |
Passed to |
verbose |
a list or a vector; The |
na.action |
Possible values of this argument are some of the functions dealing with |
... |
further arguments passed to or from other methods. For the |
See the predVar help page for information about the different concepts of prediction variances handled by spaMM (uncertainty of point prediction vs. of response) and about options controlling their computation.
If newdata is NULL, predict returns the fitted responses, including random effects, from the object.
Otherwise it computes new predictions including random effects as far as possible.
For spatial random effects it constructs a correlation matrix C between new locations and locations in the original fit. Then it infers the random effects in the new locations as C (L')^{-1} v (see spaMM for notation). For non-spatial random effects, it checks whether any group (i.e., level of a random effect) in the new data was represented in the original data, and it adds the inferred random effect for this group to the prediction for individuals in this group.
In the point prediction of the linear predictor, the unconditional expected value of u is assigned to the realizations of u for unobserved levels of non-spatial random effects (it is zero in GLMMs but not for non-gaussian random effects), and the inferred value of u is assigned in all other cases. Corresponding values of v are then deduced. This computation yields the classical “BLUP” or empirical Bayes predictor in LMMs, but otherwise it may yield less well characterized predictors, where “unconditional” v may not be its expected value when the rand.family link is not identity.
There are cases where prediction without a newdata argument may give results of different length than prediction with newdata=<original data>, as for predict. Notably, for multivariate-response fits, different subsets of lines of the data may be used for each submodel depending on the availability of all variables (including the response variable) for each submodel, and the resulting fitted values from each submodel will be used from prediction; while prediction with newdata does not check the availability of a response variable.
Intervals computations use the relevant variance estimates plugged in a Gaussian approximation, except for the simple linear model where it uses Student's t distribution.
Binding the predicted values to a single data frame of predictors is not implemented for multivariate-response fits. It would not generally be feasible in this case without various side effects, because there is a data frame of predictors for each submodels, each with possibly different predictors. Instead, binding of predictions for each submodel to their respective frames is attempted. This is an experimental feature which may not work for all options. If this fails, the returned object when binding=FALSE can nevertheless be used to achieve suitable forms of binding: in particular, the frames are returned as the "frame" attribute (a list of data frames), and a list, over submodels, of the predictions is returned as the "mv" attribute.
See Details in Tpoisson for questions specific to truncated distributions.
predict returns a matrix or data frame (according to the binding argument), with optional attributes including frame, intervals, predVar, fixefVar, residVar, and/or respVar, the last four holding one or more variance vector or covariance matrices. The further attribute fittedName contains the binding name, if any.
The frame is a data frame of predictors, and includes information about any na.action effect on the new data, except for predictions from multivariate response fits, where the frame is a list of data frames, each equivalent to the frame attribute for the univariate case. In the multivariate case, the additional mv attribute gives the predictions as a list with elements being the predictions for each submodel.
For multivariate response fits, the additional mv attribute gives the predictions as a list with elements for each submodel, and the frame is a list of data frames, each equivalent to the frame attribute for the univariate case.
The get_... extractor functions call predict and extract from its result the attribute implied by the name of the extractor. By default, get_intervals will return prediction intervals using predVar.
get_predVar with non-default which argument has the same effect as the get_... function whose name is implied by which.
The residVar function is an alternative extractor for residual variances, with additional functionalities compared to get_residVar. For example, it can return the phi dispersion parameter, distinct from the variance in particular for fits with Gamma family.
The predVar documentation provides additional information specific to prediction variances sensu lato, including the definitions of the four components of prediction variance, fixefVar, predVar, residVar and respVar, that can be requested through the variances argument.
The get_cPredVar function returns a bootstrap-corrected version of variances returned by get_predVar.
data("blackcap")
fitobject <- fitme(migStatus ~ 1 + Matern(1|longitude+latitude),data=blackcap,
fixed=list(nu=4,rho=0.4,phi=0.05))
predict(fitobject)
#### multiple controls of prediction variances
## (1) fit with an additional random effect
grouped <- cbind(blackcap,grp=c(rep(1,7),rep(2,7)))
fitobject2 <- fitme(migStatus ~ 1 + (1|grp) +Matern(1|longitude+latitude),
data=grouped, fixed=list(nu=4,rho=0.4,phi=0.05))
## (2) re.form usage to remove a random effect from point prediction and variances:
predict(fitobject2,re.form= ~ 1 + Matern(1|longitude+latitude))
## (3) comparison of covariance matrices for two types of new data
moregroups <- grouped[1:5,]
rownames(moregroups) <- paste0("newloc",1:5)
moregroups$grp <- rep(3,5) ## all new data belong to an unobserved third group
cov1 <- get_predVar(fitobject2,newdata=moregroups,
variances=list(linPred=TRUE,cov=TRUE))
moregroups$grp <- 3:7 ## all new data belong to distinct unobserved groups
cov2 <- get_predVar(fitobject2,newdata=moregroups,
variances=list(linPred=TRUE,cov=TRUE))
cov1-cov2 ## the expected off-diagonal covariance due to the common group in the first fit.
## Not run:
#### Other extractors:
#
fix_X_ZAC.object <- preprocess_fix_corr(fitobject,fixdata=blackcap)
#
# ... for use in multiple calls to get_predCov_var_fix():
#
get_predCov_var_fix(fitobject,newdata=blackcap[14,],fix_X_ZAC.object=fix_X_ZAC.object)
#### Prediction with distinct given phi's in different locations,
# as specified by a resid.model:
#
varphi <- cbind(blackcap,logphi=runif(14))
vphifit <- fitme(migStatus ~ 1 + Matern(1|longitude+latitude),
resid.model = list(formula=~0+offset(logphi)),
data=varphi, fixed=list(nu=4,rho=0.4))
#
# For respVar computation (i.e., response variance, often called prediction variance),
# one then also needs to provide the variables used in 'resid.model', here 'logphi':
#
get_respVar(vphifit,newdata=data.frame(latitude=1,longitude=1,logphi=1))
#
# For default 'predVar' computation (i.e., uncertainty in point prediction),
# this is not needed:
#
get_predVar(vphifit,newdata=data.frame(latitude=1,longitude=1))
#### point predictions and variances with new X and Z
#
if(requireNamespace("rsae", quietly = TRUE)) {
data("landsat", package = "rsae")
fitobject <- fitme(HACorn ~ PixelsCorn + PixelsSoybeans + (1|CountyName),
data=landsat[-33,])
newXandZ <- unique(data.frame(PixelsCorn=landsat$MeanPixelsCorn,
PixelsSoybeans=landsat$MeanPixelsSoybeans,
CountyName=landsat$CountyName))
predict(fitobject,newdata=newXandZ,variances = list(predVar=TRUE))
get_predVar(fitobject,newdata=newXandZ,variances = list(predVar=TRUE))
}
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.