Monday, June 28, 2010
Thursday, June 24, 2010
A few words describing population projection
Projection in demography is calculating survivors down cohort lines of those living at a given point in time, calculating births in each successive period, and adding a suitable allowance for migration. Of the various ways of looking at population dynamics, the one most convenient for the present purpose is the matrix approach (Chapter 7). Such calculations were used, before Leslie (1945) expressed them in matrix form, by Cannan (1895), Bowley (1924), and especially Whelpton (1936).
----------------------------------------------Page 272, Applied Mathematical Demography
Here is some intro. materials, implemented in Stata. Even though I have been using Stata for a long time, I have never spent any timing learning Mata, too bad.
----------------------------------------------Page 272, Applied Mathematical Demography
Here is some intro. materials, implemented in Stata. Even though I have been using Stata for a long time, I have never spent any timing learning Mata, too bad.
Wednesday, June 23, 2010
Using World Bank data in R
This R package makes it easy to use data and information from World Bank.
A simple JAGS demo
Here is a simple JAGS demo. The "progress.bar="gui"" option for the "coda.samples()" function is very convenient, but was not documented in the manual.
OpenBUGS and rbugs package
I just realized that OpenBUGS 3.10 has a native Linux version and it can be called directly from within R via the package "rbugs". OpenBUGS is probably closer to WinBUGS than JAGS, and it is always nice to alternatives!
It will be fun to do some benchmark test between OpenBUGS and JAGS.
It will be fun to do some benchmark test between OpenBUGS and JAGS.
Tuesday, June 22, 2010
Making glmmBUGS work with JAGS
To streamline the process of making glmmBUGS to work with JAGS, I made changes to the "writeBugsModel.R" and replaced all "inprod2" with "inprod" and "dflat()" with "dnorm(0.0,1.0E-6)". I will spend some time looking at other sources files and see if anything else should be changed.
JAGS' glm module
I did not realize that new GLM module for JAGS 2.0 can be so effective in reducing the running time. Using the example I posed it yesterday (an example from the glmmBUGS package), without loading the glm module, it took 20.223 minutes to draw 10,000 samples from the posterior distribution; with the glm module loaded, it took 11.869 to get the same results:
Without glm module:
user system elapsed
20.170 0.020 20.223
With glm module:
user system elapsed
11.040 0.000 11.869
Without glm module:
user system elapsed
20.170 0.020 20.223
With glm module:
user system elapsed
11.040 0.000 11.869
Dflat() prior
Here is an example of replacing the "dflat()" prior with "dnorm()" prior, yet without much explanation.
Monday, June 21, 2010
A question
I posted a question to the R-Mixed-Model mailing list but have not had any responses yet:
---------------------------------------------------------------------------------------
Here is the answer from Jens Åströ
---------------------------------------------------------------------------------------
Hi!
Not an expert by any means, but I got it to run by doing this:
1) change inprod2 to inprod in the model file (JAGS does not have
inprod2 function)
2) change ~dflat() to other uninformative prior, e.g.
~dnorm(0.0,1.0E-6) (Jags does not have dflat distribution)
3) specify/compile the model with e.g.
bac.jags<-jags.model("model.bug",data=bacrag$ragged,n.chains=4)
4) update it, update(bac.jags,1000)
5) Collect coda samples,
bacResult<-coda.samples(temp,names(getInits()),n.iter=10000,thin=10)
This seemed to converge well, (gelman.diag(bacResult))
Good luck
----------------------------------------------------------------------------------------
It works.
---------------------------------------------------------------------------------------
Dear All, I wonder if anybody has tried to make glmmBUGS work with JAGS. My attempt was not successful. Here is the simple example I copied from the glmmBUGS Vignettes: ------------------------ library(MASS) data(bacteria) bacterianew <- bacteria bacterianew$yInt = as.integer(bacterianew$y == "y") levels(bacterianew$trt) <- c("placebo", "drug", "drugplus") library(glmmBUGS) bacrag <- glmmBUGS(formula = yInt ~ trt + week, data=bacterianew, effects = "ID", modelFile="model.bug", family="bernoulli") names(bacrag$ragged) source("getInits.R") startingValues = bacrag$startingValues ------------------------ With WinBUGS, it runs well: ------------------------ library(R2WinBUGS) bacResult1 = bugs(bacrag$ragged, getInits, model.file="model.bug", n.chain=3, n.iter=2000, n.burnin=100, parameters=names(getInits()), n.thin=10) ------------------------ But with JAGS, I got error message "Error in FUN(50L[[1L]], ...) : invalid first argument" ------------------------ library(R2jags) jags.parms=names(getInits()) bacResult = jags(data=bacrag$ragged, n.chain=3, n.iter=2000, model.file=model.bug) ------------------------ I hope somebody can help me figuring out how to make this work. Many thanks. Best, Shige---------------------------------------------------------------------------------------
Here is the answer from Jens Åströ
---------------------------------------------------------------------------------------
Hi!
Not an expert by any means, but I got it to run by doing this:
1) change inprod2 to inprod in the model file (JAGS does not have
inprod2 function)
2) change ~dflat() to other uninformative prior, e.g.
~dnorm(0.0,1.0E-6) (Jags does not have dflat distribution)
3) specify/compile the model with e.g.
bac.jags<-jags.model("model.bug",data=bacrag$ragged,n.chains=4)
4) update it, update(bac.jags,1000)
5) Collect coda samples,
bacResult<-coda.samples(temp,names(getInits()),n.iter=10000,thin=10)
This seemed to converge well, (gelman.diag(bacResult))
Good luck
----------------------------------------------------------------------------------------
It works.
Saturday, June 19, 2010
Thursday, June 17, 2010
Sunday, June 13, 2010
The BIAS project
The BIAS project has some useful resources and information. And here is a course on spatial analysis using R.
Thursday, June 10, 2010
Wednesday, June 09, 2010
When Linux stopped responding ...
My laptop (running Ubuntu 9.04) stopped responding when I was running update and doing many other things. This post saved my day.
Sunday, June 06, 2010
Using Multilevel Models to Analyze Couple and Family Treatment Data: Basic and Advanced Issues
Rarely published papers make their source code open and well organized. Here is an exception.
Friday, June 04, 2010
Subscribe to:
Posts (Atom)