I have a data set consisting of noisy position values of a trajectory of a human hand. I want to estimate a generative model of these trajectories, and the obvious choice is a Kalman Filter/linear dynamical system.

Since the relationship of position/velocity/acceleration is well known, I chose a LDS with 3 latent variables (for each dimension) and hard coded the transition and emission matrices. I tuned the variances as diagonal covariances via "occular inspection".

(I maybe should have learned all the parameters via EM, with possibly more stats, with a prior on the model parameters somewhat, I know.)

Having done that, I realized that the LDS struggled with sudden changes of direction. Thus I wondered whether the assumption that acceleration is actually Gaussian distributed is correct.

Now I have several questions.

  1. How would I check whether the Gaussian assumption is a good one? One problem is, that I cannot get a reliable sample from the accelerations, since even the position signals have outliers, and so the outliers of the second derivative will be even more severe.)
  2. What state space models are there that do not assume Gaussianity all over the place? Which of those have inference fast enough to be usable in a real time system with ~20 predictions a second?
  3. Does anyone have any experiences with similar settings and might have any advice on which models to use?
  • $\begingroup$ Questioning the validity of the normality assumption is completely valid but, what makes you think that Gaussianity is the problem here and not "occular inspection"-estimation? $\endgroup$ – user10525 Apr 30 '12 at 20:51
  • 1
    $\begingroup$ "have outliers" already implies "not Gaussian" $\endgroup$ – Glen_b -Reinstate Monica Oct 12 '13 at 20:59

Bootstrap resampling of values near in time to the event vs. bootstrap resampling in clearly linear locations should tell you if the (very likely) case of acceleration changes the shape of your noise. The primary assumption of the LKF isn't Gaussian noise, it is uncorrelated noise. You might need to be asking if the noise is correlated at periods of acceleration. One could also put a ceiling on the acceleration of the hand using physics and then reject some of the outliers before feeding them into the LKF.

We have computers working at GigaFlops. They do about two billion (9-zeros) calculations per second. Running a simulation with 20 samples per second is going to become a challenge only if each sample takes $2e9/2e1 = 1e8 = 100$ million operations per sample.

My first thought here is to make a collection of 2nd order models that traverse the domain of parameter values for mass, damping, and whatever. You feed the data into all of them and then use something like AICc-weights in the error to combine them. (link) As long as your sampling rate is high enough then you should be okay. It might be interesting to track which models are within and AIC of less than 5 of the optimal model as a function of time and motion. You might want to limit the model to some window of the data and not the whole history. You might want some models to have narrow windows and others to have wide ones.

I am sure someone has done something like this before. I haven't done exactly this, though.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.