[ADMB Users] Requesting advice on Kalman filters
John Sibert
sibert at hawaii.edu
Fri Mar 15 09:56:10 PDT 2013
A good general reference for state-space Kalman filter models is Harvey,
A.C. 1990. Forecasting, structural time series models and the Kalman
filter. Cambridge. I think Dave's ADMB example uses the same notation as
Harvey.
Dave's example was the the starting place for most of the Kf models that
Anders Nielsen and I and other collaborators used to develop our track
reconstruction models. Most of these are cited in Lam, et al MEPS
419:71-84, 2010 (I will send you the pdf off list).
The Kf is a fairly simple notion (at least in principle). You have a
time series of (noisy) observations and a model that predicts the the
current state of the time series given an estimate of the previous
state. The Kf predicts the next state as the weighted average of the
observation and the model prediction, where the weighting is inversely
related to the variance of the observation and the model prediction. One
of the advantages of the Kf is that it automatically downweights
observations that are wildly inaccurate, unlike (say) a moving average
where the inaccurate observations can skew the predictions.
Having said that, I really don't understand your problem well enough to
judge whether the Kf would be useful in your case.
Cheers,
John
John Sibert
Emeritus Researcher, SOEST
University of Hawaii at Manoa
Honolulu HI (GMT-10)
808-294-3842
Visit the ADMB project http://admb-project.org/
On 03/13/2013 01:14 PM, Armando Mastracci wrote:
> I've been working with ADMB for a couple of months now. Progress has been excellent thanks to help from a several folks particularly Dave.
>
> Qualifying my request, I'm not overly familiar with deep statistical concepts, let alone how they work in ADMB. I'm using ADMB for a fairly complex non-linear regression application. It is working remarkably well. I have 20+ parameters that I optimize in successive runs of where the .par of one is the .pin of the next, using a per-run .dat file containing phase data to control which parameters are optimized for each run.
>
> A challenge I'm facing now is a difficult one and really could use the help of the smart people that use this product to point me in the right direction.
>
> The regression takes 4 vectors as data where 3 vectors are run through an algebraic model (derived results) to compare against the 4th (measured results) using regression() and/or robust_regression() to establish optimal parameter values.
>
> The input data vectors are time-series data with entries on a per second basis. In the algebraic model, we need a slope measurement together with a phase offset of one of these vectors which is then used in a transient calculation during the derivation. The number of entries used in the slope calculation and the relative index to adjust for phase offset are integers (not optimized) today. However, I'm looking to be able to parameterize them.
>
> So for example, we have time-series data that looks like this: 130, 131, 132, 139, 134, 135, 135,135,132, 129, etc. There is error in the time series (as in the 139 entry) and we need to calculate the slope of the time series data for use in a transient formula. At the moment, I'm smoothing the slope quite substantially to get the best results - 16 seconds of data are used in a linear least-squares regression to calculate the slope. Phase offsets range from -6 to -8. The optimization works but there is more standard deviation between derived and measured that I'd like to eliminate. I'd like to move to a higher polynomial least-squares regression and to make the number of seconds and the phase offset real values so that they can be optimized.
>
> I'm not familiar with Kalman filters and the description of them in the ADMB manual are a bit out-of-my-reach from a concept comprehension standpoint. However the time-series application possibility makes me think they might apply to my situation.
>
> At this stage, I'm hoping someone can point me in the right direction as to whether Kalman filters in ADMB can accomplish what I'm trying to do and if there are any other recommendations anyone might have. If so, I can dig into how they work and how I would apply them. If not, I can start the coding effort needed.
>
> Much thanks.
> _______________________________________________
> Users mailing list
> Users at admb-project.org
> http://lists.admb-project.org/mailman/listinfo/users
>
More information about the Users
mailing list