Learn R Programming

⚠️There's a newer version (2.0.6) of this package.Take me there.

logbin

logbin provides methods for performing relative risk regression by fitting log-link GLMs and GAMs to binomial data. As well as providing a consistent interface to use the usual Fisher scoring algorithm (via glm or glm2) and an adaptive barrier approach (via constrOptim), it implements EM-type algorithms that have more stable convergence properties than other methods.

An example of periodic non-convergence using glm (run with trace = TRUE to see deviance at each iteration):

require(glm2, quietly = TRUE)
data(heart)

start.p <- sum(heart$Deaths) / sum(heart$Patients)
t.glm <- system.time(
  fit.glm <- logbin(cbind(Deaths, Patients-Deaths) ~ factor(AgeGroup) + factor(Severity) + 
                      factor(Delay) + factor(Region), data = heart,
                    start = c(log(start.p), -rep(1e-4, 8)), method = "glm", maxit = 10000)
)

The combinatorial EM method (Marschner and Gillett, 2012) provides stable convergence:

t.cem <- system.time(fit.cem <- update(fit.glm, method = "cem"))

…but it can take a while. Using an overparameterised EM approach removes the need to run (3^4 = 81) separate EM algorithms:

t.em <- system.time(fit.em <- update(fit.glm, method = "em"))

…while generic EM acceleration algorithms (from the turboEM package) can speed this up further still:

t.cem.acc <- system.time(fit.cem.acc <- update(fit.cem, accelerate = "squarem"))
t.em.acc <- system.time(fit.em.acc <- update(fit.em, accelerate = "squarem"))

Comparison of results:

#>         converged    logLik iterations   time
#> glm         FALSE -186.7366      10000   2.08
#> cem          TRUE -179.9016     445161 102.41
#> em           TRUE -179.9016       7403   1.62
#> cem.acc      TRUE -179.9016       7545  10.38
#> em.acc       TRUE -179.9016         90   0.24

An adaptive barrier algorithm can also be applied using method = "ab", with user-specified options via control.method: see help(logbin) for more details.

Semi-parametric regression using B-splines (Donoghoe and Marschner, 2015) can be incorporated by using the logbin.smooth function. See example(logbin.smooth) for a simple example.

Installation

Get the released version from CRAN:

install.packages("logbin")

Or the development version from github:

# install.packages("devtools")
devtools::install_github("mdonoghoe/logbin")

References

  • Donoghoe, M. W. and I. C. Marschner (2015). Flexible regression models for rate differences, risk differences and relative risks. International Journal of Biostatistics 11(1): 91–108.
  • Donoghoe, M. W. and I. C. Marschner (2018). logbin: An R package for relative risk regression using the log-binomial model. Journal of Statistical Software 86(9): 1–22.
  • Marschner, I. C. and A. C. Gillett (2012). Relative risk regression: reliable and flexible methods for log-binomial models. Biostatistics 13(1): 179–192.

Copy Link

Version

Install

install.packages('logbin')

Monthly Downloads

492

Version

2.0.4

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Mark W Donoghoe

Last Published

August 31st, 2018

Functions in logbin (2.0.4)

predict.logbin

Predict Method for logbin Fits
interpret.logbin.smooth

Interpret a logbin.smooth Formula
vcov.logbin

Calculate Variance-Covariance Matrix for a Fitted logbin Model Object
summary.logbin

Summarising logbin Model Fits
predict.logbin.smooth

Predict Method for logbin.smooth Fits
nplbin

Non-Positive Log-Binomial Regression
plot.logbin.smooth

Default logbin.smooth Plotting
B.Iso

Defining Smooths in logbin.smooth Formulae
logbin.control

Auxiliary for Controlling logbin Fitting
logbin

Log-Binomial Regression
logbin-package

Relative Risk Regression Using the Log-Binomial Model
anova.logbin

Analysis of Deviance for logbin Fits
conv.test

Convergence Test Based on L2 Norm
confint.logbin

Confidence Intervals for logbin Model Parameters
contr.isotonic.rev

Contrast Matrix for Reversed Isotonic Covariate
logbin.smooth

Smooth Log-Binomial Regression