[SciPy-User] scipy.interpolate.rbf sensitive to input noise ?

Robert Kern robert.kern at gmail.com
Thu Feb 18 10:48:51 EST 2010


On Thu, Feb 18, 2010 at 09:19, denis <denis-bz-gg at t-online.de> wrote:
> A followup to the 15feb thread "creating a 3D surface plot from
> collected data":
> the doc for scipy.interpolate.rbf says that 3 of the 7 radial
> functions
> use a scale paramater `epsilon`, 4 do not.
> Odd -- how can some be scale-free ?
> Running rbf on 100 1d random.uniform input points
> (after changing the linalg.solve in rbf.py to lstsq)

Why would you do this? This does not magically turn Rbf interpolation
into a smoothing approximation. Use the "smooth" keyword to specify a
smoothing parameter.

> shows that all but linear and gaussian are noisy,
> giving interpolants way outside the input range:
>
>    N: 100  ngrid: 50  sigma: 0.1
>    # min  max  max |delta|  Rbf
>     -1.0  1.0   0.5  gaussian
>     -1.0  1.2   0.3  linear
>     -1.4  2.1   2.5  thin-plate
>     -1.0  2.2   3.0  inverse multiquadric
>     -1.0  2.4   3.2  multiquadric
>     -2.1 12.8   7.4  quintic
>    -10.6  7.0  11.7  cubic
>
> Should Rbf be moved off to noisymethods/...  until experts can look it
> over,
> or have I done something stupid ?

I'm not sure what else you would expect from interpolating uniform
random noise. Many interpolation methods tend to give such
oscillations on such data.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco



More information about the SciPy-User mailing list