Skip to content

Commit

Permalink
parameters() fails on binomial mgcv::gam (#1052)
Browse files Browse the repository at this point in the history
* parameters() fails on binomial mgcv::gam
Fixes #1051

* news. desc

* fix

* update snapshots

* include performance remotes

* styler
  • Loading branch information
strengejacke authored Dec 3, 2024
1 parent ac2eb02 commit eff54e5
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 4 deletions.
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Type: Package
Package: parameters
Title: Processing of Model Parameters
Version: 0.24.0.2
Version: 0.24.0.3
Authors@R:
c(person(given = "Daniel",
family = "Lüdecke",
Expand Down Expand Up @@ -224,4 +224,4 @@ Config/testthat/edition: 3
Config/testthat/parallel: true
Config/Needs/website: easystats/easystatstemplate
Config/rcmdcheck/ignore-inconsequential-notes: true
Remotes: easystats/datawizard
Remotes: easystats/datawizard, easystats/performance
9 changes: 9 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# parameters 0.24.1

## Bug fixes

* Fixed issue when printing `model_parameters()` with models from `mgcv::gam()`.

* Fixed issues due to breaking changes in the latest release of the *datawizard*
package.

# parameters 0.24.0

## Breaking Changes
Expand Down
2 changes: 1 addition & 1 deletion R/dominance_analysis.R
Original file line number Diff line number Diff line change
Expand Up @@ -571,7 +571,7 @@ dominance_analysis <- function(model, sets = NULL, all = NULL,
}

da_df_res <- datawizard::data_rename(
da_df_res,
da_df_res,
replacement = c(
"Parameter", "General_Dominance",
"Percent", "Ranks", "Subset"
Expand Down
7 changes: 6 additions & 1 deletion R/format.R
Original file line number Diff line number Diff line change
Expand Up @@ -887,9 +887,14 @@ format.parameters_sem <- function(x,
logit_model <- isTRUE(.additional_arguments(x, "logit_link", FALSE)) ||
isTRUE(attributes(x)$coefficient_name %in% c("Log-Odds", "Odds Ratio"))

# remove NA and infinite values from spurios coefficients
if (!is.null(spurious_coefficients)) {
spurious_coefficients <- spurious_coefficients[!is.na(spurious_coefficients) & !is.infinite(spurious_coefficients)] # nolint
}

# check for complete separation coefficients or possible issues with
# too few data points
if (!is.null(spurious_coefficients) && logit_model) {
if (!is.null(spurious_coefficients) && length(spurious_coefficients) && logit_model) {
if (any(spurious_coefficients > 50)) {
msg <- c(msg, "Some coefficients are very large, which may indicate issues with complete separation.") # nolint
} else if (any(spurious_coefficients > 15)) {
Expand Down
21 changes: 21 additions & 0 deletions tests/testthat/_snaps/printing.md
Original file line number Diff line number Diff line change
Expand Up @@ -361,3 +361,24 @@
Uncertainty intervals (equal-tailed) and p-values (two-tailed) computed
using a Wald t-distribution approximation.

# no fail for mgcv-binomial

Code
print(out)
Output
# Fixed Effects
Parameter | Log-Odds | SE | 95% CI | z | df | p
---------------------------------------------------------------------
(Intercept) | -0.20 | 0.50 | [-1.18, 0.79] | -0.39 | 29.98 | 0.695
# Smooth Terms
Parameter | z | df | p
---------------------------------------
Smooth term (mpg) | 7.24 | 1.02 | 0.007
Message
The model has a log- or logit-link. Consider using `exponentiate =
TRUE` to interpret coefficients as ratios.

10 changes: 10 additions & 0 deletions tests/testthat/test-printing.R
Original file line number Diff line number Diff line change
Expand Up @@ -118,3 +118,13 @@ withr::with_options(
expect_snapshot(print(out))
})
)

withr::with_options(
list(parameters_warning_exponentiate = TRUE),
test_that("no fail for mgcv-binomial", {
skip_if_not_installed("mgcv")
m <- mgcv::gam(vs ~ s(mpg), data = mtcars, family = "binomial")
out <- model_parameters(m)
expect_snapshot(print(out))
})
)

0 comments on commit eff54e5

Please sign in to comment.