ordinal_superiority.bracl() now handles adjacent category logit
models with or without proportional odds.
brglm_fit() fails more gracefully, returning the fit based on the
latest estimates with warnings.
mdyplFit() returns Pearson residuals based on the original responses.
Fixed a bug that would cause an error when summary.mdyplFit() was called with hd_correction = TRUE in the presence of aliased parameters.
Fixed a bug on reported state evolution function values when init_iter = "only".
summary.mdyplFit() gets solve_se_dots argument to enable passing further arguments to the ... of solve_se().
Various improvements in the internals of solve_se().
sloe() ignores leverage 1 observations, when estimating the contaminated signal strength.
... in plrtest() is further arguments to be passed summary.mdyplFit().
Added the method solve_se_ridge() (not exported) for solving the state evolution equations for logistic ridge regression without intercept.
Documentation updates and fixes.
Provides mdyplFit() method for the glm() function, which estimates logistic regression models using maximum Diaconis-Ylvisaker prior penalized likelihood, and associated methods. Corrections to estimates, estimated standard errors, z statistics, and so on, can be applied using the developments Sterzinger and Kosmidis (2024, doi:10.48550/arXiv.2311.07419) by setting hd_correction = TRUE in the calls to the summary() and confint() methods for "mdyplFit" objects.
Added add1() and drop1() methods for mdyplFit objects.
Added MultipleFeatures data set, which is a subset of Duin (1998, doi:10.24432/C5HC70), as analyzed in Sterzinger and Kosmidis (2024, doi:10.48550/arXiv.2311.07419).
Documentation updates and documentation of new methods.
Added add1() and drop1() methods for brglmFit objects, so that step() does not default to the methods for glm objects (which would return nonsense results); thanks to jamiahuswalton@github (https://github.com/ikosmidis/brglm2/issues/33) for reporting the issue.
Sane staring values, graceful failing, updates to optimization procedure, and improvements to methods for brnb(); thanks to cperk@github (https://github.com/ikosmidis/brglm2/issues/31) for reporting issues with brnb() when infinite ML estimates are encountered.
Convergence of the brglm_fit iterations is now determined if the L^Inf norm of the step size (rather than the L^1 as it was previously) of the quasi-Fisher scoring procedure is less than epsilon (see ?brglm_control for the definition of epsilon). This is more natural as epsilon then determines directly the precision of the reported estimates and does not depend on their number.
brglm_control() now checks that the supplied value of max_step_factor is numeric and greater or equal to 1. If not, then it is set to the default value of 12.
Vignette updates
enzymes and hepatitis data sets (from the pmlr) to support examples and tests.expo() method for brglmFit and glm objects estimates the exponential of parameters of generalized linear models with maximum likelihood or various mean and median bias reduction methods (see ?expo for details). The expo() method is particularly useful for computing (corrected) estimates of the multiplicative impact of a unit increase on a covariate on the mean of a Poisson log-linear model (family = poisson("log") in glm()) while adjusting for other covariates, the odds ratio associated with a unit increase on a covariate in a logistic regression model (family = binomial("logit") in glm()) while adjusting for other covariates, the relative risk associated with a unit increase on a covariate in a relative risk regression model (family = binomial("log") in glm()) while adjusting for other covariates, among others.transformation != "identity" when type is ML or AS_median or AS_mixed.Moved unit tests to tinytest.
Moved documentation to markdown markup through roxygen2.
New vignette titled "Estimating the exponential of regression parameters using brglm2", to demonstrate the expo() method.
Various documentation fixes.
bracl objects with non-identifiable parameters.Work on output consistently from print() methods for summary.XYZ
objects; estimator type is now printed and other fixes.
Enriched warning when algorithm does not converge with more informative text.
Documentation fixes and updates
brnb() allows fitting negative binomial regression models using
implicit and explicit bias reduction methods. See vignettes for a
case study.simulate() method for objects of class brmultinom and braclordinal_superiority() method to estimate Agresti and Kateri
(2017)'s ordinal superiority measures, and compute bias corrections
for those.Wald.ratios = TRUE in
summary.brmultinom.vcov.bracl that would return an error if the
"bracl" object was computed using bracl() with parallel = TRUE
and one covariate.bracl() related to the handling or zero weights
that could result in hard-to-traceback errors.bracl() that could cause errors in fits with one
covariate.brglmFit() iteration returns last estimates that worked if
iteration fails.confint() was not returning anything when applied
to objects of class brmultinom.control glm().
argument was specified using the output from brglmControl() or
brglm_control().check_aliasing option in brglmControl() to tell
brglm_fit() to skip (check_aliasing = TRUE) or not
(check_aliasing = FALSE) rank deficiency checks (through a QR
decomposition of the model matrix), saving some computational effort.NA coefficients when brglmFit() was
called with a vector x or an x with no column names.confint method for brmulitnom objectsvcov.brglmFit() now uses vcov.summary.glm() and supports the
complete argument for controlling whether the variance covariance
matrix should include rows and columns for aliased parameters.detect_sepration() and check_infinite_estimates(), which
will be removed from brglm2 at version 0.8. New versions of
detect_sepration() and check_infinite_estimates() are now maintained
in the
detectseparation
R package.print.summary() for brmultinom and
bracl objects.detect_separation() now handles one-column model matrices correctly.brglmFit() can now do maximum penalized likelihood with powers of
the Jeffreys prior as penalty (type = "MPL_Jeffreys) for all
supported generalized linear models. See the help files of
brglmControl() and brglmFit() for details.?brglmFit.print.brmultinom() is now exported, so bracl and brmultinom
objects print correctly.response_adjustment argument in brglmControl() to allow
for more fine-tuning of the starting values when brglmFit() is
called with start = NULL.brglmControl().brglmFit() now works as expected with custom link functions (mean
and median bias reduction).brglmFit() respects the specification of the transformation
argument in brglmControl().brglmFit().quasi(), quasibinomial() and
quasibinomial() families and documentation update.bracl() for fitting adjacent category logit models for ordinal
responses using maximum likelihood, mean bias reduction, and median
bias reduction and associated methods (logLik, summary and so
on).predict() methods for brmultinom and bracl objects.
Added residuals() methods for brmultinom and bracl objects
(residuals of the equivalent Poisson log-linear model)mis() link functions for accounting for
misclassification in binomial response models (Neuhaus, 1999,
Biometrika).summary() method for brmultinom objects.NA dispersion for models with 0 df
resid.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 unknown
dispersion.check_infinite_estimates() now accepts brmultinom objects.singular.ok argument to brglmFit() and
detect_separation() methods in line with the update of
glm.fit().brglm_control().brglmControl() is now exported.slowit did nothing; now included in iteration.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).type = "AS_median".brglmFit(), brglm_fit(), detectSeparation(),
detect_separation(), brglm_control(), brglmControl(),
detectSeparationControl(), detect_separation_control(),
checkInfiniteEstimates(), check_infinite_estimates()).cho2inv().