Gentleman's AS75 (+ Miller AS 274) Incremental WLS Algorithms


#1

Has someone already implemented Gentleman’s AS75 WLS code in Julia? It is not only fast and robust, but works nicely with adding single obs, one at a time.

It is not difficult, but if there is a good standard package, I would prefer it. regards, /iaw


#2

I might be able to come up with the implementation as I don’t think there is one at the moment. However, it might be best to identify the missing components in the LinearAlgebra standard library module. For example, #10953 which improves Cholesky decomposition with the LDLt variant for abstract matrices. An alternative is to push for rank updates which aren’t well supported right now #2929. No matter the implementation it has to be build to play nice with the Factorization structs which still might suffer a few changes and are based on the BLAS library. For some aspects such as computing subset of parameters especially in sparse problems one can use the within transformation (I have a package with the implementation and there are others as well) or use an sparse iterative solvers.


#3

thx, N. this is way above my head. I may just roll my own for my own purposes, which (because it won’t have to play with anything else) would be relatively fast and easy.


#4

If you implement the algorithms in a sensitive manner you can share that and let people in the LinearAlgebra module pick it up and work it out. Best of luck.


#5

hi N: I wrote a basic implementation of AS75. where is the right place to share it? or just put it in a long post here? regards, /iaw


#6

You could post it here or share the gist (the link to the code gist). I would then open an issue in Julia for Linear Algebra stdlib for the core functionalities or to make it work better with the Factorization structs. Otherwise, I could look for a repository for it.


#7

here is a julia beginner implementation of AS75. it comes with an example test at the end.

never used this gist before. it is convenient. thanks.


#8

Rather than pasting long snippets of code verbatim, can I suggest that you use something like https://gist.github.com/? This has the advantage of allowing updates.