compare( Ass.C , Ass.A , func=WAIC)
compare( Ass.C , Ass.A , func=PSIS)
I got that error for both of them
Error in if (left == var) { : the condition has length > 1
compare( Ass.C , Ass.A , func=WAIC)
compare( Ass.C , Ass.A , func=PSIS)
I got that error for both of them
Error in if (left == var) { : the condition has length > 1
Hi, @May: It’d help to debug if you could give us a reproducible example that defines Ass.C
and Ass.A
and has the relevant includes.
My model is
xbar<-mean(D$Age)
D$Th14.z <- standardize(D$X14k)
D$cond <- D$Condition + 1
Ass.A<- quap(
alist(
D$Th14.z ~ dnorm( mu , sigma ) ,
mu <- a+b*(Age-xbar),
a~ dnorm( 0, 0.2) ,
b~dnorm(0,0.5),
sigma ~ dexp( 1 )
) , data=D )
and the other model is
Ass.C<- quap(
alist(
D$Th14.z ~ dnorm( mu , sigma ) ,
mu <- a[cond]+b[cond]*(Age-xbar),
a[cond]~ dnorm( 0, 0.2) ,
b[cond]~dnorm(0,0.5),
sigma ~ dexp( 1 )
) , data=D )
Thanks. Now we just need someone who knows the relevant package like @yuling or @avehtari or @Jonah.
That seems to be rethinking package quap function - RDocumentation
Looking at the documentation quap
doesn’t support WAIC
or PSIS
. I think it’s best to ask @richard_mcelreath (not sure if he visits here) for further help.
quap definitely supports PSIS and WAIC. I suspect the problem is that the model code references the data frame D inside the model formula, which leads to parsing errors. The data frame should never be named in the model formula. Examples below show first that PSIS works and then that referencing data frame in formula leads to error.
data(cars)
flist1 <- alist(
dist ~ dnorm( mu , sigma ) ,
mu <- a+b*speed ,
c(a,b) ~ dnorm(0,1) ,
sigma ~ dexp(1)
)
fit <- quap( flist1 , start=list(a=40,b=0.1,sigma=20) , data=cars )
PSIS(fit)
flist2 <- alist(
cars$dist ~ dnorm( mu , sigma ) ,
mu <- a+b*speed ,
c(a,b) ~ dnorm(0,1) ,
sigma ~ dexp(1)
)
fit <- quap( flist2 , start=list(a=40,b=0.1,sigma=20) , data=cars )
PSIS(fit)
Ah, I was mislead by the doc saying
Methods are defined for
coef
,summary
,logLik
,vcov
,nobs
,deviance
,link
, DIC, andshow
.
Here DIC is listed, but no PSIS or WAIC.
It finally works when I removed the reference for the data frame.
Thank you very much. I really appreciate your help.