[Numpy-discussion] Changes to np.vander

josef.pktd at gmail.com josef.pktd at gmail.com
Sat Mar 29 07:31:28 EDT 2014


On Sat, Mar 29, 2014 at 12:12 AM, Jaime Fernández del Río
<jaime.frio at gmail.com> wrote:
> Hi,
>
> I have submitted a PR (https://github.com/numpy/numpy/pull/4568) that speeds
> up `np.vander` by using accumulated multiplication instead of exponentiation
> to compute the Vandermonde matrix. For largish matrices the speed-ups can be
> quite dramatic, over an order of magnitude.
>
> Julian has raised concerns on numerical stability and loss of precision,
> which don't seem to be all that relevant. Do speak up if you think
> otherwise.
>
> We are also discussing replacing a recently added kwarg, "order", which now
> accepts a string, either "increasing" or "decreasing", to indicate the
> ordering of the matrix columns. This was not present in 1.8, so can still be
> modified. The proposal is to replace it with a "reversed" boolean flag.
> Unfortunately, the return of np.vander in 1.8 and before is the opposite
> (i.e. its reversed) from the standard definition, which has powers
> increasing from left to right. So it is not clear what the reversed keyword
> should refer to:
>
> 1. If it refers to the standard definition, then it would default to False
> for backwards compatibility, but be consistent with the conventional
> definition.
>
> 2. If it refers to the existing behavior of numpy's vander, then it would
> default to True, and not be consistent with the conventional definition.
>
> I prefer option 1, but would like to hear other's opinions. Which could of
> course include naming the boolean flag more ingeniously, or keeping the
> string flag. If he's reading, I'd specially like to hear Warren Weckesser's
> thoughts, as he is the one who added the "order" kwarg.

"order" is not a good name, I would find it very confusing (I'm
usually mixing up order and degree)
http://en.wikipedia.org/wiki/Order_of_a_polynomial

how about calling the keyword "increasing=False" ?
which would avoid defining what it's reversed against.


I don't know about precision loss.
There's a nasty NIST problem for polynomial regression. If that
doesn't change much, I wouldn't worry about differences in precision
for statistical applications.

But the problem is for the regression part, and might not be affected
much by the vander precision. (Besides it's an example for "Don't do
that at home.")
http://jpktd.blogspot.ca/2012/03/numerical-accuracy-in-linear-least.html
http://en.wikibooks.org/wiki/Statistics:Numerical_Methods/Numerical_Comparison_of_Statistical_Software#Linear_Regression

Josef

>
> Jaime
>
> --
> (\__/)
> ( O.o)
> ( > <) Este es Conejo. Copia a Conejo en tu firma y ayúdale en sus planes de
> dominación mundial.
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>



More information about the NumPy-Discussion mailing list