Estimation and inference from generalized linear models based on various methods for bias reduction. The 'brglmFit' fitting method can achieve reduction of estimation bias by solving either the mean bias-reducing adjusted score equations in Firth (1993)

**brglm2** provides tools for the estimation and inference from generalized linear models using various methods for bias reduction (Kosmidis, 2014). Reduction of estimation bias is achieved by solving either the mean-bias reducing adjusted score equations in Firth (1993) and Kosmidis & Firth (2009) or the median-bias reducing adjusted score equations in Kenne et al (2016), or through the direct subtraction of an estimate of the bias of the maximum likelihood estimator from the maximum likelihood estimates as prescribed in Cordeiro and McCullagh (1991)

In the special case of generalized linear models for binomial and multinomial responses, the adjusted score equations return estimates with improved frequentist properties, that are also always finite, even in cases where the maximum likelihood estimates are infinite (e.g. complete and quasi-complete separation).

**brglm2** also provides *pre-fit* and *post-fit* methods for the detection of separation and of infinite maximum likelihood estimates in binomial response generalized linear models (see `?detect_separation`

and `?check_infinite_estimates`

).

Install the development version from github:

# install.packages("devtools")devtools::install_github("ikosmidis/brglm2")

The workhorse function in **brglm2** is
`brglmFit`

,
which can be passed directly to the `method`

argument of the `glm`

function. `brglmFit`

implements a quasi Fisher
scoring procedure,
whose special cases result in a range of explicit and implicit bias
reduction methods for generalized linear models.

The iteration vignette and the paper
**arXiv:1710.11217** present the
iteration and give mathematical details for the bias-reducing
adjustments to the score functions for generalized linear models.

The classification of bias reduction methods into explicit and implicit is as given in Kosmidis (2014).

**brglm2** was presented by Ioannis Kosmidis at the useR! 2016 international R User conference at University of Stanford on 16 June 2016. The presentation was titled "Reduced-bias inference in generalized linear models" and can be watched online at this link.

Motivation, details and discussion on the methods that **brglm2** implements are provided in

Kosmidis, I, Kenne Pagui, E C, Sartori N. (2017). Mean and median bias reduction in generalized linear models. *arXiv*, **arXiv:1710.11217**

- Improved documentation examples
- Removed warning about observations with non-positive weights from brmultinom
- Updated email adrress for Ioannis Kosmidis in brglmFit

- brmultinom returns a fitted values matrix that respects the dimension of data
- Fixed bug on condition for NA dispersion for models with 0 df resid

- Eliminated errors from markdown chunks in multinomial vignette

- Compatibility with new version of enrichwith

- New email for Ioannis Kosmidis

- Added
`type = AS_mixed`

as an option to use**mean-bias reducing score functions**for the regression parameters and**median-bias reducing score functions**for the dispersion in models with uknown dispersion `check_infinite_estimates`

now accepts`brmultinom`

objects- Added
`singular.ok`

argument to`brglmFit`

and`detect_separation`

methods in line with the update of`glm.fit`

- less strict tolerance in
`brglm_control`

- Updates to help files
- Fixed typos in iteration vignette
- Added URL and bugreports in Description
- Added new tests

`brglmControl`

is now exported`slowit`

did nothing; now included in iteration

- The
`detect_separation`

`method`

for the`glm`

function can be used to check for separation in binomial response settings without fitting the model. This relies on a port of Kjell Konis'`safeBinaryRegression:::separator`

function (see ?detect_separation) - brglm2 provides estimation via
**median-bias reducing score functions**with`type = "AS_median"`

- brglm2 provides camel and underscored aliases for basic methods (
`brglmFit`

,`brglm_fit`

,`detectSeparation`

,`detect_separation`

,`brglm_control`

,`brglmControl`

,`detectSeparationControl`

,`detect_separation_control`

,`checkInfiniteEstimates`

,`check_infinite_estimates`

)

- Minor enhancements in the codebase
- The inverse expected information matrix is computed internally using cho2inv
- Internal changes to have more meaningful variable names
- Renamed detect_infinite* to check_infinite

- Fixed typo in f_{Y_i}(y) in iteration vignette (thanks to Eugene Clovis Kenne Pagui for spotting)

- First release