Results for keyword MSSM :
-
Data Cloning II
by eric.ward, last updated 2/22/09, sharing set to Public
Before you begin with this code, make sure you download the latest release of OpenBUGS(now 3.0.3) and it is installed to the default directory, "C:\Program Files\OpenBUGS". We've also found that it helps to have a cleaned up registry + defregmented hard drive before using OpenBUGS. The version of R that you're using should also be noted - R 2.5.1 and 2.7.0 work great with OpenBUGS, but there was a glitch in R 2.6.0 that prevented OpenBUGS from ever running through R. When using BUGS, I think that you can obviously use WinBUGS or OpenBUGS. While both programs should yield the same result, I had much more success with OpenBUGS, particularly in terms of the program not crashing during the burn-in (anyone familiar with 'trap' error messages knows what I'm talking about). There are 2 project files. The first (writeModel.r) is sourced by the second file (runDataCloning2.r). If you want to modify the bounds on parameters, you'll need to edit writeModel.r - otherwise, everything will be done behind the scenes. I've tried to predict many of the errors that might occur - for example, it doesn't make sense to have all sites belonging to the same group (m = 1) and an unconstrained covariance matrix. These files won't automate every possible MSSM that you want to fit, but they will do the majority of them. The R script files actually write the BUGS code for you, so you don't have to know any BUGS coding. You should however, be aware of the priors. Uniform priors are used on SDs and growth rates - to change these, look anywhere in the file for (~ dunif(a,b), where a and b are the limits). The code also includes the option of including an interaction matrix (multiple species) or density dependence matrix (multiple populations). The priors for all of these terms are bounded (0,1). Included are several examples of summarizing parameters, including the median, mean, and using density to estimate the mode. The actual MLEs are going to be the points associated with the best (lowest) density. -
Kalman-EM
by e2holmes, last updated 10/21/09, sharing set to Public
KalmanEM.R fits mulitvariate state space models to multivariate time series data.
X(t) = B X(t-1) + U + E(t), E~N(0,Q)
Y(t) = Z X(t) + A + eta(t), eta~N(0,R)
What you need to use this code: Download KalmanEM.R (or scroll down to download all the files). Open R and source("KalmanEM.R"). That's it. For basic analyses, all the packages you need are included in the base R distribution.
About this code: This code is used to estimate maximum likelihood parameters for multivariate state space time series models via an EM algorithm using the Kalman filter+smoother. We assume that there are N observation time series over T years, and that there may be shared parameters (growth rates, process error, observation error) across sites. Further, the errors may be correlated between sites and the N sites may be clustered into groups. We have a number of online workshops on multivariate state-space models available with case studies and examples for estimating trends, evaluating population structure, estimating interactions, and analyzing movement data: MSSM workshop The base EM algorithm is from Shumway and Stoffer (2006). EM is a hill-climbing algorithm and many times the likelihood surface is multi-model. Use KalmanEM(...,MonteCarloInit = TRUE) to turn on searching of the initial condition space. This will deal with the vanilla multi-model problems. The "help files.pdf" file has the R help files for the main functions.
Learning how to use the code: Case Studies.pdf is effectively the current manual. Scripts and data for all the case studies are in the zip file Case studies scripts.zip. The easiest way to learn this code to read case studies 1 and 2 in the Case Studies.pdf. That will walk you through four applications. I have removed Case Study 4 which is on estimation of interactions. Currently we are researching the robustness of estimating interaction terms using MARSS models when the R matrix is free (estimated). One approach is to use a fixed R matrix, but that option is not in the current code. So use caution (meaning test, test, test) if you are using the option B.constraint="unconstrained".
Project news (Nov 2009): See the file update_info.txt for changes in the code since 8/6/08 and the original release. We are in active development of MARSS 3.0, which is a complete reorganization of the code to make it into an R package. MARSS 3.0 uses a general EM algorithm to allow you to fit any models of the MSSM form above with fixed values arbitrarily distributed through the matrices. On Nov 6th, we completed our beta package and are in the final testing phase. We are also actively working on Bayesian versions and non-Normal versions. See our personal websites for group news on papers and code coming out of this work: EE Holmes website, Eric Ward website, Brice Semmens website, and Mark Scheuerell website.