Skip to content

check_model failing on logistic regression #701

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
bbolker opened this issue Mar 24, 2024 · 2 comments
Closed

check_model failing on logistic regression #701

bbolker opened this issue Mar 24, 2024 · 2 comments
Labels
3 investigators ❔❓ Need to look further into this issue Waiting for response 💌 Need more information from people who submitted the issue

Comments

@bbolker
Copy link

bbolker commented Mar 24, 2024

It's possible that this will get sorted out as part of the process of checking/validating #698, but I thought I would report it in case it gets missed.

## remotes::install_github("easystats/performance")
## remotes::install_github("easystats/performance", ref = remotes::github_pull(698))
mm <- transform(mtcars, bigcyl = as.numeric(cyl > 2))
m <- glm(bigcyl ~ mpg, data = mm, family = binomial)
performance::check_model(m)

This triggers an error from ggplot2,

dim(data) must return an of length 2.

At this point data is:

 class(data)
[1] "performance_simres"     "see_performance_simres" "DHARMa"                
Browse[2]> where
where 1: .prevalidate_data_frame_like_object(data)
where 2: validate_as_data_frame(model)
where 3: withCallingHandlers(expr, condition = function(cnd) {
    {
        .__handler_frame__. <- TRUE
        .__setup_frame__. <- frame
        if (inherits(cnd, "message")) {
            except <- c("warning", "error")
        }
        else if (inherits(cnd, "warning")) {
            except <- "error"
        }
        else {
            except <- ""
        }
    }
    while (!is_null(cnd)) {
        if (inherits(cnd, "error")) {
            out <- handlers[[1L]](cnd)
            if (!inherits(out, "rlang_zap")) 
                throw(out)
        }
        inherit <- .subset2(.subset2(cnd, "rlang"), "inherit")
        if (is_false(inherit)) {
            return()
        }
        cnd <- .subset2(cnd, "parent")
    }
})
where 4: doTryCatch(return(expr), name, parentenv, handler)
where 5: tryCatchOne(expr, names, parentenv, handlers[[1L]])
where 6: tryCatchList(expr, classes, parentenv, handlers)
where 7: tryCatch(withCallingHandlers(expr, condition = function(cnd) {
    {
        .__handler_frame__. <- TRUE
        .__setup_frame__. <- frame
        if (inherits(cnd, "message")) {
            except <- c("warning", "error")
        }
        else if (inherits(cnd, "warning")) {
            except <- "error"
        }
        else {
            except <- ""
        }
    }
    while (!is_null(cnd)) {
        if (inherits(cnd, "error")) {
            out <- handlers[[1L]](cnd)
            if (!inherits(out, "rlang_zap")) 
                throw(out)
        }
        inherit <- .subset2(.subset2(cnd, "rlang"), "inherit")
        if (is_false(inherit)) {
            return()
        }
        cnd <- .subset2(cnd, "parent")
    }
}), stackOverflowError = handlers[[1L]])
where 8: try_fetch(validate_as_data_frame(model), error = function(cnd) cli::cli_abort(glue(msg0), 
    parent = cnd))
where 9: fortify.default(data, ...)
where 10: fortify(data, ...)
where 11: ggplot.default(x, ggplot2::aes(x = .data$x, y = .data$y))
where 12: ggplot2::ggplot(x, ggplot2::aes(x = .data$x, y = .data$y))
where 13: .plot_diag_qq(x$QQ, size_point, size_line, alpha_level = alpha_level, 
    detrend = detrend, theme_style = style, colors = colors, 
    dot_alpha_level = dot_alpha_level, show_dots = TRUE, model_info = model_info, 
    model_class = model_class)
where 14: plot.see_check_model(x, style = style, colors = colors, type = type, 
    n_colums = n_columns, ...)
where 15: NextMethod()
where 16: plot.check_model(x, style = style, colors = colors, type = type, 
    n_colums = n_columns, ...)
where 17: graphics::plot(x, style = style, colors = colors, type = type, 
    n_colums = n_columns, ...)
where 18: withCallingHandlers(expr, message = function(c) if (inherits(c, 
    classes)) tryInvokeRestart("muffleMessage"))
where 19: suppressMessages(graphics::plot(x, style = style, colors = colors, 
    type = type, n_colums = n_columns, ...))
where 20: withCallingHandlers(expr, warning = function(w) if (inherits(w, 
    classes)) tryInvokeRestart("muffleWarning"))
where 21: suppressWarnings(suppressMessages(graphics::plot(x, style = style, 
    colors = colors, type = type, n_colums = n_columns, ...)))
where 22: print.see_check_model(x)
where 23: NextMethod()
where 24: print.check_model(x)
where 25: (function (x, ...) 
UseMethod("print"))(x)
where 26: check_model.default(m)
where 27: performance::check_model(m)
@strengejacke
Copy link
Member

Can you run easystats::install_latest(force = TRUE) and then retry? For me, everything is ok.

mm <- transform(mtcars, bigcyl = as.numeric(cyl > 2))
m <- glm(bigcyl ~ mpg, data = mm, family = binomial)
performance::check_model(m)

Session ino
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.3.3 (2024-02-29 ucrt)
#>  os       Windows 11 x64 (build 22631)
#>  system   x86_64, mingw32
#>  ui       RTerm
#>  language (EN)
#>  collate  German_Germany.utf8
#>  ctype    German_Germany.utf8
#>  tz       Europe/Berlin
#>  date     2024-03-25
#>  pandoc   3.1.1 @ C:/Users/DL/AppData/Local/Pandoc/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package           * version    date (UTC) lib source
#>  bayestestR          0.13.2     2024-03-12 [1] https://easystats.r-universe.dev (R 4.3.3)
#>  benchmarkme         1.0.8      2022-06-12 [1] CRAN (R 4.3.0)
#>  benchmarkmeData     1.0.4      2020-04-23 [1] CRAN (R 4.3.0)
#>  bitops              1.0-7      2021-04-24 [1] CRAN (R 4.3.0)
#>  boot                1.3-30     2024-02-26 [1] CRAN (R 4.3.3)
#>  caTools             1.18.2     2021-03-28 [1] CRAN (R 4.3.0)
#>  cli                 3.6.2      2023-12-11 [1] CRAN (R 4.3.2)
#>  codetools           0.2-19     2023-02-01 [2] CRAN (R 4.3.3)
#>  colorspace          2.1-0      2023-01-23 [1] CRAN (R 4.3.0)
#>  datawizard          0.9.1.8    2024-03-23 [1] https://easystats.r-universe.dev (R 4.3.3)
#>  DEoptimR            1.1-3      2023-10-07 [1] CRAN (R 4.3.1)
#>  DHARMa              0.4.6      2022-09-08 [1] CRAN (R 4.3.0)
#>  digest              0.6.35     2024-03-11 [1] CRAN (R 4.3.3)
#>  doParallel          1.0.17     2022-02-07 [1] CRAN (R 4.3.0)
#>  dplyr               1.1.4      2023-11-17 [1] CRAN (R 4.3.2)
#>  evaluate            0.23       2023-11-01 [1] CRAN (R 4.3.2)
#>  fansi               1.0.6      2023-12-08 [1] CRAN (R 4.3.2)
#>  farver              2.1.1      2022-07-06 [1] CRAN (R 4.3.0)
#>  fastmap             1.1.1      2023-02-24 [1] CRAN (R 4.3.0)
#>  foreach             1.5.2      2022-02-02 [1] CRAN (R 4.3.0)
#>  fs                  1.6.3      2023-07-20 [1] CRAN (R 4.3.1)
#>  generics            0.1.3      2022-07-05 [1] CRAN (R 4.3.0)
#>  ggplot2             3.5.0      2024-02-23 [1] CRAN (R 4.3.3)
#>  ggrepel             0.9.5      2024-01-10 [1] CRAN (R 4.3.2)
#>  glue                1.7.0      2024-01-09 [1] CRAN (R 4.3.2)
#>  gtable              0.3.4      2023-08-21 [1] CRAN (R 4.3.1)
#>  htmltools           0.5.7      2023-11-03 [1] CRAN (R 4.3.2)
#>  httr                1.4.7      2023-08-15 [1] CRAN (R 4.3.1)
#>  insight             0.19.10    2024-03-22 [1] https://easystats.r-universe.dev (R 4.3.3)
#>  iterators           1.0.14     2022-02-05 [1] CRAN (R 4.3.0)
#>  knitr               1.45       2023-10-30 [1] CRAN (R 4.3.1)
#>  labeling            0.4.3      2023-08-29 [1] CRAN (R 4.3.1)
#>  lattice             0.22-5     2023-10-24 [1] CRAN (R 4.3.3)
#>  lifecycle           1.0.4      2023-11-07 [1] CRAN (R 4.3.2)
#>  lme4                1.1-35.1   2023-11-05 [1] CRAN (R 4.3.2)
#>  magrittr            2.0.3      2022-03-30 [1] CRAN (R 4.3.0)
#>  MASS                7.3-60.0.1 2024-01-13 [1] CRAN (R 4.3.2)
#>  Matrix              1.6-5      2024-01-11 [1] CRAN (R 4.3.2)
#>  memuse              4.2-3      2023-01-24 [1] CRAN (R 4.3.0)
#>  mgcv                1.9-1      2023-12-21 [1] CRAN (R 4.3.2)
#>  minqa               1.2.6      2023-09-11 [1] CRAN (R 4.3.1)
#>  munsell             0.5.0      2018-06-12 [1] CRAN (R 4.3.0)
#>  nlme                3.1-164    2023-11-27 [1] CRAN (R 4.3.2)
#>  nloptr              2.0.3      2022-05-26 [1] CRAN (R 4.3.0)
#>  opdisDownsampling   0.8.3      2023-12-13 [1] CRAN (R 4.3.2)
#>  patchwork           1.2.0      2024-01-08 [1] CRAN (R 4.3.2)
#>  performance         0.11.0     2024-03-24 [1] https://easystats.r-universe.dev (R 4.3.3)
#>  pillar              1.9.0      2023-03-22 [1] CRAN (R 4.3.0)
#>  pkgconfig           2.0.3      2019-09-22 [1] CRAN (R 4.3.0)
#>  pracma              2.4.4      2023-11-10 [1] CRAN (R 4.3.2)
#>  purrr               1.0.2      2023-08-10 [1] CRAN (R 4.3.1)
#>  qqconf              1.3.2      2023-04-14 [1] CRAN (R 4.3.0)
#>  qqplotr             0.0.6      2023-01-25 [1] CRAN (R 4.3.0)
#>  R.cache             0.16.0     2022-07-21 [1] CRAN (R 4.3.0)
#>  R.methodsS3         1.8.2      2022-06-13 [1] CRAN (R 4.3.0)
#>  R.oo                1.26.0     2024-01-24 [1] CRAN (R 4.3.2)
#>  R.utils             2.12.3     2023-11-18 [1] CRAN (R 4.3.2)
#>  R6                  2.5.1      2021-08-19 [1] CRAN (R 4.3.0)
#>  Rcpp                1.0.12     2024-01-09 [1] CRAN (R 4.3.2)
#>  reprex              2.1.0      2024-01-11 [1] CRAN (R 4.3.2)
#>  rlang               1.1.3      2024-01-10 [1] CRAN (R 4.3.2)
#>  rmarkdown           2.26       2024-03-05 [1] CRAN (R 4.3.3)
#>  robustbase          0.99-2     2024-01-27 [1] CRAN (R 4.3.2)
#>  scales              1.3.0      2023-11-28 [1] CRAN (R 4.3.2)
#>  see                 0.8.3.1    2024-03-24 [1] https://easystats.r-universe.dev (R 4.3.3)
#>  sessioninfo         1.2.2      2021-12-06 [1] CRAN (R 4.3.0)
#>  styler              1.10.2     2023-08-29 [1] CRAN (R 4.3.1)
#>  tibble              3.2.1      2023-03-20 [1] CRAN (R 4.3.0)
#>  tidyselect          1.2.1      2024-03-11 [1] CRAN (R 4.3.3)
#>  twosamples          2.0.1      2023-06-23 [1] CRAN (R 4.3.1)
#>  utf8                1.2.4      2023-10-22 [1] CRAN (R 4.3.1)
#>  vctrs               0.6.5      2023-12-01 [1] CRAN (R 4.3.2)
#>  withr               3.0.0      2024-01-16 [1] CRAN (R 4.3.2)
#>  xfun                0.42       2024-02-08 [1] CRAN (R 4.3.2)
#>  yaml                2.3.8      2023-12-11 [1] CRAN (R 4.3.2)
#> 
#>  [1] C:/Users/DL/AppData/Local/R/win-library/4.3
#>  [2] C:/Program Files/R/R-4.3.3/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────

Created on 2024-03-25 with reprex v2.1.0

@strengejacke strengejacke added 3 investigators ❔❓ Need to look further into this issue Waiting for response 💌 Need more information from people who submitted the issue labels Mar 25, 2024
@bbolker
Copy link
Author

bbolker commented Apr 3, 2024

Must have been a transient version-mismatch thing. Thanks for checking.

@bbolker bbolker closed this as completed Apr 3, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
3 investigators ❔❓ Need to look further into this issue Waiting for response 💌 Need more information from people who submitted the issue
Projects
None yet
Development

No branches or pull requests

2 participants