[R] need help with smooth.spline

Liaw, Andy andy_liaw at merck.com
Thu Mar 4 15:30:05 CET 2004


Hi Carlisle,

If I understand you correctly, the problem is smooth.spline() not handling
sharp jump(s), right?  If so, it's probably easier to try something that can
handle such features.  Wavelet `denoising' (as opposed to `smoothing', and
available in the wavethresh package) is well known for being able to handle
abrupt changes (very `spatially adaptive').  Other things you might consider
are mars() in the `mda' package (which fits splines in an adaptive fashion)
and locfit() in the `locfit' package.  For locfit, you will want to specify
local smoothing parameter selection, via a call like

  locfit(..., alpha=c(0, 0, 2), acri="cp")

You might need to play with the `2' a bit to get the right amount of
smoothing.  The details are in Loader's book `Local regression and
Likelihood'.

HTH,
Andy

> From: W. C. Thacker
> 
> Andy,
> 
> As the data are often noisy, smoothing splines should be appropriate.
> 
> The first example profile shows an isothermal (constant temperature)
> layer in the upper ocean followed by a sharp thermocline (large
> temperature gradient), but there are relatively few observations
> defining this sharp transition.  In this case simple linear
> interpolation works fine, but smooth.spline() with all defaults gives
> an absolutely absurd value in the isothermal layer.  With all.knots =
> TRUE, the values in the isothermal layer are much better but still
> peculiar.
> 
> Given the sampling and the data, is it possible to get smooth.spline()
> do better?  If so, would that adversely impact its performance for
> other cases?  (There are thousands of profiles.)  If not, is there a
> simp[le way to select cases that smooth.spline() should not be
> expected to handle, so they can be treated separately?
> 
> Thanks,
> 
> Carlisle
> 
> "Liaw, Andy" wrote:
> > 
> > If you really want interpolation, should you be using 
> spline() rather than
> > smooth.spline()?  The later is for smoothing data observed 
> with noise, not
> > for interpolation.
> > 
> > Andy
> > 
> > > From: W. C. Thacker
> > >
> > > Dear R listers,
> > >
> > > When using smooth.spline to interpolate data, results are 
> generally
> > > good.  However, some cases produce totally unreasonable results.
> > >
> > > The data are values of pressure, temperature, and salinity from a
> > > probe that is lowered into the ocean, and the objective is to
> > > interpolate temperature and salinity to specified 
> pressures.  While
> > > smooth.spline provides excellent values at the observed pressures,
> > > there are cases when the values at the desired pressures are
> > > unusable.  A dataframe with four such profiles, indicated 
> by values of
> > > id, is attached.  My target values for pressure are 
> seq(25,1600,25),
> > > but 1:500 is also interesting.
> > >
> > > Setting all.knots = TRUE helps, but it would be nice to 
> be able to do
> > > better.
> > >
> > > Any suggestions?
> > >
> > > Thanks,
> > >
> > > Carlisle
> > >
> > > > version
> > >          _
> > > platform sparc-sun-solaris2.9
> > > arch     sparc
> > > os       solaris2.9
> > > system   sparc, solaris2.9
> > > status
> > > major    1
> > > minor    8.0
> > > year     2003
> > > month    10
> > > day      08
> > > language R
> > >
> > >
> > > --
> > >
> > > William Carlisle Thacker
> > >
> > > Atlantic Oceanographic and Meteorological Laboratory
> > > 4301 Rickenbacker Causeway, Miami, Florida 33149 USA
> > > Office: (305) 361-4323           Fax: (305) 361-4392
> > >
> > > "Too many have dispensed with generosity
> > >      in order to practice charity."     Albert Camus
> > >
> > > ______________________________________________
> > > R-help at stat.math.ethz.ch mailing list
> > > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> > > PLEASE do read the posting guide!
> > > http://www.R-project.org/posting-guide.html
> > >
> > >
> > 
> > 
> --------------------------------------------------------------
> ----------------
> > Notice:  This e-mail message, together with any 
> attachments,...{{dropped}}
> > 
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html
> 
> -- 
> 
> William 
> Carlisle Thacker                            
>                                                     
> Atlantic Oceanographic and Meteorological Laboratory
> 4301 Rickenbacker Causeway, Miami, Florida 33149 USA
> Office: (305) 361-4323           Fax: (305) 361-4392
> 
> "Too many have dispensed with generosity 
>      in order to practice charity."     Albert Camus
> 
> 


------------------------------------------------------------------------------
Notice:  This e-mail message, together with any attachments,...{{dropped}}




More information about the R-help mailing list