Ok it my turn to be confused. I have converted one of my programs into
WinBUGS and I was told by the program that the model was syntactically
correct. I got the rectangular array data loaded (BTW, you can not have
any extra variables in the data that are not in the model and the case
of the variable names matter). However, when I compile the model, I get
an error trap message (although once I got 'Multiple definitions of R
node). I may try writing out the R matrix (what a drag) to see if it
works.
Any help would be greatly appreciated! (I am under a deadline to submit
a paper).
Thanks, Brian
PS: Has anyone successfully used the trick with the equals function and
the loop indexes? Maybe that's my problem.
________________________________
Brian P. Griner, Ph.D.
Manager, Telemarketing Modeling
ORC International
PO Box 183
Princeton, NJ 08542
Phone: 908.281.3566
Fax: 908.281.5103
Email: [log in to unmask]
________________________________
# Prime Option Conjoint Analysis for Tier 2 Risk Group
# Random Coefficients Ordered Logit
{
for(p in 1:11629) {
RATE[p] ~ dcat(pr[,1:5]);
# Cumulative probability of > rating j
for (k in 1:4) {
logit(Q[p,k]) <- ( beta[SUBJECT[p],1] + delta[k] -
(
beta[SUBJECT[p],2]*NAPR1[p] +
beta[SUBJECT[p],3]*NAPR2[p] +
beta[SUBJECT[p],4]*NAPR4[p] +
beta[SUBJECT[p],5]*NAPR5[p] +
beta[SUBJECT[p],6]*NTIM1[p] +
beta[SUBJECT[p],7]*OAPR1[p] +
beta[SUBJECT[p],8]*OAPR2[p] +
beta[SUBJECT[p],9]*OAPR4[p] +
beta[SUBJECT[p],10]*NCSH2[p] +
beta[SUBJECT[p],11]*CRTE1[p] +
beta[SUBJECT[p],12]*CTRN1[p] +
beta[SUBJECT[p],13]*BAPR2[p] +
beta[SUBJECT[p],14]*BAPR3[p] )
)
}
# Probability of observing rating j
pr[p,1] <- Q[p,1];
for(k in 2:4) {
pr[p,k] <- Q[p,k] - Q[p,k-1];
}
pr[p,5] <- 1 - Q[p,4];
}
for(i in 1:401) {
beta[i,1:14] ~
dmnorm(mu.beta[1:14],d[1:14,1:14]);
}
# thresholds
delta[1] <- 0;
delta[2] <- g[1];
delta[3] <- g[1] + g[2];
delta[4] <- g[1] + g[2] + g[3];
# priors
g[1]~dnorm(0,0.01)I(0,);
g[2]~dnorm(0,0.01)I(0,);
g[3]~dnorm(0,0.01)I(0,);
for(k in 1:14) {
mu.beta[k]~dnorm(0,.01);
}
d[1:14,1:14]~dwish(R[14,14],14);
sigma2.beta[1:14,1:14] <- inverse(d[1:14,1:14],14,14);
for(i in 1:14) {
for(j in 1:14) {
R[i,j] <- equals(i,j);
}
}
}
Here is the informative error message I got.
TRAP 126 (not yet implemented)
BugsNodes.CreateLogical [00000793H]
.expression BugsParser.Node NIL
.res INTEGER 0
.statement BugsParser.Statement [01210D90H]
.string ARRAY 80 OF CHAR "" ...
.variable BugsParser.Variable [01210B40H]
.vector GraphNodes.Vector Fields
BugsNodes.IterateOverLoops [000006DAH]
.Do PROCEDURE BugsNodes.CreateLogical
.i INTEGER 15
.loop BugsParser.Iterator NIL
.lower INTEGER 1
.res INTEGER 0
.statement BugsParser.Statement [01210D90H]
.string ARRAY 80 OF CHAR "" ...
.upper INTEGER 14
BugsNodes.CreateLogicals [00000835H]
.res INTEGER 0
.source BugsParser.Statement [01210FC0H]
.statement BugsParser.Statement [01210D90H]
.string ARRAY 80 OF CHAR "" ...
BugsCompiler.WriteGraph [00000488H]
.dev GraphNodes.Node NIL
.deviance Dialog.String "" ...
.name BugsNames.Name NIL
.optimize BOOLEAN TRUE
.res INTEGER 0
.source BugsParser.Statement [01210FC0H]
.string ARRAY 80 OF CHAR "" ...
BugsCmds.WriteGraph [000004DAH]
.errorNum ARRAY 80 OF CHAR 0E942X, "t", 0E8C4X,
"t", 164BX, "·", 0E90CX, "t", 198X, "¶", 754X, 2184X ...
.numNodes INTEGER 14748147
.res INTEGER 0
.string ARRAY 80 OF CHAR "" ...
StdInterpreter.CallProc [000003B5H]
.a BOOLEAN FALSE
.b BOOLEAN FALSE
.c BOOLEAN FALSE
.ok BOOLEAN TRUE
.parType INTEGER 0
StdInterpreter.Command [00000ECAH]
.ptype INTEGER 0
StdInterpreter.Call [00000FF1H]
.ch CHAR 0X
.i INTEGER 20
.i0 INTEGER 0
.i1 INTEGER 0
.res INTEGER 0
.type INTEGER 3
.x INTEGER 0
Dialog.Call [00001A20H]
.res INTEGER 0
StdDialog.HandleItem [000007FCH]
.i StdDialog.Item [010F6C10H]
.res INTEGER 0
HostMenus.HandleCustomMenu [00001FA5H]
.i StdDialog.Item [010F6C10H]
.id INTEGER 385
.m HostMenus.Menu [010F64D0H]
HostMenus.MenuCommand [00002126H]
.i HostMenus.Item NIL
.id INTEGER 385
.lParam INTEGER 0
.old INTEGER 5390
.res INTEGER 0
.wParam INTEGER 385
.wnd INTEGER 3396
Kernel.Try [000031A0H]
.a INTEGER 3396
.b INTEGER 385
.c INTEGER 0
.h PROCEDURE HostMenus.MenuCommand
HostMenus.ApplWinHandler [000032C3H]
.Proc PROCEDURE NIL
.hit BOOLEAN FALSE
.lParam INTEGER 0
.message INTEGER 273
.oldp BOOLEAN FALSE
.pps POINTER NIL
.pr POINTER NIL
.res INTEGER 0
.s STRING "¡"
.w INTEGER 0
.wParam INTEGER 385
.wnd INTEGER 3396
<system> (pc=BFF73662H, fp=0074F8BCH)
<system> (pc=BFF92893H, fp=0074F8D0H)
<system> (pc=0074890BH, fp=BFF71A79H)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|