Open gustavobrp opened 1 year ago
I cannot reproduce your example, the model gives an error:
library(mclogit)
#> Loading required package: Matrix
library(ggeffects)
db.example <- structure(list(dep_resultado_academico = structure(c(3L, 2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 3L, 1L, 1L,
3L, 2L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 3L, 3L, 2L, 2L, 2L, 1L, 2L,
3L, 2L, 2L, 2L, 3L, 1L), .Label = c("Cursando", "Graduado", "Evasão"
), class = "factor"), faixa_idade = structure(c(3L, 2L, 2L, 3L,
1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 2L, 2L, 2L, 2L, 2L, 4L, 2L, 2L, 2L, 3L, 2L, 2L, 1L, 3L,
2L, 2L, 1L, 1L), .Label = c("Até 18 anos", "Entre 19 e 24 anos",
"Entre 25 e 29 anos", "30 anos ou mais"), class = "factor"),
SEXO = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L
), .Label = c("Masculino", "Feminino"), class = "factor"),
CURSO_ATUAL = structure(c(1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 1L, 1L, 1L, 2L, 3L, 3L, 2L, 4L, 5L, 5L, 5L, 5L, 6L,
6L, 6L, 7L, 8L, 4L, 9L, 5L, 5L, 5L, 1L, 1L, 1L, 10L, 10L,
9L, 9L, 9L), .Label = c("Letras", "Medicina", "Engenharia Química",
"Pedagogia", "Direito", "Enfermagem", "Engenharia Civil",
"Engenharia Mecânica", "Psicologia", "Geografia", "Odontologia",
"Educação Física", "Administração", "Engenharia Elétrica",
"Geologia", "Ciências Biológicas", "Comunicação Social",
"Arquitetura e Urbanismo", "Engenharia de Produção", "Artes Visuais",
"Biblioteconomia", "História", "Farmácia", "Filosofia", "Medicina Veterinária",
"Matemática", "Ciências Contábeis", "Engenharia de Minas",
"Química", "Física", "Ciências Sociais", "Engenharia de Controle e Automação",
"Ciências Econômicas", "Engenharia Metalúrgica", "Fisioterapia",
"Terapia Ocupacional", "Fonoaudiologia", "Turismo", "Nutrição",
"Ciência da Computação", "Ciências Atuariais", "Estatística",
"Sistemas de Informação"), class = "factor")), row.names = c(NA,
-40L), class = c("tbl_df", "tbl", "data.frame"))
model.example <- mblogit(dep_resultado_academico ~ faixa_idade + SEXO,
data = db.example,
random = c(~1|CURSO_ATUAL),
method = "MQL",
estimator = "REML",
maxit = 20)
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 1 - deviance = 109.3839 - criterion = 1.033022
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 2 - deviance = 120.908 - criterion = 0.1304513
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 3 - deviance = 119.6012 - criterion = 0.04783325
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 4 - deviance = 119.6994 - criterion = 0.03275368
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 5 - deviance = 119.7083 - criterion = 0.02436854
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 6 - deviance = 119.6681 - criterion = 0.01883837
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 7 - deviance = 119.684 - criterion = 0.01487719
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 8 - deviance = 119.6689 - criterion = 0.0120209
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 9 - deviance = 119.6765 - criterion = 0.009879401
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 10 - deviance = 119.6706 - criterion = 0.008252256
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 11 - deviance = 119.674 - criterion = 0.006984561
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 12 - deviance = 119.6716 - criterion = 0.005983284
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 13 - deviance = 119.6731 - criterion = 0.005178449
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 14 - deviance = 119.6721 - criterion = 0.004523611
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 15 - deviance = 119.6728 - criterion = 0.003981716
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 16 - deviance = 119.6723 - criterion = 0.003526526
#> Error in .solve.checkCond(a, tol): 'a' is computationally singular, rcond(a)=1.0131e-16
summary(model.example)
#> Error in h(simpleError(msg, call)): error in evaluating the argument 'object' in selecting a method for function 'summary': object 'model.example' not found
Created on 2023-08-30 with reprex v2.0.2
Hi Daniel.
I tested again here and the model worked, strange. What can I do to help?
I'm using the lastest version of mclogit()
and ggeffects()
.
mclogit()
gives the warning that the algorithm did not converge here, but it works, and when I try to use ggeffects()
the problem persists.
library(mclogit)
#> Loading required package: Matrix
library(ggeffects)
db.example <- structure(list(dep_resultado_academico = structure(c(3L, 2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 3L, 1L, 1L,
3L, 2L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 3L, 3L, 2L, 2L, 2L, 1L, 2L,
3L, 2L, 2L, 2L, 3L, 1L), .Label = c("Cursando", "Graduado", "Evasão"
), class = "factor"), faixa_idade = structure(c(3L, 2L, 2L, 3L,
1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 2L, 2L, 2L, 2L, 2L, 4L, 2L, 2L, 2L, 3L, 2L, 2L, 1L, 3L,
2L, 2L, 1L, 1L), .Label = c("Até 18 anos", "Entre 19 e 24 anos",
"Entre 25 e 29 anos", "30 anos ou mais"), class = "factor"),
SEXO = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L,
1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L,
1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L
), .Label = c("Masculino", "Feminino"), class = "factor"),
CURSO_ATUAL = structure(c(1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 1L, 1L, 1L, 2L, 3L, 3L, 2L, 4L, 5L, 5L, 5L, 5L, 6L,
6L, 6L, 7L, 8L, 4L, 9L, 5L, 5L, 5L, 1L, 1L, 1L, 10L, 10L,
9L, 9L, 9L), .Label = c("Letras", "Medicina", "Engenharia Química",
"Pedagogia", "Direito", "Enfermagem", "Engenharia Civil",
"Engenharia Mecânica", "Psicologia", "Geografia", "Odontologia",
"Educação Física", "Administração", "Engenharia Elétrica",
"Geologia", "Ciências Biológicas", "Comunicação Social",
"Arquitetura e Urbanismo", "Engenharia de Produção", "Artes Visuais",
"Biblioteconomia", "História", "Farmácia", "Filosofia", "Medicina Veterinária",
"Matemática", "Ciências Contábeis", "Engenharia de Minas",
"Química", "Física", "Ciências Sociais", "Engenharia de Controle e Automação",
"Ciências Econômicas", "Engenharia Metalúrgica", "Fisioterapia",
"Terapia Ocupacional", "Fonoaudiologia", "Turismo", "Nutrição",
"Ciência da Computação", "Ciências Atuariais", "Estatística",
"Sistemas de Informação"), class = "factor")), row.names = c(NA,
-40L), class = c("tbl_df", "tbl", "data.frame"))
model.example <- mblogit(dep_resultado_academico ~ faixa_idade + SEXO,
data = db.example,
random = c(~1|CURSO_ATUAL),
method = "MQL",
estimator = "REML",
maxit = 20)
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 1 - deviance = 109.3839 - criterion = 1.033022
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 2 - deviance = 120.908 - criterion = 0.1304513
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 3 - deviance = 119.6012 - criterion = 0.04783325
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 4 - deviance = 119.6994 - criterion = 0.03275368
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 5 - deviance = 119.7083 - criterion = 0.02436854
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 6 - deviance = 119.6681 - criterion = 0.01883837
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 7 - deviance = 119.684 - criterion = 0.01487719
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 8 - deviance = 119.6689 - criterion = 0.0120209
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 9 - deviance = 119.6765 - criterion = 0.009879401
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 10 - deviance = 119.6706 - criterion = 0.008252256
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 11 - deviance = 119.674 - criterion = 0.006984559
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 12 - deviance = 119.6716 - criterion = 0.005983286
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 13 - deviance = 119.6731 - criterion = 0.005178275
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 14 - deviance = 119.6721 - criterion = 0.004523205
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 15 - deviance = 119.6728 - criterion = 0.003982371
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 16 - deviance = 119.6723 - criterion = 0.003511752
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 17 - deviance = 119.6726 - criterion = 0.003164549
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 18 - deviance = 119.6724 - criterion = 0.002484265
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 19 - deviance = 119.6725 - criterion = 0.001902648
#> Warning: Inner iterations did not coverge - nlminb message: false convergence
#> (8)
#>
#> Iteration 20 - deviance = 119.6725 - criterion = 0.0006252818
#> Warning: Algorithm did not converge
#> Warning: Fitted probabilities numerically 0 or 1 occurred
ggeffect(model.example)
#> Can't compute marginal effects, `effects::Effect()` returned an error.
#>
#> Reason: unused argument (qr = TRUE)
#> You may try `ggpredict()` or `ggemmeans()`.
#>
#> Can't compute marginal effects, `effects::Effect()` returned an error.
#>
#> Reason: unused argument (qr = TRUE)
#> You may try `ggpredict()` or `ggemmeans()`.
#> NULL
Created on 2023-08-30 with [reprex v2.0.2](https://reprex.tidyverse.org/)
Can you save the model object (in RData or RDS format), zip it and attach it to this issue?
Currently trying to use
ggeffects
for ammblogit
object from themclogit
package, but the following messages are being shown:Here is a reprex from the database and the model. I'm using the uptaded versions of both packages. Note: the model converge in the complete dataset and model, and this happens using PQL or MQL method.
Created on 2023-07-27 with reprex v2.0.2
Session info
``` r sessioninfo::session_info() #> - Session info --------------------------------------------------------------- #> setting value #> version R version 4.1.1 (2021-08-10) #> os Windows 10 x64 (build 22621) #> system x86_64, mingw32 #> ui RTerm #> language (EN) #> collate Portuguese_Brazil.1252 #> ctype Portuguese_Brazil.1252 #> tz America/Sao_Paulo #> date 2023-07-27 #> pandoc 2.19.2 @ C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/ (via rmarkdown) #> #> - Packages ------------------------------------------------------------------- #> package * version date (UTC) lib source #> abind 1.4-5 2016-07-21 [1] CRAN (R 4.1.1) #> boot 1.3-28 2021-05-03 [2] CRAN (R 4.1.1) #> car 3.1-1 2022-10-19 [1] CRAN (R 4.1.1) #> carData 3.0-5 2022-01-06 [1] CRAN (R 4.1.3) #> cli 3.6.1 2023-03-23 [1] CRAN (R 4.1.3) #> coda 0.19-4 2020-09-30 [1] CRAN (R 4.1.1) #> codetools 0.2-18 2020-11-04 [2] CRAN (R 4.1.1) #> colorspace 2.0-3 2022-02-21 [1] CRAN (R 4.1.3) #> data.table 1.14.8 2023-02-17 [1] CRAN (R 4.1.3) #> DBI 1.1.3 2022-06-18 [1] CRAN (R 4.1.3) #> digest 0.6.29 2021-12-01 [1] CRAN (R 4.1.3) #> dplyr * 1.1.2 2023-04-20 [1] CRAN (R 4.1.3) #> effects 4.2-2 2022-07-13 [1] CRAN (R 4.1.3) #> ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.1.0) #> emmeans 1.8.1-1 2022-09-08 [1] CRAN (R 4.1.3) #> estimability 1.4.1 2022-08-05 [1] CRAN (R 4.1.3) #> evaluate 0.17 2022-10-07 [1] CRAN (R 4.1.3) #> fansi 1.0.3 2022-03-24 [1] CRAN (R 4.1.3) #> fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.1.0) #> forcats * 1.0.0 2023-01-29 [1] CRAN (R 4.1.3) #> fs 1.5.2 2021-12-08 [1] CRAN (R 4.1.3) #> generics 0.1.3 2022-07-05 [1] CRAN (R 4.1.3) #> ggeffects * 1.2.3 2023-06-11 [1] CRAN (R 4.1.1) #> ggplot2 * 3.4.2 2023-04-03 [1] CRAN (R 4.1.3) #> glue 1.6.2 2022-02-24 [1] CRAN (R 4.1.3) #> gtable 0.3.1 2022-09-01 [1] CRAN (R 4.1.3) #> highr 0.9 2021-04-16 [1] CRAN (R 4.1.0) #> hms 1.1.2 2022-08-19 [1] CRAN (R 4.1.3) #> htmltools 0.5.3 2022-07-18 [1] CRAN (R 4.1.3) #> insight 0.19.3 2023-06-29 [1] CRAN (R 4.1.1) #> jsonlite 1.8.4 2022-12-06 [1] CRAN (R 4.1.3) #> knitr 1.40 2022-08-24 [1] CRAN (R 4.1.3) #> lattice 0.20-44 2021-05-02 [2] CRAN (R 4.1.1) #> lifecycle 1.0.3 2022-10-07 [1] CRAN (R 4.1.3) #> lme4 1.1-30 2022-07-08 [1] CRAN (R 4.1.3) #> lubridate * 1.9.2 2023-02-10 [1] CRAN (R 4.1.3) #> magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.1.3) #> MASS 7.3-54 2021-05-03 [2] CRAN (R 4.1.1) #> Matrix * 1.5-1 2022-09-13 [1] CRAN (R 4.1.3) #> mclogit * 0.9.4.2 2023-07-26 [1] local #> memisc 0.99.31.6 2023-03-10 [1] CRAN (R 4.1.3) #> minqa 1.2.4 2014-10-09 [1] CRAN (R 4.1.3) #> mitools 2.4 2019-04-26 [1] CRAN (R 4.1.2) #> multcomp 1.4-22 2023-02-10 [1] CRAN (R 4.1.3) #> munsell 0.5.0 2018-06-12 [1] CRAN (R 4.1.0) #> mvtnorm 1.1-3 2021-10-08 [1] CRAN (R 4.1.1) #> nlme 3.1-152 2021-02-04 [2] CRAN (R 4.1.1) #> nloptr 2.0.3 2022-05-26 [1] CRAN (R 4.1.3) #> nnet 7.3-18 2022-09-28 [1] CRAN (R 4.1.3) #> pillar 1.9.0 2023-03-22 [1] CRAN (R 4.1.3) #> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.1.0) #> purrr * 1.0.1 2023-01-10 [1] CRAN (R 4.1.3) #> R.cache 0.16.0 2022-07-21 [1] CRAN (R 4.1.3) #> R.methodsS3 1.8.2 2022-06-13 [1] CRAN (R 4.1.3) #> R.oo 1.25.0 2022-06-12 [1] CRAN (R 4.1.3) #> R.utils 2.12.2 2022-11-11 [1] CRAN (R 4.1.3) #> R6 2.5.1 2021-08-19 [1] CRAN (R 4.1.1) #> Rcpp 1.0.9 2022-07-08 [1] CRAN (R 4.1.3) #> readr * 2.1.4 2023-02-10 [1] CRAN (R 4.1.3) #> reprex 2.0.2 2022-08-17 [1] CRAN (R 4.1.3) #> rlang 1.1.0 2023-03-14 [1] CRAN (R 4.1.3) #> rmarkdown 2.17 2022-10-07 [1] CRAN (R 4.1.3) #> rstudioapi 0.14 2022-08-22 [1] CRAN (R 4.1.3) #> sandwich 3.0-2 2022-06-15 [1] CRAN (R 4.1.3) #> scales 1.2.1 2022-08-20 [1] CRAN (R 4.1.3) #> sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.1.3) #> stringi 1.7.6 2021-11-29 [1] CRAN (R 4.1.2) #> stringr * 1.5.0 2022-12-02 [1] CRAN (R 4.1.3) #> styler 1.10.1 2023-06-05 [1] CRAN (R 4.1.1) #> survey 4.1-1 2021-07-19 [1] CRAN (R 4.1.3) #> survival 3.4-0 2022-08-09 [1] CRAN (R 4.1.3) #> TH.data 1.1-1 2022-04-26 [1] CRAN (R 4.1.3) #> tibble * 3.2.1 2023-03-20 [1] CRAN (R 4.1.3) #> tidyr * 1.3.0 2023-01-24 [1] CRAN (R 4.1.3) #> tidyselect 1.2.0 2022-10-10 [1] CRAN (R 4.1.1) #> tidyverse * 2.0.0 2023-02-22 [1] CRAN (R 4.1.3) #> timechange 0.2.0 2023-01-11 [1] CRAN (R 4.1.3) #> tzdb 0.3.0 2022-03-28 [1] CRAN (R 4.1.3) #> utf8 1.2.2 2021-07-24 [1] CRAN (R 4.1.0) #> vctrs 0.6.1 2023-03-22 [1] CRAN (R 4.1.3) #> withr 2.5.0 2022-03-03 [1] CRAN (R 4.1.3) #> xfun 0.33 2022-09-12 [1] CRAN (R 4.1.3) #> xtable 1.8-4 2019-04-21 [1] CRAN (R 4.1.0) #> yaml 2.3.7 2023-01-23 [1] CRAN (R 4.1.3) #> zoo 1.8-11 2022-09-17 [1] CRAN (R 4.1.3) #> #> #> ------------------------------------------------------------------------------ ```