Create X Matrix for Use in Multinomial Logit and Probit Routines
createX
makes up an X matrix in the form expected by Multinomial
Logit (rmnlIndepMetrop
and rhierMnlRwMixture
)
and Probit (rmnpGibbs
and rmvpGibbs
) routines.
Requires an array of alternative-specific variables and/or an
array of "demographics" (or variables constant across alternatives) which
may vary across choice occasions.
createX(p, na, nd, Xa, Xd, INT = TRUE, DIFF = FALSE, base=p)
p |
integer number of choice alternatives |
na |
integer number of alternative-specific vars in |
nd |
integer number of non-alternative specific vars |
Xa |
n x p*na matrix of alternative-specific vars |
Xd |
n x nd matrix of non-alternative specific vars |
INT |
logical flag for inclusion of intercepts |
DIFF |
logical flag for differencing wrt to base alternative |
base |
integer index of base choice alternative |
Note: na
, nd
, Xa
, Xd
can be NULL
to indicate lack of Xa
or Xd
variables.
X
matrix of dimension n*(p-DIFF) x [(INT+nd)*(p-1) + na].
rmnpGibbs
assumes that the base
alternative is the default.
Peter Rossi, Anderson School, UCLA, perossichi@gmail.com.
For further discussion, see Bayesian Statistics and Marketing by Rossi, Allenby, and McCulloch.
http://www.perossi.org/home/bsm-1
na=2; nd=1; p=3 vec = c(1, 1.5, 0.5, 2, 3, 1, 3, 4.5, 1.5) Xa = matrix(vec, byrow=TRUE, ncol=3) Xa = cbind(Xa,-Xa) Xd = matrix(c(-1,-2,-3), ncol=1) createX(p=p, na=na, nd=nd, Xa=Xa, Xd=Xd) createX(p=p, na=na, nd=nd, Xa=Xa, Xd=Xd, base=1) createX(p=p, na=na, nd=nd, Xa=Xa, Xd=Xd, DIFF=TRUE) createX(p=p, na=na, nd=nd, Xa=Xa, Xd=Xd, DIFF=TRUE, base=2) createX(p=p, na=na, nd=NULL, Xa=Xa, Xd=NULL) createX(p=p, na=NULL, nd=nd, Xa=NULL, Xd=Xd)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.