Cautions
B estimation is not entirely stable--at least with more than 2 spp and unconstrained Q and R.
Version 2.69 Oct 4, 2009
added states.se to output list
fixed stderr computation in the emHessian() function; typo
pulled the stderr and CI calculations into a helper function computeCIs()
blocked B estimation when B is diagonal and Q is not diagonal; something is wrong with the computation; perhaps there are multiple solutions (not fully constrained problem)
Version 2.67 July 17, 2009 versus 1/21/09 version
fixed x00 init bug in MCInit when x00init<1
fixed bugs to B estimation and allow fixed B and fixed Z and fixed U
changed parametric bootstrap to match Stoffer and Wall rec to use e(1:3,) original rather than bootstrapped.
added AICc
added try() in emHessian so it doesn't choke when the Hessian can't be inverted
add require(mvrnorm) to newData so it can be called alone;
a couple more init bugs due to R's diag() behavior
added Hessian.AICb to bootstrapMSSM
floor added to dim checking of inits so identical() works
added vectorizemssm and emHessian to KalmanEM file
fixed bug re loglike not being passed back when x00prior=T; also made the init error-checking more robust
changed call to Kfilter to be Kfilter(model); fixed dimensions of all outputted params
bug in the error checking for equalvarcov
fixed typo in U update
changed the bootstrap inits; changed the x00inits
needed to recalculate kf when x00prior=FALSE before returning to user
fixed LL bug when missing values; fixed U update bug when Q unconstrained; changed iter.record so it dynamically sizes itself; added some whistles to the silent=F output
added x00prior argument
fixed Qinit and Rinit to take matrices and vectors
added equalvarcov.groups
fixed K calc for AIC
added debugit to arg list so iter.record isn't always stored; added FailedArgumentCheck function
replaced T with TRUE throughout; fixed AICi call; changed bootstrapMSSM to take vector for output options
removed CIs for states in arg list
changed the AICi routine so it doesn't require nBoot^2 Kfilter calls
Added AICi; added arguments and error-checking for bootstrapMSSM; added AIC to KalmanEM()
error was being thrown when equalvarcov set because Q.groups requirement was too picky
Updates in the 5/11/09 vers. (over the 1/26/09 vers) of KalmanEM.R
* The main KalmanEM() function will output AIC and AICc.
* Bugs in B estimation were fixed.
* Fixed B matrices are allowed.
Updates in the 1/26/09 vers. (over the 8/6/08 vers) of KalmanEM.R
* Groups can now be given names instead of just numbers. So whichPop=c("north","south","north","north") for example instead of c(1,2,1,1). Column and row names will use the text labels.
* A bug relating to N=1 (logN=0) values was fixed.
* Bootstrap functions were added for model selection (AICb) and bootstrap CIs. No documentation yet, but the code is commented.
* A bug that prevented the code from being used for certain univariate time series was fixed.
* Fixed a bug with the MCInit=T (which allows searching of the initial conditions space). Due to this bug, MCInit=T did not work properly find the maximum likelihood in some cases in the 8.6.09 version (although it would act like it did).