You are here

Bootstrapping State Space Models

7 posts / 0 new
Last post
janneadolf's picture
Offline
Joined: 02/06/2015 - 11:29
Bootstrapping State Space Models

I would like to bootstrap standard error estimates for the parameters of a state space model implemented using OpenMx's SSM functionality (i.e., mxExpectationStateSpace). If I hand the example model from the mxExpectationStateSpace documentation page to the mxBootstrap function it does run without any complaints. But I consistently get standard error estimates of 0 and all percentiles land on the point estimates. Is mxBootstrap not (yet) capable of handling (models implying) dependent rows of data?

mhunter's picture
Offline
Joined: 07/31/2009 - 15:26
No Idea

Hi Janne,

I have no idea what mxBootstrap() does when you give it a model with a state space expectation. My first impulse is that it should give you an error indicating no such functionality is implemented. However, the main bootstrap developer (Rob Kirkpatrick) might have other views.

Bootstrapping has no way of handling the dependent rows of data. However, the residuals in state space models are assumed to be independent, so some kind of bootstrapping could be done on the residuals. Alternatively, you could probably do bootstrapping on blocks of data rather than rows. I'm not up to speed on the details right now.

Hope that helps!
Mike

AdminRobK's picture
Online
Joined: 01/24/2014 - 12:15
I am pretty sure that OpenMx

I am pretty sure that OpenMx's bootstrapping feature works with a state-space expectation in the same way it does with multilevel data: it does the wrong thing because it shuffles rows of datsets as though they were all independent.

janneadolf's picture
Offline
Joined: 02/06/2015 - 11:29
Thanks - that certainly helps!

... and makes sense. I had noted the remark on nested and multi-level data in mxBootstrap's documentation - but was still secretly hoping you guys might have taken care of the special case of SSM. It would have been too convenient.
I'm not too familiar with resampling-strategies for dependent data, but resampling residuals seems like a good starting point.
Any intentions of generalizing mxBootstrap() to these situations/strategies?
In the meantime, maybe it could indeed be useful to have the function return a warning for the cases not handled properly?

janneadolf's picture
Offline
Joined: 02/06/2015 - 11:29
dependent data = dependent

dependent data = dependent data rows

mhunter's picture
Offline
Joined: 07/31/2009 - 15:26
New behavior

I've implemented new behavior for mxBootstrap() for state space and multilevel models. As of this posting the new functionality is not yet released, but will likely be released in the next few weeks.

The new behavior throws an error when trying to use mxBootstrap() on a state space model. However, there is the option to override this error by setting the new unsafe argument of mxBootstrap() to TRUE. The error message makes this suggestion to try the unsafe argument, then turns into a warning.

Good luck!

janneadolf's picture
Offline
Joined: 02/06/2015 - 11:29
Thank you, Mike!

Thank you, Mike!