https://github.com/cran/saemix
Raw File
Tip revision: 52eedf08dfe57f67d26ebef6b930c88ca9e01c4b authored by Emmanuelle Comets on 05 March 2024, 12:40:02 UTC
version 3.3
Tip revision: 52eedf0
CHANGES
Version 3.3 - March 2024

o Bugfixes
   * corrected a mistake in the computation of the Fisher Information Matrix for a combined error model
   * fixed the computation of the SE on correlations

Version 3.2 - June 2023

o Changes
   * added a simulate.function slot to saemixModel objects, used by saemix.simulate() for non Gaussian data models defined through their likelihood
   * modified function simulateDiscreteSaemix() to use this simulate.function element for the simulations (now returns NULL if the slot isn't filled)
   
o Plots for exploration and evaluation of discrete data models (work in progress)
   * plotDiscreteData(): function to explore discrete data (KM plot for TTE data (single event), longitudinal proportion plots for categorical and count data)
   * discreteVPC(): function to plot VPC for discrete data model (KM-VPC for TTE data (single event), VPC for the proportion of each score/category for count and categorical data)
   
o Bugfixes
   * corrected an error in the simulation function calling id instead of index (causing the simulation function to fail when the subjects were not numbered from 1 to N)
   * added a test in summary() for saemixData object to prevent failing on bootstrapped datasets with case bootstrap when ocov was no longer the same dimension as data
   * fixed the error model parameters to always be positive when they are calculated in the M-step.
   * corrected the computation of p-value of the Wald test as a two-sided test comparing beta/SE(beta) to a normal distribution (the p-value was missing a factor 2)

Version 3.1 - August 2022

o Bugfixes
   * corrected a minor bug causing the simulation to step to fail in the call to npdeSaemix when the data didn't have any covariate

o Changes
   * compute.eta.map is now called within the main function, to also return phi, eta and shrinkage for the MAP estimates
   * elements phi, psi, and eta computed by MAP (compute.eta.map) or conditional estimates (conddist.saemix) are dataframes with npar columns (where npar is the number of parameters in the model, eg ka, CL, V for the theo.saemix example), and no longer have a column id

Version 3.0 - February 2022

o Extension to noncontinuous data models
   * New argument in saemixModel to differentiate between continuous (modelType = "structural") and noncontinuous (modelType = "likelihood")
   * New examples have been included in the package to showcase discrete response models (see the userguide  for more information on lung.saemix, toenail.saemix, knee.saemix, rapi.saemix)

o Verbosity
   * displayProgress is now set to FALSE by default, which suppresses the convergence plots previously shown during the fit
   * running saemix, as well as obtaining diagnostic plots, has been made much more silent by suppressing most messages and warnings unless the user explicitely requests a verbose output (usually by passing a verbose=TRUE argument to functions such as plot)
   
o Plot functions for models
   * the predictions of a model over a range of X-values can be plotted for the starting values of the parameters or for a set of selected values
   * an SaemixModel object can also be combined with an SaemixData object to plot the predictions corresponding to the design in the data object
   * both these functions can be used to check the starting values before a fit

o Updated user guide (PDF)
   * available from https://github.com/iame-researchCenter/saemix/blob/7638e1b09ccb01cdff173068e01c266e906f76eb/docsaem.pdf
   * distributed in the inst folder of the package
   
o Covariate model building
   * new statistical criterion taking into account the fixed or random nature of estimated parameters in the weighting of the BIC (element BIC.covariate in the results component of a fitted object) [Delattre et al. 2014]
   * compare.saemix function to compare several saemix fitted objects
   * automated covariate selection via backward, forward and stepwise algorithms

o Bugfixes
   * the number of iterations with simulated annealing set by default has been corrected. It should have been equal to K1/2 where K1 is the first element of the vector nb.saemix in the list of options, but in the previous version it was incorrectly set to K1. This has now been corrected.
   * the definition of ypred/ppred had been mixed up in 2.4, in 3.0 we clarified the two types of population predictions as ppred=f(E(psi)), ie the predictions obtained for the population parameters (taking into account individual covariates) and ypred=E(f(psi)), ie the expectation of the predictions over the population. Both types of population predictions should be close in most applications but please update your codes depending on which definition you prefer (note: WRES are still computed using ypred in saemix for consistency with the use of the empirical variance-covariance matrix in their definition)

o Changes
   * function simul.saemix has been renamed simulate.saemix

o Dependencies
   * saemix now depends on npde (3.2), ggplot2, grid and gridExtra
   

Version 2.4 -  February 2021

o Minor modifications following a change in the R compiler for 4.4.0
   
o Changes
   * the combined error model has been changed from var(epsilon)=(a+b*f)^2 (previous version) to var(epsilon)=(a^2+b^2*f^2) (saemix 2.4) as the previous form sometimes led to unstable estimates
   * implemented the BIC proposed by Delattre et al. 2014 for NLMEM weighing differently parameters associated with fixed or random effects (see  )
   * updated the computation of the FIM, adding slots to compute both correlation coefficients and covariance terms, as well as the standard errors on these parameters, and a table giving the confidence intervals for all estimated parameters (conf.int)
   * added a summary method for SaemixRes object
   * added functions to obtain model predictions from a fitted model when a new dataset is given (under development)

o Bugfixes
   * the computation of the conditional distribution has been corrected, previously the distributions were too narrow

   
Version 2.3 -  October 2019

o Modifications following a change in the R compiler for 4.4.0
   "matrix objects now also inherit from class "array", namely, e.g., class(diag(1)) is c("matrix", "array") which invalidates code assuming that length(class(obj)) == 1, an incorrect assumption that is less frequently fulfilled now. "
   "S3 methods for "array", i.e., <someFun>.array(), are now also dispatched for matrix objects."

   
Version 2.2 -  October 2018

 o Bugfixes
   * computation of the Fisher Information Matrix recoded to fix an underestimation in the standard errors of the residual error terms 
   * FIM is now given in the results (slot fim of the results element) instead of -FIM
 o Changes to SaemixData object
   * changes to read method to correct warnings and improve automatic recognition
   * elements name cens, mdv, occ and ytype are now set during object creation, to prepare for models with multiple responses (not supported in version 2.2)
   * a slot of type logical called messages has been added to the SaemixData. Setting it to FALSE suppresses the messages output during the creation of an SaemixData object
o Changes to SaemixModel object
   * covariate.model can now be given as a vector (eg c(0,1,0)) or a matrix (eg matrix(c(0,1,0),ncol=3)
o Changes to SaemixObject object
   * the number of chains can be set to 1 by the user even with a small number of subjects (the minimum recommended number of subjects*times is 50 but the user can now choose to ignore this recommendation)
   * the number of iterations for simulated annealing can now be set to 0 by the user
 o Minor changes to comply with more stringent checks on CRAN

 
Version 2.1 -  August 2017

 o Version of the saemix package to CRAN that refers back to the JSS manuscript
Comets E, Lavenu A, Lavielle M. Parameter Estimation in Nonlinear Mixed Effect Models Using saemix, an R Implementation of the SAEM Algorithm. Journal of Statistical Software (2017), 80(3):1-41. doi:10.18637/jss.v080.i03


Version 2.0 -  September 2015

 o New features
    * the predict() function has been changed to return model predictions (see help file for details)
    * new extractor functions have been programmed: logLik, residuals, AIC, BIC

 o Bugfixes
    * minor bugfixes (correlation plot)

    
Version 1.2 -  February 2014

 o Bugfixes
    * corrected a bug which caused the run to fail when the model had only one random effect
    * explicit error message when attempting to create a model without random effects
    * minor bugfixes

    
Version 1.1 -  July 2013

 o Bugfixes
    * Corrected a mistake in the inverse transformation for the logit function
    * Corrected a bug where plot.type="population.fit" gave the same result as plot.type="individual.fit"
 o Changes
   * Covariates can now be entered as categorical (eg using Male/Female levels for gender instead of 0/1)
   * An error capture was implemented to avoid the fit failing because the convergence plots cannot be plotted, which may happen when the number of parameters to estimate is very large or the size of the plotting region too small (this can easily occur when using Rstudio with a small plot window). The run would fail with the following error message (in English):
Error in plot.new(): figure margins too large
Now an error message will be printed out, and the graphs will not be created during the fit. However, they can still be obtained after the fit using the plot.type="convergence" argument and a suitable mfrow argument (eg mfrow=c(1,1) will plot the convergence graph for each parameter on a new page).
   * Tests have been added when matching the covariate model specified with saemixModel and the data provided through saemixData
- when there are less covariates than those specified in the model, only the first lines of the covariate model matrix are used (as many lines as there are covariates in the model
- when there are more covariates than those specified in the model, an absence of relationship is assumed for the additional covariates
  o Documentation
    * Details on results objects have been added
    * The section explaining the different predictions, individual parameters and weighted residuals has been clarified


Version 1.0 -  January, 2012

 o Bugfixes
   * Missing covariates previously caused the fit to fail with a unenlightening error message. This has been corrected: now when covariates enter the model, lines with missing covariates are removed; this may cause some individuals to be removed from the dataset altogether if the corresponding covariates are missing entirely. 
    * A bug has been corrected which caused the call to saemix to fail when the dataset included covariates with values changing within an individual; a warning message has been added to inform the user that only the first value of the covariate is used in the computations
    * The computation of individual weighted and conditional weighted residuals with an exponential error model has been corrected.
    * Asking for population fits mistakingly yielded individual fits instead; this has been corrected.
    * Using an already existing directory now causes the program to overwrite previous results as the warning message implies.
    * An error in the computation of WRES for subjects with only one observation has been corrected (this bug would cause the plot for scatterplot of residuals to fail).

 o New features
   * Binary covariates can now be entered directly as factors; if entered as strings or numbers, they will be converted to factors. Using print() on the result of saemix will show which is the reference class.
   * Plots of the data now include the option individual=TRUE to plot individual data instead of a spaghetti plot of the whole dataset ; by default a maximum of 12 subjects are plotted, but this may be overuled with the option limit=FALSE
   * A function subset has been defined for a SaemixData object.
   * A function logLik has been defined to extract the log-likelihood from a SaemixObject object.

 o Changes
   * the structure of the SaemixData object has been slightly changed: the data is now included as a data.frame. All user-level functions are unchanged.


Version 0.97 - September 13, 2011

 o Bugfixes
   * corrected a bug causing the computation of the Fisher Information Matrix (and SEs) to fail when the dataset include subjects with only one observation


Version 0.96 - July 1, 2011

 Corrected version compiling under Windows and MacOS X

 o Bugfixes
   * modified the section saving the results, using file_test() and dir.create()

Version 0.95 - June 30, 2011

 First version released on CRAN
back to top