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 of dimension n*(p-DIFF) x [(INT+nd)*(p-1) + na].

### Note

`rmnpGibbs` assumes that the `base` alternative is the default.

### Author(s)

Peter Rossi, Anderson School, UCLA, perossichi@gmail.com.

### References

For further discussion, see Bayesian Statistics and Marketing by Rossi, Allenby, and McCulloch.
http://www.perossi.org/home/bsm-1

`rmnlIndepMetrop`, `rmnpGibbs`

### Examples

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

[Package bayesm version 3.1-4 Index]