parse.par               package:Zelig               R Documentation

_S_e_l_e_c_t _a_n_d _r_e_s_h_a_p_e _p_a_r_a_m_e_t_e_r _v_e_c_t_o_r_s

_D_e_s_c_r_i_p_t_i_o_n:

     The 'parse.par' function reshapes parameter vectors for
     comfortability with the output matrix from
     'model.matrix.multiple'.  Use 'parse.par' to identify sets of
     parameters; for example, within optimization functions that
     require vector input, or within 'qi' functions that take matrix
     input of all parameters as a lump.

_U_s_a_g_e:

     parse.par(par, terms, shape = "matrix", eqn = NULL)

_A_r_g_u_m_e_n_t_s:

     par: the vector (or matrix) of parameters

   terms: the terms from either 'model.frame.multiple' or 
          'model.matrix.multiple'

   shape: a character string (either '"matrix"' or '"vector"') that
          identifies the type of output structure

     eqn: a character string (or strings) that identify the parameters
          that you would like to subset from the larger 'par' structure

_V_a_l_u_e:

     A matrix or vector of the sub-setted (and reshaped) parameters for
     the specified parameters given in '"eqn"'.   By default, 'eqn =
     NULL', such that all systematic components are selected. 
     (Systematic components have 'ExpVar = TRUE' in the appropriate 
     'describe.model' function.)  

     If an ancillary parameter (for which 'ExpVar = FALSE' in
     'describe.model') is specified in 'eqn', it is always returned as
     a vector (ignoring 'shape').  (Ancillary parameters are all
     parameters that have intercept only formulas.)

_A_u_t_h_o_r(_s):

     Kosuke Imai <kimai@princeton.edu>; Gary King <king@harvard.edu>;
     Olivia Lau <olau@fas.harvard.edu>; Ferdinand Alimadhi
     <falimadhi@iq.harvard.edu>

_S_e_e _A_l_s_o:

     'model.matrix.multiple', 'parse.formula' and the full Zelig manual
     at <URL: http://gking.harvard.edu/zelig>

_E_x_a_m_p_l_e_s:

     # 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)

