Closed scj-robin closed 4 years ago
The dev version uses a different initialization which seems to lead to better results in general but not always. The optimization steps is also quite sensitive to the initialization. You can use control = list(ftol_out = 1e-6)
when calling PLN*
to ensure more reproductible behavior (or stick with the release version until everything has been ironed out...)
Good to know.
On top of Mahendra answer, note that I added all the constant terms in the variational lower bounds in the dev version, while some are missing in the CRAN version.
By the way, with the dev version, fitting first a PLN with diagonal Sigma, then a PLN with full Sigma, using the first results as inception yields almost identical regressions coefficients. The same with the cran version yields (not that much but still) different regression coefficients. As far as I know, the theory does not guarantee that they should be equal.
An additional comment : at the moment, I have essentially been working on optimisation alternative for PLN (not PLNnetwork) in the dev branch, so results on network inference should not be trusted.
This should be fixed in last commit of dev https://github.com/jchiquet/PLNmodels/commit/c6dda121ac3a4a20c693ff1f6ebfb3d5c8a4bb5f
I consider a PLNnetwork model with 10 different sets of covariates (line type and color in the plots). I use the same code to fit the models and compute de BIC criterion to chosoe the covariates and the penalty (lambda)? I got very differents results (see the attached plots) when using the cran version (-PLNcran) and the dev branch version (-PLNdev), the BIC obtained with the dev version being sometimes much lower.
BarentsFishPLNpca-net-PLNcran.pdf BarentsFishPLNpca-net-PLNdev.pdf
I copy the code below: