createX {bayesm} | R Documentation

## Create X Matrix for Use in Multinomial Logit and Probit Routines

### Description

`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.

### Usage

    createX(p, na, nd, Xa, Xd, INT = TRUE, DIFF = FALSE, base = p)

### Arguments

`p` | integer - number of choice alternatives
`na` | integer - number of alternative-specific vars in Xa
`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.

### Value

X matrix – n*(p-DIFF) x [(INT+nd)*(p-1) + na] matrix.

### Author(s)

Peter Rossi, Graduate School of Business, University of Chicago, Peter.Rossi@ChicagoGsb.edu.

### References

For further discussion, see Bayesian Statistics and Marketing by Rossi, Allenby and McCulloch.
http://gsbwww.uchicago.edu/fac/peter.rossi/research/bsm.html

### See Also

`rmnlIndepMetrop`, `rmnpGibbs`

### Examples

    na=2; nd=1; p=3
    vec=c(1,1.5,.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)

[Package bayesm version 2.0-8 Index]