predictSE {AICcmodavg} | R Documentation |
Computing Predicted Values and Standard Errors
Description
Function to compute predicted values based on linear predictor and associated standard errors from various fitted models.
Usage
predictSE(mod, newdata, se.fit = TRUE, print.matrix = FALSE, ...)
## S3 method for class 'gls'
predictSE(mod, newdata, se.fit = TRUE, print.matrix =
FALSE, ...)
## S3 method for class 'lme'
predictSE(mod, newdata, se.fit = TRUE, print.matrix =
FALSE, level = 0, ...)
## S3 method for class 'mer'
predictSE(mod, newdata, se.fit = TRUE, print.matrix =
FALSE, level = 0, type = "response", ...)
## S3 method for class 'merMod'
predictSE(mod, newdata, se.fit = TRUE, print.matrix =
FALSE, level = 0, type = "response", ...)
## S3 method for class 'lmerModLmerTest'
predictSE(mod, newdata, se.fit = TRUE, print.matrix =
FALSE, level = 0, ...)
## S3 method for class 'unmarkedFitPCount'
predictSE(mod, newdata, se.fit = TRUE,
print.matrix = FALSE, type = "response", c.hat = 1, parm.type =
"lambda", ...)
## S3 method for class 'unmarkedFitPCO'
predictSE(mod, newdata, se.fit = TRUE,
print.matrix = FALSE, type = "response", c.hat = 1,
parm.type = "lambda", ...)
Arguments
mod |
an object of class |
newdata |
a data frame with the same structure as that of the original data frame for which we want to make predictions. |
se.fit |
logical. If |
print.matrix |
logical. If |
level |
the level for which predicted values and standard errors are to be
computed. The current version of the function only supports
predictions for the populations excluding random effects (i.e.,
|
type |
specifies the type of prediction requested. This argument can take
the value |
c.hat |
value of overdispersion parameter (i.e., variance inflation factor)
such as that obtained from |
parm.type |
the parameter for which predictions are made based on the
N-mixture model of class |
... |
additional arguments passed to the function. |
Details
predictSE
computes predicted values and associated standard
errors. Standard errors are approximated using the delta method
(Oehlert 1992). Predictions and standard errors for objects of
gls
class and mixed models of lme
, mer
,
merMod
, lmerModLmerTest
classes exclude the
correlation or variance structure of the model.
predictSE
computes predicted values on abundance and standard
errors based on the estimates from an unmarkedFitPCount
or
unmarkedFitPCO
object. Currently, only predictions on
abundance (i.e., parm.type = "lambda"
) with the zero-inflated
Poisson distribution is supported. For other parameters or
distributions for models of unmarkedFit
classes, use
predict
from the unmarked
package.
Value
predictSE
returns requested values either as a matrix
(print.matrix = TRUE
) or list (print.matrix = FALSE
)
with components:
fit |
the predicted values. |
se.fit |
the standard errors of the predicted values (if |
Note
For standard errors with better properties, especially for small samples, one can opt for simulations (see Gelman and Hill 2007), or nonparametric bootstrap (Efron and Tibshirani 1998).
Author(s)
Marc J. Mazerolle
References
Efron, B., Tibshirani, R. J. (1998) An Introduction to the Bootstrap. Chapman & Hall/CRC: New York.
Gelman, A., Hill, J. (2007) Data Analysis Using Regression and Multilevel/Hierarchical Models. Cambridge University Press: New York.
Oehlert, G. W. (1992) A note on the delta method. American Statistician 46, 27–29.
See Also
gls
, lme
, glmer
,
simulate.merMod
, boot
,
parboot
, nonparboot
,
pcount
, pcountOpen
,
unmarkedFit-class
Examples
##Orthodont data from Pinheiro and Bates (2000) revisited
## Not run:
require(nlme)
m1 <- gls(distance ~ age, correlation = corCompSymm(value = 0.5, form = ~ 1 | Subject),
data = Orthodont, method= "ML")
##compare against lme fit
logLik(m1)
logLik(lme(distance ~ age, random = ~1 | Subject, data = Orthodont,
method= "ML"))
##both are identical
##compute predictions and SE's for different ages
predictSE(m1, newdata = data.frame(age = c(8, 10, 12, 14)))
detach(package:nlme)
## End(Not run)
##example with mallard data set from unmarked package
## Not run:
require(unmarked)
data(mallard)
mallardUMF <- unmarkedFramePCount(mallard.y, siteCovs = mallard.site,
obsCovs = mallard.obs)
##run model with zero-inflated Poisson abundance
fm.mall.one <- pcount(~ ivel + date ~ length + forest, mallardUMF, K=30,
mixture = "ZIP")
##make prediction
predictSE(fm.mall.one, type = "response", parm.type = "lambda",
newdata = data.frame(length = 0, forest = 0, elev = 0))
##compare against predict
predict(fm.mall.one, type = "state", backTransform = TRUE,
newdata = data.frame(length = 0, forest = 0, elev = 0))
##add offset in model to scale abundance per transect length
fm.mall.off <- pcount(~ ivel + date ~ forest + offset(length), mallardUMF, K=30,
mixture = "ZIP")
##make prediction
predictSE(fm.mall.off, type = "response", parm.type = "lambda",
newdata = data.frame(length = 10, forest = 0, elev = 0))
##compare against predict
predict(fm.mall.off, type = "state", backTransform = TRUE,
newdata = data.frame(length = 10, forest = 0, elev = 0))
detach(package:unmarked)
## End(Not run)