rscaleUsage {bayesm}  R Documentation 
rscaleUsage
implements an MCMC algorithm for multivariate ordinal data with scale usage heterogeniety.
rscaleUsage(Data, Prior, Mcmc)
Data 
list(x, k) 
Prior 
list(nu, V, mubar, Am, gs, Lambdanu, LambdaV) 
Mcmc 
list(R, keep, nprint, ndghk, e, y, mu, Sigma, sigma, tau, Lambda) 
n = nrow(x)
individuals respond to p = ncol(x)
questions;
all questions are on a scale 1, …, k for respondent i and question j,
x_{ij} = d if c_{d1} ≤ y_{ij} ≤ c_d where d = 1, …, k and c_d = a + bd + ed^2
y_i = mu + tau_i*iota + sigma_i*z_i with z_i ~ N(0, Sigma)
(tau_i, ln(sigma_i)) ~ N(φ, Lamda)
φ = (0, lambda_{22})
mu ~ N(mubar, Am^{1})
Sigma ~ IW(nu, V)
Lambda ~ IW(Lambdanu, LambdaV)
e ~ unif on a grid
It is highly recommended that the user choose the default prior settings. If you wish to change prior settings and/or the grids used, please carefully read the case study listed in the reference below.
Data = list(x, k)
x:  n x p matrix of discrete responses 
k:  number of discrete rating scale options 
Prior = list(nu, V, mubar, Am, gs, Lambdanu, LambdaV)
[optional]
nu:  d.f. parameter for Sigma prior (def: p + 3) 
V:  scale location matrix for Sigma prior (def: nu*I) 
mubar:  p x 1 vector of prior means (def: rep(k/2,p) ) 
Am:  p x p prior precision matrix (def: 0.01*I) 
gs:  grid size for sigma (def: 100) 
Lambdanu:  d.f. parameter for Lambda prior (def: 20) 
LambdaV:  scale location matrix for Lambda prior (def: (Lambdanu  3)*Lambda) 
Mcmc = list(R, keep, nprint, ndghk, e, y, mu, Sigma, sigma, tau, Lambda)
[only R
required]
R:  number of MCMC draws (def: 1000) 
keep:  MCMC thinning parameter  keep every keep th draw (def: 1) 
nprint:  print the estimated time remaining for every nprint 'th draw (def: 100, set to 0 for no print) 
ndghk:  number of draws for a GHK integration (def: 100) 
e:  initial value (def: 0) 
y:  initial values (def: x) 
mu:  initial values (def: apply(y,2,mean) , a plength vector) 
Sigma:  initial value (def: var(y) ) 
sigma:  initial values (def: rep(1,n) ) 
tau:  initial values (def: rep(0,n) ) 
Lambda:  initial values (def: matrix(c(4,0,0,.5),ncol=2) )

A list containing:
Sigmadraw 
R/keep x p*p matrix of Sigma draws – each row is the vector form of Sigma 
mudraw 
R/keep x p matrix of mu draws 
taudraw 
R/keep x n matrix of tau draws 
sigmadraw 
R/keep x n matrix of sigma draws 
Lambdadraw 
R/keep x 4 matrix of Lamda draws 
edraw 
R/keep x 1 vector of e draws 
tau_i, sigma_i are identified from the scale usage patterns in the p questions asked per respondent (# cols of x). Do not attempt to use this on datasets with only a small number of total questions.
Rob McCulloch (Arizona State University) and Peter Rossi (Anderson School, UCLA), perossichi@gmail.com.
For further discussion, see Case Study 3 on Overcoming Scale Usage Heterogeneity, Bayesian Statistics and Marketing by Rossi, Allenby, and McCulloch.
http://www.perossi.org/home/bsm1
if(nchar(Sys.getenv("LONG_TEST")) != 0) {R=1000} else {R=5} set.seed(66) data(customerSat) surveydat = list(k=10, x=as.matrix(customerSat)) out = rscaleUsage(Data=surveydat, Mcmc=list(R=R)) summary(out$mudraw)