[ADMB Users] Requesting advice on Kalman filters

Armando Mastracci mastracci at gmail.com
Wed Mar 13 16:14:31 PDT 2013


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.


More information about the Users mailing list