y <- c(TRUE, FALSE, TRUE)
sampler <- create_sampler(y ~ 1, family=f_binomial())
# logistic binary regression is the default, and may also be
# specified as family="binomial"
sim <- MCMCsim(sampler, n.chain=2, n.iter=100, burnin=50, verbose=FALSE)
summary(predict(sim, newdata=data.frame(id=1)))
y <- c(0, 0, 1, 1, 0, 0, 0, 0, 1)
sampler <- create_sampler(y ~ 1, family=f_binomial(link="probit"))
sim <- MCMCsim(sampler, n.chain=2, n.iter=100, burnin=50, verbose=FALSE)
summary(predict(sim, newdata=data.frame(id=1)))
sampler <- create_sampler(c(0.2, 0.3, 0.5, 0.0) ~ 1, family=f_binomial(n.trial=10))
# is interpreted as
sampler <- create_sampler(c(2, 3, 5, 0) ~ 1, family=f_binomial(n.trial=10))
sim <- MCMCsim(sampler, n.chain=2, n.iter=100, burnin=50, verbose=FALSE)
summary(predict(sim, newdata=data.frame(id=1)))
n <- 1000
dat <- data.frame(
x = runif(n),
g = factor(sample(1:10, n, replace=TRUE)),
trials = sample(1:5, n, replace=TRUE)
)
v <- rnorm(10)
dat$y <- rbinom(n, size=dat$trials, prob=1 / (1 + exp(-(1 - dat$x + v[dat$g]))))
sampler <- create_sampler(y ~ x + (1|g), data=dat, family=f_binomial(n.trial = ~ trials))
# alternatively:
sampler <- create_sampler(cbind(y, trials - y) ~ x + (1|g), data=dat, family="binomial")
sim <- MCMCsim(sampler, store.all=TRUE, burnin=200, n.iter=300, n.chain=2, verbose=FALSE)
summ <- summary(sim)
plot(v, summ$gen2[, "Mean"]); abline(0, 1)
Run the code above in your browser using DataLab