Version 3.11.2-beta
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 whentrace=-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 throughMARSSkfss()even if they run fine withMARSSkfas(), 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
tcolumn in fitted, residuals and tsSmooth output. - Add
xttandVtttoMARSSkfas()to avoidMARSSkfss()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 inMARSSkfas(). 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()andautoplot.marssMLE(). marssMLE$fun.kfwas not always being passed toMARSShatyt()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.