| glmbayes-package | R Documentation |
glmbayes provides independent and identically distributed (iid) samples for
Bayesian generalized linear models (GLMs), serving as a Bayesian analogue to
the base glm() function. Supported likelihood families include Gaussian,
Poisson, Binomial, and Gamma models with log-concave likelihoods.
The main user-facing interface is glmb(), which mirrors the structure of
glm() and supports prior specification through pfamily objects. Lower-level
functions such as rglmb() and rGamma_reg() provide direct access to the
underlying samplers and can be used in block Gibbs sampling or hierarchical
model implementations.
For an introduction to the package, examples, and a complete set of vignettes, see:
All vignettes: browseVignettes("glmbayes")
The package includes extensive documentation on model fitting, prior construction, diagnostics, and optional GPU acceleration using OpenCL.
Releases: Current version 0.9.7 on CRAN (install.packages("glmbayes")).
Source is available from GitHub; R-Universe (https://knygren.r-universe.dev/glmbayes)
also builds binaries from that source.
Prebuilt CRAN and R-Universe binaries do not include OpenCL; GPU support
requires a source install once the host OpenCL environment is ready
(see vignette("Chapter-16", "glmbayes") for the three-step process).
IID posterior simulation for non-Gaussian GLMs and several non-conjugate
linear-model setups uses the likelihood-subgradient envelope method of
\insertCiteNygren2006glmbayes. Introductory material and worked
examples are in \insertCiteglmbayesChapter00,glmbayesChapterA01glmbayes;
estimation and simulation background in
\insertCiteglmbayesChapterA02,glmbayesSimmethods,glmbayesChapterA08glmbayes;
prior derivations for Prior_Setup() in
\insertCiteglmbayesChapterA12glmbayes;
GPU/OpenCL topics in
\insertCiteglmbayesChapter12,glmbayesChapterA10glmbayes.
In interactive sessions, attaching the package with library(glmbayes)
may emit a short packageStartupMessage
when has_opencl() is FALSE (typical for CRAN binaries) but a
GPU or OpenCL stack appears available on the host. OpenCL modelling paths
require a source install of glmbayes with OpenCL at compile time;
has_opencl() then reports whether that build succeeded. The note
confirms full CPU use and points to vignette("Chapter-16"). Machines
without a detectable GPU stack stay silent.
Set options(glmbayes.quiet_opencl_startup = TRUE) to suppress attach
notes (recommended for CI and R CMD check).
Kjell Nygren
Main interfaces: glmb, lmb,
rglmb, rlmb; low-level simulation API
simfuncs; envelope construction EnvelopeBuild.
Useful links:
R-Universe: https://knygren.r-universe.dev/glmbayes
set.seed(333)
## Dobson (1990) Page 93: Randomized Controlled Trial :
counts <- c(18,17,15,20,10,20,25,13,12)
outcome <- gl(3,1,9)
treatment <- gl(3,3)
print(d.AD <- data.frame(treatment, outcome, counts))
## Call to glm
glm.D93 <- glm(counts ~ outcome + treatment,
family = poisson())
## Using glmb
## Step 1: Set up Prior
ps=Prior_Setup(counts ~ outcome + treatment,family = poisson())
mu=ps$mu
V=ps$Sigma
# Step 2: Call the glmb function
glmb.D93<-glmb(counts ~ outcome + treatment, family=poisson(),
pfamily=dNormal(mu=mu,Sigma=V))
summary(glmb.D93)
## ----Printed_Views------------------------------------------------------------
## Printed view of the output from the glm function
print(glm.D93)
## Printed view of the output from the glmb function
print(glmb.D93)
## ----Methods---------------------------------------------------------------
## Methods for class "lm"
methods(class="lm")
## Methods for class "glm"
methods(class="glm")
## Methods for class "glmb"
methods(class="glmb")
## ----summary--------------------------------------------------------------
## summary output for the "glm" class
summary(glm.D93)
## summary output for the "glm" class
summary(glmb.D93)
## ----fitted outputs-------------------------------------------------------
## fitted outputs for the glm function
fitted(glm.D93)
## ----glmb fitted outputs------------------------------------------------------
## mean of fitted outputs for the glm function
colMeans(fitted(glmb.D93))
## ----predictions----------------------------------------------------------
## predictions for the glm function
predict(glm.D93)
## predictions for the glmb function
colMeans(predict(glmb.D93))
## ----residuals------------------------------------------------------------
## residuals for the glm function
residuals(glm.D93)
## residuals for the glmb function
colMeans(residuals(glmb.D93))
## ----vcov-----------------------------------------------------------------
## vcov for the glm function
vcov(glm.D93)
## vcov for the glm function
vcov(glmb.D93)
## ----confint--------------------------------------------------------------
## confint for the glm function
confint(glm.D93)
## confint for the glm function
confint(glmb.D93)
## ----AIC/DIC------------------------------------------------------------------
## AIC for the glm function (equivalent degrees of freedom and the AIC)
extractAIC(glm.D93)
## DIC for the glmb function (estimated effective number of parameters and the DIC)
extractAIC(glmb.D93)
## ----Deviance-------------------------------------------------------------
## Deviance for the glm function
deviance(glm.D93)
## Deviance for the glmb function
mean(deviance(glmb.D93))
## ----logLik---------------------------------------------------------------
## Deviance for the glm function
logLik(glm.D93)
## Deviance for the glmb function
mean(logLik(glmb.D93))
## ----Model Frame----------------------------------------------------------
## Model Frame for the glm function
model.frame(glm.D93)
## Model Frame for the glmb function
model.frame(glmb.D93$glm)
## ----formula--------------------------------------------------------------
## formula for the glm function
formula(glm.D93)
## ----formula-------------------------------------------------------------
## formula for the glmb function
formula(glmb.D93)
## ----family--------------------------------------------------------------
## family for the glm function
family(glm.D93)
## family for the glmb function
family(glmb.D93$glm)
## ----nobs-----------------------------------------------------------------
## nobs for the glm function
nobs(glm.D93)
## nobs for the glmb function
nobs(glmb.D93)
## ----show-----------------------------------------------------------------
## show for the glm function
show(glm.D93)
## show for the glmb function
show(glmb.D93)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.