Skip to content

Version 3.11.2-beta

Choose a tag to compare

@eeholmes eeholmes released this 03 Oct 02:25
· 301 commits to master since this release

This is a further improvement on release 3.11.2 earlier in September. This is an update to make the testing and output (plots, residuals, tsSmooth, fitted) less reliant on MARSSkfss(), which involves an inversion of Vtt1 which can become ill-conditioned thus preventing inversion. The update also fixes a bug in the log-likelihood calculation due to not specifying the tol=0 in SSModel() call. This bug would come up only for certain variance matrices with very high condition numbers fit with method=BFGS. Data and covariates can now be a ts object and the time information will be used for plotting.

ENHANCEMENTS

  • Stop all MARSSkfss() calls when trace=-1. MARSSkfss() is used for error checks (because it has verbose information to indicate model problems) but because it uses matrix inversions, it will stop models from being fit just because they cannot be run through MARSSkfss() even if they run fine with MARSSkfas(), which doesn't use these matrix inversions.
  • Allow data, covariates and newdata to be a ts object. model.tsp attribute added to model and marss elements of marssMLE object and this information used for plotting and for t column in fitted, residuals and tsSmooth output.
  • Add xtt and Vtt to MARSSkfas() to avoid MARSSkfss() calls when unnecessary.

BUGS

  • In KFS(), a tolerance correction affected the log-likelihood value when R was below square root of machine tolerance or condition number was very high (if R non-diagonal). This created a large (incorrect) jump in the log-likelihood. This would be reported with a warning that the log-likelihood dropped if using the EM algorithm. Solution was to set the tolerance to 0 in the KFAS model in MARSSkfas(). Note this did not happen for all cases of small R and a warning would have been generated alerting the user to a problem.
  • MARSSkfas() did not recognize if H was time-varying.
  • No ACF should be plotted for state smoothation residuals. Fix to plot.marssMLE() and autoplot.marssMLE().
  • marssMLE$fun.kf was not always being passed to MARSShatyt() so it didn't necessarily use the function requested by the user.
  • coef.marssMLE() would not allow you to change type to, say, par.se.

DOCUMENTATION

  • Minor fixes to the derivations table in EMDerivation.Rnw and added some information on the initial conditions for the Kalman filter in the expectations section. Typo in eqn 29-31. u^T should have been u. Added information on EM algorithm when parameter set is updated by parts.
  • Added information on how to get CIs on rotated loadings to DFA chapter.
  • Cleaned up MARSSkf.Rd sections on initial conditions.
  • Added section on normalization calculations to Residuals.Rnw.