Dear All,
I am using rhierMnlRwMixture in the bayesm package for the analysis of data
from a choice experiment. I am trying to follow the margarine example set
out in the bayesm manual (p.28). However, after several attempts I keep
getting an error message with regards to my Z matrix as below.
> Error in Z %*% t(matrix(olddelta, ncol = nz)) :
>requires numeric/complex matrix/vector arguments
I think the problem is arising from the following lines in the code that I
am running. >Z=NULL
>nlgt=length(lgtdata)
>for(i in 1:nlgt) {
>Z=rbind(Z,Demog[Demog[,1]==lgtdata[[i]]$id,3:9])
I am creating a Z matrix from the variables included in the ?Demog?
spreadsheet columns 3 to 9 which includes the demographic variables of the
respondents. Then the rbind matches these columns with the ids in the
lgtdata (which contains the choice attributes). I am not sure if I am
interpreting this code correctly or if I need to amend it. Can anyone help
me with the interpretation of the below and whether I would need to specify
it differently?
Also below is the full code that I am running.
select= c(1,2,3)
id=levels(as.factor(ChoiceAtt[,1]))
lgtdata=NULL
nlgt=length(id)
p=length(select)
ind=1
for (i in 1:nlgt) {
nobs=sum(ChoiceAtt[,1]==id[i])
data=ChoiceAtt
y=data[,2]
names(y)=NULL
X=createX(p=p,na=1,Xa=data[,3:5],nd=NULL,Xd=NULL,INT=TRUE,base=1)
lgtdata[[ind]]=list(y=y,X=X,id=id[i]); ind=ind+1
}
nlgt=length(lgtdata)
Z=NULL
nlgt=length(lgtdata)
for(i in 1:nlgt) {
Z=rbind(Z,Demog[Demog[,1]==lgtdata[[i]]$id,3:9])
}
Z=log(Z)
Z[,1]=Z[,1]-mean(Z[,1])
Z[,2]=Z[,2]-mean(Z[,2])
keep=5
R=5000
mcmc1=list(keep=keep,R=R)
out=rhierMnlRwMixture(Data=list(p=p,lgtdata=lgtdata,Z=Z),Prior=list(ncomp=1),Mcmc=mcmc1)
Many thanks for all your help and time.
Regards,
Elcin
--
View this message in context:
http://r.789695.n4.nabble.com/Problems-with-Z-in-rhierMnlRwMixture-using-bayesm-tp3717887p3717887.html
Sent from the R help mailing list archive at Nabble.com.