[SciPy-User] fast small matrix multiplication with cython?

Charles R Harris charlesr.harris at gmail.com
Tue Dec 7 19:37:31 EST 2010


On Tue, Dec 7, 2010 at 5:09 PM, <josef.pktd at gmail.com> wrote:

> On Tue, Dec 7, 2010 at 6:45 PM, Charles R Harris
> <charlesr.harris at gmail.com> wrote:
> >
> >
> > On Tue, Dec 7, 2010 at 10:39 AM, Skipper Seabold <jsseabold at gmail.com>
> > wrote:
> >>
> >> On Tue, Dec 7, 2010 at 12:17 PM, Charles R Harris
> >> <charlesr.harris at gmail.com> wrote:
> >> >
> >> >
> >> > On Tue, Dec 7, 2010 at 10:05 AM, <josef.pktd at gmail.com> wrote:
> >>
> >> <snip>
> >>
> >> >> It's still a linear filter, non-linear optimization comes in because
> >> >> the exact loglikelihood function for ARMA is non-linear in the
> >> >> coefficients.
> >> >> (There might be a way to calculate the derivative in the same loop,
> >> >> but that's a different issue.)
> >> >>
> >> >
> >> > The unscented Kalman filter is a better way to estimate the covariance
> >> > of a
> >> > non-linear process, think of it as a better integrator. If the
> >> > propagation
> >> > is easy to compute, which seems to be the case here, it will probably
> >> > save
> >> > you some time. You might even be able to use the basic idea and skip
> the
> >> > Kalman part altogether.
> >> >
> >> > My general aim here is to optimize the algorithm first before getting
> >> > caught
> >> > up in the details of matrix multiplication in c. Premature
> optimization
> >> > and
> >> > all that.
> >> >
> >>
> >> Hmm I haven't seen this mentioned much in what I've been reading or
> >> the documentation on existing software for ARMA processes, so I never
> >> thought much about it.  I will have a closer look.  Well, google turns
> >> up this thread...
> >>
> >
> > I've started reading up a bit on what you are doing and the application
> > doesn't use extended Kalman filters, so the suggestion to use unscented
> > Kalman filters is irrelevant. Sorry about that ;) I'm still wading
> through
> > the various statistical notation thickets to see if there might be a
> better
> > form to use for the problem but I don't see one at the moment.
>
> There are faster ways to get the likelihood for a simple ARMA process
> than using a Kalman Filter. I think the main advantage and reason for
> the popularity of Kalman Filter for this is that it is easier to
> extend. So using too many tricks that are specific to the simple ARMA
> might take away much of the advantage of getting a fast Kalman Filter.
>
> I didn't read much of the details for the Kalman Filter for this, but
> that was my conclusion from the non-Kalman Filter literature.
>
>
Well, there are five forms of the standard Kalman filter that I am somewhat
familiar with and some are better suited to some applications than others.
But at this point I don't see that there is any reason not to use the common
form for the ARMA case. It would be interesting to see some profiling since
the matrix inversions are likely to dominate as the number of variables go
up.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20101207/12582eb9/attachment.html>


More information about the SciPy-User mailing list