Page 1 of 1
DIC for single-level models?
Posted: Wed Apr 26, 2017 1:12 pm
by dimension3
Hi there,
To compare the model-fit of a single-level and a multilevel mode, I would like to use MCMC estimation for a single-level model to obtian a DIC estimate. Specifically, my model is
Code: Select all
runmlwin COUNT X, ///
level1(gid) ///
discrete(distribution(poisson) offset(lexposure)) nopause mlwinsettings(optimat)
Can I obtain a DIC for such a model? If I add
Code: Select all
mcmc(cc chain(5000) refresh(500) thin(10)) initsb(b) initsv(V) ///
for some reason, MLwiN crashes ("Windows promt: MLwiN stopped working"). As soon as I add another level, MCMC estimation works. Do I need to specify MCMC estimation differently when only fitting a single-level model?
Thanks for your help!
Benjamin
Re: DIC for single-level models?
Posted: Wed Apr 26, 2017 1:24 pm
by ChrisCharlton
If I change the first Poisson example in Chapter 11 of the MCMC guide from
http://www.bristol.ac.uk/cmm/software/r ... /examples/ to be single level it works correctly for me and reports a DIC:
Code: Select all
. use "http://www.bristol.ac.uk/cmm/media/runmlwin/mmmec1.dta", clear
. describe
Contains data from http://www.bristol.ac.uk/cmm/media/runmlwin/mmmec1.dta
obs: 354
vars: 8 21 Oct 2011 12:19
size: 5,664
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
storage display value
variable name type format label variable label
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
nation byte %9.0g nation
region byte %9.0g
county int %9.0g
obs int %9.0g
exp float %9.0g
cons byte %9.0g
uvbi float %9.0g
pcons byte %9.0g
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Sorted by:
.
. generate logexp = ln(exp)
.
. quietly runmlwin obs cons uvbi, ///
> level1(county:) ///
> discrete(distribution(poisson) offset(logexp)) nopause
.
. runmlwin obs cons uvbi, ///
> level1(county:) ///
> discrete(distribution(poisson) offset(logexp)) ///
> mcmc(chain(50000) refresh(500)) initsprevious nopause
MLwiN 3.0 multilevel model Number of obs = 354
Poisson response model
Estimation algorithm: MCMC
Burnin = 500
Chain = 50000
Thinning = 1
Run time (seconds) = 6
Deviance (dbar) = 3449.51
Deviance (thetabar) = 3447.55
Effective no. of pars (pd) = 1.96
Bayesian DIC = 3451.47
------------------------------------------------------------------------------
obs | Mean Std. Dev. ESS P [95% Cred. Interval]
-------------+----------------------------------------------------------------
cons | -.0701726 .0109846 9069 0.000 -.0916578 -.0485091
uvbi | -.0572096 .0026464 9120 0.000 -.0624605 -.0521433
------------------------------------------------------------------------------
It is therefore likely that your problem is due to the data that you are using. Can you provide more information regarding this? Have you tried removing the
mlwinsettings(optimat) setting as it may be that MLwiN needs a larger matrix size for the single-level model.
Re: DIC for single-level models?
Posted: Wed Apr 26, 2017 3:59 pm
by dimension3
Hi Chris,
thanks so much for the quick answer. Your comment regarding mlwinsettings(optimat) solved my problem. This option needs to be specified in the model that is estimated with maximum likelihood to generate the initial values and the model that estimates the DIC. In fact, also not specifying this option works but it is definitely wrong to only specify it in the 2nd model like I did.