model.matrix.multiple {Zelig} | R Documentation |
Use model.matrix.multiple
after parse.formula
to
create a design matrix for multiple-equation models.
model.matrix.multiple(object, data, shape = "compact", eqn = NULL, ...)
object |
the list of formulas output from |
data |
a data frame created with |
shape |
a character string specifying the shape of the outputed matrix. Available options are
|
eqn |
a character string or a vector of character strings identifying the equations from which to
construct the design matrix. The defaults to |
... |
additional arguments passed to |
A design matrix or array, depending on the options chosen in shape
, with appropriate terms
attributes.
Kosuke Imai <kimai@princeton.edu>; Gary King <king@harvard.edu>; Olivia Lau <olau@fas.harvard.edu>; Ferdinand Alimadhi <falimadhi@iq.harvard.edu>
parse.par
, parse.formula
and the full Zelig manual at
http://gking.harvard.edu/zelig
# Let's say that the name of the model is "bivariate.probit", and # the corresponding describe function is describe.bivariate.probit(), # which identifies mu1 and mu2 as systematic components, and an # ancillary parameter rho, which may be parameterized, but is estimated # as a scalar by default. Let par be the parameter vector (including # parameters for rho), formulae a user-specified formula, and mydata # the user specified data frame. # Acceptable combinations of parse.par() and model.matrix() are as follows: ## Setting up ## Not run: data(sanction) formulae <- cbind(import, export) ~ coop + cost + target fml <- parse.formula(formulae, model = "bivariate.probit") D <- model.frame(fml, data = sanction) terms <- attr(D, "terms") ## Intuitive option Beta <- parse.par(par, terms, shape = "vector", eqn = c("mu1", "mu2")) X <- model.matrix(fml, data = D, shape = "stacked", eqn = c("mu1", "mu2") eta <- X ## Memory-efficient (compact) option (default) Beta <- parse.par(par, terms, eqn = c("mu1", "mu2")) X <- model.matrix(fml, data = D, eqn = c("mu1", "mu2")) eta <- X ## Computationally-efficient (array) option Beta <- parse.par(par, terms, shape = "vector", eqn = c("mu1", "mu2")) X <- model.matrix(fml, data = D, shape = "array", eqn = c("mu1", "mu2")) eta <- apply(X, 3, ' ## End(Not run)