ebrahim.gof: Goodness-of-Fit and Calibration Tests for Logistic Regression

Provides a unified battery of goodness-of-fit and calibration tests for binary logistic regression, runnable in a single call via 'run.all.gof()'. Around twenty-five tests spanning five decades of literature are aggregated and grouped by the departure each is built to detect: global and standardized statistics, partition tests such as Hosmer-Lemeshow, directed and covariate-space tests, smoothing and resampling tests, and calibration tests. Each is obtained from its own package where installed and attributed to its authors. The package also implements the author's own procedures for sparse data, where the Hosmer-Lemeshow test loses power: the omnibus Ebrahim-Farrington test 'ef.gof()', the directed 'edge.gof()' and its covariate-space variant 'cdef.gof()', the Cauchy-combination ensemble 'edges.gof()', 'DeepGOF-1' (a pretrained convolutional statistic whose level comes from the analyst's own parametric bootstrap rather than from the network), and 'legoft()' (a frozen-weight combination whose weights are fixed offline and ship frozen, so two analysts obtain the same p-value). For penalized (ridge) logistic regression, where shrinkage biases the fitted probabilities and invalidates the usual chi-squared references, the corrected statistics are referred either to a prepivoting bootstrap by 'shrink.gof()' or to a closed-form reference by 'calm.gof()', which needs a single fit and is validated for designs in which the number of predictors is a sizeable fraction of the sample size. For a model fitted elsewhere, 'run.all.external()' tests frozen predictions on validation data, and 'edge.stream()' updates the 'EDGE' test as validation records arrive. 'localize.gof()' and 'localize.external()' name which part of the model is wrong (the intercept, the slope, the link or the covariates) with familywise error control. For comparison, the projection test of Liu et al. is implemented as 'projection.gof()' and a fast implementation of the adaptive-partition test 'BAGofT' as 'bagoft.fast()'. For more details see Hosmer (1980) <doi:10.1080/03610928008827941> and Farrington (1996) <doi:10.1111/j.2517-6161.1996.tb02086.x>.

Package details

AuthorEbrahim Khaled Ebrahim [aut, cre] (ORCID: <https://orcid.org/0009-0006-7839-8778>), Jiawei Zhang [ctb, cph] (author of the BAGofT package code adapted in R/bagoft_fast.R), Jie Ding [ctb, cph] (author of the BAGofT package code adapted in R/bagoft_fast.R), Yuhong Yang [ctb, cph] (author of the BAGofT package code adapted in R/bagoft_fast.R)
MaintainerEbrahim Khaled Ebrahim <ebrahimkhaled@alexu.edu.eg>
LicenseGPL-3
Version2.10.0
URL https://ebrahimkhaled.github.io/ebrahim.gof/  https://github.com/ebrahimkhaled/ebrahim.gof 
Package repositoryView on CRAN
Installation Install the latest version of this package by entering the following in R:
install.packages("ebrahim.gof")

Try the ebrahim.gof package in your browser

Any scripts or data that you put into this service are public.

ebrahim.gof documentation built on Oct. 11, 2026, 5:07 p.m.