nlmixrdevelopment / nlmixr

nlmixr: an R package for population PKPD modeling
https://nlmixrdevelopment.github.io/nlmixr/
GNU General Public License v2.0
115 stars 45 forks source link

nlmixr saem crash R #189

Closed ONYLAB closed 5 years ago

ONYLAB commented 5 years ago

Hello nlmixr developers,

A very new user here... I would like to use an ode model to fit my data using nlmixr saem.

What does the Error in RxODE::rxProgressAbort() mean here exactly? Could there be something wrong with my model syntax?

Thank you!

My code is here and I used a small dataset.

My sessioninfo() output is: R version 3.6.0 (2019-04-26) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 7 x64 (build 7601) Service Pack 1

Matrix products: default

Random number generation: RNG: Mersenne-Twister Normal: Inversion Sample: Rounding

locale: [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

attached base packages: [1] stats graphics grDevices utils datasets methods base

other attached packages: [1] xpose.nlmixr_0.1.4 xpose_0.4.4 ggplot2_3.1.1 nlmixr_1.1.0-9
[5] RxODE_0.9.0-6

loaded via a namespace (and not attached): [1] reticulate_1.12 tidyselect_0.2.5 xfun_0.7
[4] purrr_0.3.2 lattice_0.20-38 colorspace_1.4-1
[7] generics_0.0.2 vpc_1.1.0 rlang_0.3.4
[10] huxtable_4.5.0 pillar_1.4.1 glue_1.3.1
[13] withr_2.1.2 tweenr_1.0.1 plyr_1.8.4
[16] stringr_1.4.0 munsell_0.5.0 n1qn1_6.0.1-3
[19] gtable_0.3.0 mvnfast_0.2.5 memoise_1.1.0
[22] labeling_0.3 knitr_1.23 RcppArmadillo_0.9.400.3.0 [25] rex_1.1.2 parallel_3.6.0 sys_3.2
[28] Rcpp_1.0.1 scales_1.0.0 jsonlite_1.6
[31] farver_1.1.0 brew_1.0-6 ggforce_0.2.2
[34] digest_0.6.19 lotri_0.1.1 stringi_1.4.3
[37] dplyr_0.8.1 lbfgs_1.2.1 polyclip_1.10-0
[40] grid_3.6.0 tools_3.6.0 magrittr_1.5
[43] dparser_0.1.8 lazyeval_0.2.2 tibble_2.1.2
[46] PreciseSums_0.3 crayon_1.3.4 tidyr_0.8.3
[49] pkgconfig_2.0.2 Matrix_1.2-17 MASS_7.3-51.4
[52] assertthat_0.2.1 rstudioapi_0.10 R6_2.4.0
[55] units_0.6-3 nlme_3.1-139 compiler_3.6.0

mattfidler commented 5 years ago

Hi @ONYLAB,

The RxODE::rxProgressAbort() in this case means that the more robust linear standard error calculation was aborted, and it falls back to the approximated fisher information matrix for the covariance calculation. In fact, the fisher information matrix doesn't do a great job here either because it is corrected to be symmetric, so I wouldn't trust the SEs very much.

The warnings show these conditions:

1: In (function (uif, data, est = NULL, control = list(), ..., sum.prod = FALSE,  :
  Covariance matrix non-positive definite, corrected by sqrtm(fim %*% fim)
2: In (function (uif, data, est = NULL, control = list(), ..., sum.prod = FALSE,  :
  Linearization of FIM could not be used to calculate covariance.

Perhaps the abort could be more informative.

ONYLAB commented 5 years ago

Thank you very much!