Christopher Kelvin
2016-Jul-17 03:33 UTC
[R] R2WinBUGS with Multivariate Logistic Regression
Dear R-User,
I have written a simple code to analyze some data using Bayesian logistic
regression via the R2WinBUGS package. The code when run in WinBUGS stops WinBUGS
from running it and using the package returns no results also.
I attach herewith, the code and a sample of the dataset.
Any suggestion will be greatly appreciated.
Chris Guure
Biostatistics Department
University of Ghana
library(R2WinBUGS)
library(coda)model1<-function(){
for (i in 1:N) {
# likelihood function
ms[i] ~ dbin( p [ i ], N )
logit(p [ i ] ) <- alpha + bage*age[ i ] + bpam*pam[i ] + bpah*pah[i]
}
### prior for intercept
alpha ~ dnorm(0,0.0001)
# prior for slopes
bage ~ dnorm(0,0.0001)
bpam ~ dnorm(0,0.0001)
bpah ~ dnorm(0,0.0001)
# OR for alpha
or.age<-exp(bage)
# OR for hbp
or.pam <- exp(bpam)
# OR for fdm
or.pah <- exp(bpah)
}
data=cbind(ms=c(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0),
age=c(77, 83, 75, 78, 75, 83, 85, 80, 80, 85, 76, 77, 80, 76, 88, 77, 81, 78,
85, 81),
pam=c(0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1),
pah=c(1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0))
N=20
#### initial values
###
lineinits <- function(){
list(alpha=1,bage= 0.05, bpam=0.05, bpah=0.05)
}
## CODA output
lineout1 <- bugs(data, lineinits, c("bage",
"alpha","bpam", "bpah", "or.age",
"or.pam", "or.pah"), model1,n.iter = 11000, n.burnin = 1000,
n.chains = 2, codaPkg = T, DIC = TRUE)
### Posterior summaries
line.coda <- read.bugs(lineout1)
summary(line.coda)
On 17.07.2016 05:33, Christopher Kelvin via R-help wrote:> Dear R-User, > I have written a simple code to analyze some data using Bayesian logistic regression via the R2WinBUGS package. The code when run in WinBUGS stops WinBUGS from running it and using the package returns no results also.I'd suggest to reduce it to a WinBUGS only problem, try OpenBUGS (which iw more recent) and if it still fails, ask on the WinBUGS/OpenBUGS mailing list. A trap in WinBUGS is not an R related problem. Best, Uwe Ligges> > I attach herewith, the code and a sample of the dataset. > > Any suggestion will be greatly appreciated. > > Chris Guure > Biostatistics Department > > University of Ghana > > > > > library(R2WinBUGS) > library(coda)model1<-function(){ > for (i in 1:N) { > # likelihood function > ms[i] ~ dbin( p [ i ], N ) > logit(p [ i ] ) <- alpha + bage*age[ i ] + bpam*pam[i ] + bpah*pah[i] > > } > ### prior for intercept > alpha ~ dnorm(0,0.0001) > > # prior for slopes > bage ~ dnorm(0,0.0001) > bpam ~ dnorm(0,0.0001) > bpah ~ dnorm(0,0.0001) > > > # OR for alpha > or.age<-exp(bage) > # OR for hbp > or.pam <- exp(bpam) > # OR for fdm > or.pah <- exp(bpah) > > } > > data=cbind(ms=c(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0), > age=c(77, 83, 75, 78, 75, 83, 85, 80, 80, 85, 76, 77, 80, 76, 88, 77, 81, 78, 85, 81), > pam=c(0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1), > pah=c(1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0)) > N=20 > > #### initial values ### > lineinits <- function(){ > list(alpha=1,bage= 0.05, bpam=0.05, bpah=0.05) > } > > ## CODA output > lineout1 <- bugs(data, lineinits, c("bage", "alpha","bpam", "bpah", "or.age", "or.pam", "or.pah"), model1,n.iter = 11000, n.burnin = 1000, n.chains = 2, codaPkg = T, DIC = TRUE) > > > ### Posterior summaries > line.coda <- read.bugs(lineout1) > summary(line.coda) > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >