[R-sig-ME] Documentation for the glm module in jags/rjags?
Douglas Bates
bates at stat.wisc.edu
Sun Apr 3 17:43:46 CEST 2011
On Sun, Apr 3, 2011 at 9:53 AM, Wincent <ronggui.huang at gmail.com> wrote:
> Does any one run the example without problem?
> I download the example and try to run line and seeds from vol1. R crashes.
>> library(rjags)
> Loading required package: coda
> Loading required package: lattice
> module basemod loaded
> module bugs loaded
>> sessionInfo()
> R version 2.12.2 (2011-02-25)
> Platform: i386-pc-mingw32/i386 (32-bit)
> locale:
> [1] LC_COLLATE=Chinese (Simplified)_People's Republic of China.936
> [2] LC_CTYPE=Chinese (Simplified)_People's Republic of China.936
> [3] LC_MONETARY=Chinese (Simplified)_People's Republic of China.936
> [4] LC_NUMERIC=C
> [5] LC_TIME=Chinese (Simplified)_People's Republic of China.936
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
> other attached packages:
> [1] rjags_2.2.0-4 coda_0.14-2 lattice_0.19-17
> loaded via a namespace (and not attached):
> [1] grid_2.12.2
I didn't have any problem with the seeds examples
> library(rjags)
Loading required package: coda
module basemod loaded
module bugs loaded
> setwd("/var/tmp/classic-bugs/vol1/seeds/")
> source("../../R/Rcheck.R")
> load.module("glm")
module glm loaded
> d <- read.jagsdata("seeds-data.R")
> inits <- read.jagsdata("seeds-init.R")
> m <- jags.model("seeds.bug", d, inits, n.chains=2, n.adapt=2500)
Compiling model graph
Resolving undeclared variables
Allocating nodes
Graph Size: 167
> update(m, 2500)
|**************************************************| 100%
> x <- coda.samples(m, c("alpha0", "alpha1","alpha2","alpha12","sigma"),
+ n.iter=10000, thin=10)
|**************************************************| 100%
> source("bench-test1.R")
> check.fun()
alpha0 alpha1 alpha12 alpha2 sigma
0.027439417 -0.022922026 0.025170384 -0.065288678 0.001678632
OK
> m <- jags.model("seedszro.bug", d, inits, n.chains=2, n.adapt=2500)
Compiling model graph
Resolving undeclared variables
Allocating nodes
Graph Size: 190
> update(m, 2500)
|**************************************************| 100%
> x <- coda.samples(m, c("alpha0", "alpha1","alpha2","alpha12","sigma"),
+ n.iter=10000, thin=10)
|**************************************************| 100%
> source("bench-test2.R")
> check.fun()
alpha0 alpha1 alpha12 alpha2 sigma
-0.00216258 0.00196343 0.02732117 -0.01017020 -0.01976949
OK
> m <- jags.model("seedssig.bug", d, inits, n.chains=2, n.adapt=2500)
Compiling model graph
Resolving undeclared variables
Allocating nodes
Graph Size: 185
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100%
> update(m, 2500)
|**************************************************| 100%
> x <- coda.samples(m, c("alpha0", "alpha1","alpha2","alpha12","sigma"),
+ n.iter=10000, thin=10)
|**************************************************| 100%
> source("bench-test3.R")
> check.fun()
alpha0 alpha1 alpha12 alpha2 sigma
0.06600343 -0.01107823 0.02933205 -0.04117105 -0.03376439
OK
> m <- jags.model("seedsuni.bug", d, inits, n.chains=2, n.adapt=2500)
Compiling model graph
Resolving undeclared variables
Allocating nodes
Graph Size: 186
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100%
> update(m, 2500)
|**************************************************| 100%
> x <- coda.samples(m, c("alpha0", "alpha1","alpha2","alpha12","sigma"),
+ n.iter=10000, thin=10)
|**************************************************| 100%
> source("bench-test4.R")
> check.fun()
alpha0 alpha1 alpha12 alpha2 sigma
-0.04482849 0.05603658 -0.01204552 0.03653643 -0.00798445
OK
> On 1 April 2011 04:00, Martyn Plummer <plummerM at iarc.fr> wrote:
>>
>> I'm sorry, the whole project is somewhat under-documented at the moment,
>> but in addition the glm module is a work in progress.
>>
>> >From a user point of view, it should be fairly transparent. Using rjags,
>> you type
>>
>> R> loadModule("glm")
>>
>> before calling jags.model(). If your model contains a GLM then JAGS
>> should recognize it and provide samplers that do block updating of the
>> parameters in the linear predictor.
>>
>> To see if it is working, call list.samplers(m) where m is the JAGS model
>> object. The return value is a named list: the names correspond to the
>> sampling method, and the values are the names of the nodes that are
>> updated by that sampler. Samplers have names prefixed by the module
>> name, so if you have any entries in the sampler list called "glm::*"
>> then it is working.
>>
>> For some examples, you can download the classic bugs examples from
>> http://sourceforge.net/projects/mcmc-jags/files/Examples/2.x/
>>
>> The subdirectories "epil", "oxford", and "seeds" (in vol1) contain R
>> scripts that you can run using rjags, or scripts with the name test*.cmd
>> that you can run using jags in batch mode.
>>
>> Under the hood, most of the samplers use data augmentation to reduce the
>> model from a GLM to an LM, then the block updating relies on Tim Davis's
>> libraries for sparse matrix algebra (Very much following your lead here
>> but with a much more basic use of the sparse matrix algebra). Variance
>> parameters for the random effects are still a problem and can show poor
>> mixing even when everything else is working properly. As I said, it is
>> a work in progress.
>>
>> I hope this helps.
>> Martyn
>>
>> On Wed, 2011-03-30 at 13:11 -0500, Douglas Bates wrote:
>> > In reading about the glm module in JAGS it seems that it is suitable
>> > for sampling from the posterior distribution of the parameters in a
>> > generalized linear mixed model. However, I haven't been able to find
>> > documentation on how to use this module in particular. Section 5.6 of
>> > the JAGS User Manual for version 2.2.0 hints at abilities but doesn't
>> > really expand on how to use them.
>> >
>> > Can anyone point me to further documentation or examples?
>>
>>
>> -----------------------------------------------------------------------
>> This message and its attachments are strictly confidenti...{{dropped:8}}
>>
>> _______________________________________________
>> R-sig-mixed-models at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
>
>
> --
> Wincent Ronggui HUANG
> Sociology Department of Fudan University
> PhD of City University of Hong Kong
> http://asrr.r-forge.r-project.org/rghuang.html
>
More information about the R-sig-mixed-models
mailing list