Obtains posterior predictions under a fitted (Bayesian) multinomial probit
model. predict
method for class mnp
.
# S3 method for mnp
predict(
object,
newdata = NULL,
newdraw = NULL,
n.draws = 1,
type = c("prob", "choice", "order"),
verbose = FALSE,
...
)
predict.mnp
yields a list of class
predict.mnp
containing at least one of the following elements:
A three dimensional array of the Monte Carlo sample from the posterior predictive
distribution of the ordered preferences. The first dimension corresponds to
the rows of newdata
(or the original data set if newdata
is
left unspecified), the second dimension corresponds to the alternatives in
the choice set, and the third dimension indexes the Monte Carlo sample. If
n.draws
is greater than 1, then each entry will be an average over
these additional draws.
A two or three dimensional array of the
posterior predictive probabilities for each alternative in the choice set
being most preferred. The first demension corresponds to the rows of
newdata
(or the original data set if newdata
is left
unspecified), the second dimension corresponds to the alternatives in the
choice set, and the third dimension (if it exists) indexes the Monte Carlo
sample. If n.draws
is greater than 1, then the third diemsion exists
and indexes the Monte Carlo sample.
A matrix of the Monte Carlo
sample from the posterior predictive distribution of the most preferred
choice. The first dimension correspond to the rows of newdata
(or the
original data set if newdata
is left unspecified), and the second
dimension indexes the Monte Carlo sample. n.draws
will be set to 1
when computing this quantity of interest.
A matrix of covariates used for prediction
An output object from mnp
.
An optional data frame containing the values of the predictor
variables. Predictions for multiple values of the predictor variables can be
made simultaneously if newdata
has multiple rows. The default is the
original data frame used for fitting the model.
An optional matrix of MCMC draws to be used for posterior
predictions. The default is the original MCMC draws stored in object
.
The number of additional Monte Carlo draws given each MCMC
draw of coefficients and covariance matrix. The specified number of latent
variables will be sampled from the multivariate normal distribution, and the
quantities of interest will be calculated by averaging over these draws.
This will be particularly useful calculating the uncertainty of predicted
probabilities. The default is 1
.
The type of posterior predictions required. There are four
options: type = "prob"
returns the predictive probabilities of being
the most preferred choice among the choice set. type = "choice"
returns the Monte Carlo sample of the most preferred choice, and type
= "order"
returns the Monte Carlo sample of the ordered preferences,
logical. If TRUE
, helpful messages along with a
progress report on the Monte Carlo sampling from the posterior predictive
distributions are printed on the screen. The default is FALSE
.
additional arguments passed to other methods.
Kosuke Imai, Department of Government and Department of Statistics, Harvard University imai@Harvard.Edu
The posterior predictive values are computed using the Monte Carlo sample
stored in the mnp
output (or other sample if newdraw
is
specified). Given each Monte Carlo sample of the parameters and each vector
of predictor variables, we sample the vector-valued latent variable from the
appropriate multivariate Normal distribution. Then, using the sampled
predictive values of the latent variable, we construct the most preferred
choice as well as the ordered preferences. Averaging over the Monte Carlo
sample of the preferred choice, we obtain the predictive probabilities of
each choice being most preferred given the values of the predictor
variables. Since the predictive values are computed via Monte Carlo
simulations, each run may produce somewhat different values. The computation
may be slow if predictions with many values of the predictor variables are
required and/or if a large Monte Carlo sample of the model parameters is
used. In either case, setting verbose = TRUE
may be helpful in
monitoring the progress of the code.
mnp