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?
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
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.
... 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?
dependent data = dependent data rows
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 newunsafe
argument ofmxBootstrap()
toTRUE
. The error message makes this suggestion to try theunsafe
argument, then turns into a warning.Good luck!
Thank you, Mike!