[R-sig-ME] glmADMB mcmc output
Ben Bolker
bbolker at gmail.com
Tue Mar 13 21:02:14 CET 2012
Dean Castillo <dmcastil at ...> writes:
> I have run the ML and mcmc for my model. I am wondering if there is a
> simple transformation between the the ML coefficients and mcmc
> coefficients. Or in general how do I interpret the mcmc coefficients
> (I know how to interpret the ml coefficients). For example e^4.03 is
> not in the range of the HPD for beta1 of the mcmc
>
> nb1<-glmmadmb(D2_eggs~D2_female*(Bacteria+Enviro)+(1|Pop), data=data,
> family="nbinom1")
> > summary(nb1)
>
> Call:
> glmmadmb(formula = D2_eggs ~ D2_female * (Bacteria + Enviro) +
> (1 | Pop), data = data, family = "nbinom1")
>
[snip]
> Negative binomial dispersion parameter: 243.68 (std. err.: 48.422)
(This very large NB dispersion parameter is a little bit worrying.
Have you examined your data for weirdness/zero-inflation etc.? Do
you results look reasonable?)
> >nb_mcmc<-glmmadmb(D2_eggs~D2_female*(Bacteria+Enviro)+(1|Pop), data=data,
> family="nbinom1",mcmc=T, mcmc.opts=mcmcControl(mcmc=10000))
> > m<-as.mcmc(nb_mcmc$mcmc)
> > head(HPDinterval(m))
> lower upper
> beta.1 50.4190302 55.231164
> beta.2 6.3920598 9.033473
> beta.3 0.5165269 4.145737
> beta.4 1.7327276 5.167999
> beta.5 1.6289002 3.791544
> beta.6 -3.9886068 -2.057463
I haven't fully implemented this yet, but here is an embryonic
function for transforming an mcmc object (m) based on a glmmADMB fit
(fit). At the moment it only does some of the easy stuff
(transforming fixed-effect parameters to their original scale, and
variance parameters to the standard deviation scale)
There will be a bit more detail about this in the vignette in
the next release.
mcmc_transform <- function(m,fit) {
if (missing(fit)) {
fit0 <- fit
m <- fit$mcmc
fit <- fit0
}
if (!is(m,"mcmc")) stop("m must be an 'mcmc' object")
if (!is(fit,"glmmadmb")) stop("fit must a 'glmmadmb' object")
## zero-inflation
pz <- m[,"pz",drop=FALSE]
t_pz <- pz ## (not transformed)
## fixed effects
fixed <- m[,grep("^beta",colnames(m)),drop=FALSE]
t_fixed <- as.mcmc(fixed %*% fit$phi)
colnames(t_fixed) <- names(fixef(fit))
## variance parameters: log std dev
theta <- m[,grep("^tmpL",colnames(m)),drop=FALSE]
t_theta <- exp(theta)
## corr parameters ("offdiagonal elements of cholesky-factor of correlation
matrix")
corr <- m[,grep("^tmpL1",colnames(m)),drop=FALSE]
t_corr <- corr
## scale/overdispersion parameter
logalpha <- m[,grep("^log_alpha",colnames(m)),drop=FALSE]
t_alpha <- matrix(exp(logalpha),dimnames=list(NULL,"alpha"))
## random effects
re <- m[,grep("^u\\.[0-9]+",colnames(m)),drop=FALSE]
t_re <- re
mcmc(cbind(t_pz,t_fixed,t_theta,t_corr,t_alpha,t_re),
start=start(m),end=end(m),thin=frequency(m))
}
More information about the R-sig-mixed-models
mailing list