[ADMB Users] Requesting advice on Kalman filters

Armando Mastracci mastracci at gmail.com
Fri Mar 15 10:45:20 PDT 2013


Thanks John for the reference.

As my understanding of Kf increases, especially in light of your
explanation, I see it as essentially different than my problem.  Thanks for
helping me with this.  The fundamental difference is that Kf is predicting
current state based on previous states, factoring in error.  Whereas in my
problem, there is not a prediction per se but merely uses the measurement
of changes within a moving window of data from the time series to establish
future values.  Kf will predict future state whereas I need the actual rate
of change data for an algebraic prediction, so-to-speak. (If this makes any
sense).

At the moment, I'm pursuing a least squares poly regression and using the
first derivative for slope.  Pretty straightforward...

Cheers


On Fri, Mar 15, 2013 at 12:56 PM, John Sibert <sibert at hawaii.edu> wrote:

> 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<http://lists.admb-project.org/mailman/listinfo/users>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.admb-project.org/pipermail/users/attachments/20130315/969d2ad3/attachment.html>


More information about the Users mailing list