SuppDists is orphaned on CRAN (and has been since 2013). https://cran.r-project.org/web/checks/check_results_.html Oddly, the simulate method for the inverse.gaussian family [inverse.gaussian()$simulate] depends (in a loose sense) on SuppDists (it fails if the SuppDists namespace is not available: if (!requireNamespace("SuppDists", quietly = TRUE)) stop("need CRAN package 'SuppDists' for simulation from the 'inverse.gaussian' family") The statmod package also implements inverse gaussian d/p/q/r functions <https://journal.r-project.org/archive/2016-1/giner-smyth.pdf>. It is lightweight (depends on R >= 3.0.0, imports only base packages [stats and graphics]) and has been around for a long time (archived versions on CRAN go back to 2003). Would it make sense to replace the call to SuppDists::rinvGauss with a corresponding call to statmod::rinvgauss ? Would a patch be considered? Ben Bolker
>>>>> Ben Bolker >>>>> on Tue, 24 Sep 2019 20:09:55 -0400 writes:> SuppDists is orphaned on CRAN (and has been since 2013). > https://cran.r-project.org/web/checks/check_results_.html > Oddly, the simulate method for the inverse.gaussian family > [inverse.gaussian()$simulate] depends (in a loose sense) on SuppDists > (it fails if the SuppDists namespace is not available: > if (!requireNamespace("SuppDists", quietly = TRUE)) > stop("need CRAN package 'SuppDists' for simulation from the > 'inverse.gaussian' family") > The statmod package also implements inverse gaussian d/p/q/r functions > <https://journal.r-project.org/archive/2016-1/giner-smyth.pdf>. It is > lightweight (depends on R >= 3.0.0, imports only base packages [stats > and graphics]) and has been around for a long time (archived versions on > CRAN go back to 2003). > Would it make sense to replace the call to SuppDists::rinvGauss with a > corresponding call to statmod::rinvgauss ? Would a patch be considered? > Ben Bolker I'd say "yes" & "yes". "Base" code weekly depending on CRAN packages (apart from formally 'Recommended' ones) is somewhat sub-optimal in any case, ((but possibly still the best thing, given reality [maintenance efforts, copyrights, ...])), but your proposal seems a "uniformly not worse" change ((and I have very much liked delving into parts of Gordon Smyth's textbook on GLMs as a really nice mixture / in-between of rigorous math and applied stats)) Martin Maechler ETH Zurich and R Core
On 2019-09-25 3:26 a.m., Martin Maechler wrote:>>>>>> Ben Bolker >>>>>> on Tue, 24 Sep 2019 20:09:55 -0400 writes: > > > SuppDists is orphaned on CRAN (and has been since 2013). > > https://cran.r-project.org/web/checks/check_results_.html > > > Oddly, the simulate method for the inverse.gaussian family > > [inverse.gaussian()$simulate] depends (in a loose sense) on SuppDists > > (it fails if the SuppDists namespace is not available: > > > if (!requireNamespace("SuppDists", quietly = TRUE)) > > stop("need CRAN package 'SuppDists' for simulation from the > > 'inverse.gaussian' family") > > > > The statmod package also implements inverse gaussian d/p/q/r functions > > <https://journal.r-project.org/archive/2016-1/giner-smyth.pdf>. It is > > lightweight (depends on R >= 3.0.0, imports only base packages [stats > > and graphics]) and has been around for a long time (archived versions on > > CRAN go back to 2003). > > > Would it make sense to replace the call to SuppDists::rinvGauss with a > > corresponding call to statmod::rinvgauss ? Would a patch be considered? > > > Ben Bolker > > I'd say "yes" & "yes". > > "Base" code weekly depending on CRAN packages (apart from > formally 'Recommended' ones) is somewhat sub-optimal in any > case, ((but possibly still the best thing, given reality > [maintenance efforts, copyrights, ...])), > but your proposal seems a "uniformly not worse" change > ((and I have very much liked delving into parts of Gordon > Smyth's textbook on GLMs as a really nice mixture / in-between > of rigorous math and applied stats))I did actually think of a reason *not* to do this. The resulting random deviates generated by statmod::rinvgauss aren't exactly the same as those from SuppDists::rinvGauss (same algorithm, but I guess they use sufficiently different internal machinery), so this could break exact backward compatibility for any code that uses simulate() for inverse-Gaussian models. Still might be worth doing, but now the change is *not* "uniformly not worse". An alternative (which would remove the dependency on a CRAN package) would be to pull the code of statmod::rinvgauss into R (which would be allowed - statmod is GPL 2/3 - but of course it would be polite to ask). The downside to this solution would be adding the maintenance burden of this code ...> > Martin Maechler > ETH Zurich and R Core >