[R] smooth.spline gives different results from sreg ?

2013-07-27 Thread Jean-Luc Dupouey
Dear R-helpers,

I compared various programs for cubic spline smoothing, and it appeared 
that smooth.spline ( stats version 3.0.1) seems to behave surprisingly. 
For enough long series and low values of lambda (or spar), the results 
of smooth.spline seem to be different from those of sreg ( package 
fields version 6.8), Octave (=MATLAB) or SAS. These three last softwares 
always gave the same results.

Here is a script which shows the problem:

#generate a random series of 2000 values

set.seed(1)
MyData=data.frame(Time=1:2000,Val=runif(1000))

#calculate the sreg cubic smoothing spline with a given lambda parameter 
(0.006 here)

library(fields)

SplineFields=sreg(MyData$Time,MyData$Val,lambda=0.006)

#keep the minimim fitted value (or any other from a long list of 
possible values)

ValMin=min(SplineFields$fitted.values)
TimeValMin=which.min(SplineFields$fitted.values)

#calculations of all possible fitted values at the TimeValMin point with 
smooth.spline,
#varying the spar parameter in the range of all its possible values

SplineRValMin=sapply(seq(-0.5,2.5,0.1),
   function(Ispar) {
 SplineR=smooth.spline(MyData$Time,MyData$Val,spar=Ispar)
 SplineR$y[TimeValMin]})

#None of the smooth.spline fitted values reach the one calculated with 
sreg !

Lim=range(ValMin,SplineRValMin)

#smooth.spline values
plot(seq(-0.5,2.5,0.1),SplineRValMin,type=l,ylim=Lim)

#sreg value
abline(h=ValMin)

I hope there is no real problem here, but only some misunderstanding 
from my side, because cubic splines are very often used. Best regards,

Jean-Luc Dupouey

-- 
INRA-Nancy University
Forest Ecology and Ecophysiology Unit
F-54280 Champenoux
mail:dupo...@nancy.inra.fr


[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] smooth.spline gives different results from sreg ?

2013-07-27 Thread Duncan Murdoch

On 13-07-27 2:50 PM, Jean-Luc Dupouey wrote:

Dear R-helpers,

I compared various programs for cubic spline smoothing, and it appeared
that smooth.spline ( stats version 3.0.1) seems to behave surprisingly.
For enough long series and low values of lambda (or spar), the results
of smooth.spline seem to be different from those of sreg ( package
fields version 6.8), Octave (=MATLAB) or SAS. These three last softwares
always gave the same results.


Did you read the ?smooth.spline help page, in particular the Details and 
Note sections?  They indicate that the default computation makes some 
efficiency simplifications.


Duncan Murdoch



Here is a script which shows the problem:

#generate a random series of 2000 values

set.seed(1)
MyData=data.frame(Time=1:2000,Val=runif(1000))

#calculate the sreg cubic smoothing spline with a given lambda parameter
(0.006 here)

library(fields)

SplineFields=sreg(MyData$Time,MyData$Val,lambda=0.006)

#keep the minimim fitted value (or any other from a long list of
possible values)

ValMin=min(SplineFields$fitted.values)
TimeValMin=which.min(SplineFields$fitted.values)

#calculations of all possible fitted values at the TimeValMin point with
smooth.spline,
#varying the spar parameter in the range of all its possible values

SplineRValMin=sapply(seq(-0.5,2.5,0.1),
function(Ispar) {
  SplineR=smooth.spline(MyData$Time,MyData$Val,spar=Ispar)
  SplineR$y[TimeValMin]})

#None of the smooth.spline fitted values reach the one calculated with
sreg !

Lim=range(ValMin,SplineRValMin)

#smooth.spline values
plot(seq(-0.5,2.5,0.1),SplineRValMin,type=l,ylim=Lim)

#sreg value
abline(h=ValMin)

I hope there is no real problem here, but only some misunderstanding
from my side, because cubic splines are very often used. Best regards,

Jean-Luc Dupouey



__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.