[R] unexpected result from KalmanRun (KalmanLike, StructTS)

From: charles loboz <charles_loboz_at_yahoo.com>
Date: Thu 01 Dec 2005 - 09:12:05 EST


(re-formulate, re-send, without html)

  for vector y = c(1,2,3,4,5), H = 0.66 manual calculations
  using the equations below give a =
c(1,1.66,2.55,3.51,4.50).
  KalmanRun with these parameters gives res$states =
(1,1,1,1,1)!

for Kalman Filter Durbin/Koopman give at p67 eqs 4.13:   

     v = y - Z a, F = Z P Z' + H, K = T P Z' / F + H,

     a[t+1] = T a + K v, P[t+1] = T P L' + R Q R'   

  for P1 = 0, Q=0, T=Z=R=1 that reduces to:   

     v = y - a, F = H, K = H, a[t+1] = a + K v, P[t+1] = 0

     (also equivalent to exponential moving average, Durbin/Koopman p49)   

  So I am getting a serious discrepancy between manual and KalmanRun computations. To make things more interesting, looking into the code of arima.c we have at line 109 an equivalent of

      a[t+1] = anew + Pnew * resid0 / gain   where gain = mod$h = H (by line 97), resid0 = y-a = v (by lines 94-96)
  Since Pnew = 0, then a[t+1] = a, which explains why the computation
  returns res$states = c(1,1,1,1,1).   

  The help file says "'states', the contemporaneous state estimates",
  which I assumed to mean 'a' in the equations above. But that
  assumption does not agree with the numerical results. It also
  does not agree with the coding(?) as a[t+1] = a + K v differs
  substantially from a[t+1] = anew + Pnew * resid0 / gain. (all the previous lines of coding follow the kalman filter equations, but this one does not seem to - do we have some strong reformulation of the equations in the basic form?).   

  So, what does 'states' contain?



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Thu Dec 01 09:32:06 2005

This archive was generated by hypermail 2.1.8 : Thu 01 Dec 2005 - 14:26:07 EST