[R] getting the smoother matrix from smooth.spline

Martin Maechler maechler at stat.math.ethz.ch
Mon Jun 26 11:34:30 CEST 2006


>>>>> "Gregory" == Gregory Gentlemen <gregory_gentlemen at yahoo.ca>
>>>>>     on Sat, 24 Jun 2006 14:41:37 -0400 (EDT) writes:


    Gregory> Can anyone tell me the trick for obtaining the
    Gregory> smoother matrix from smooth.spline when there are
    Gregory> non-unique values for x. I have the following code
    Gregory> but, of course, it only works when all values of x
    Gregory> are unique.

   >>    ## get the smoother matrix (x having unique values
   >>    smooth.matrix = function(x, df){
   >>      n = length(x);
   >>      A = matrix(0, n, n);
   >>      for(i in 1:n){
   >>        y = rep(0, n); y[i]=1;
   >>        yi = smooth.spline(x, y, df=df)$y;
   >>        A[,i]= yi;
   >>      }
   >>      (A+t(A))/2;
   >>    }

{ All the extraneous ";" at the end of lines make the above
  unncessarily ugly  (and potentially even slightly inefficient).}
   
Package 'sfsmisc' has had a  function  hatMat()  which returns
the hat matrix aka smoother matrix, in a slightly more general
way -- you can use it also for other smoothers, see the examples
in  help(hatMat).  The smoother defaults to smooth.spline(), so
you can directly use it, e.g.,
    hatMat(x, df=5)

Why do you think your code or hatMat()  would not work for
non-unique x-values?


    Gregory> Thanks for any assistance,
    Gregory> Gregory

    Gregory> ---------------------------------

    Gregory> [[alternative HTML version deleted]]
	     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

[please do read the posting guide, and hence get rid of the line above ! ]

    Gregory> ______________________________________________
    Gregory> R-help at stat.math.ethz.ch mailing list
    Gregory> https://stat.ethz.ch/mailman/listinfo/r-help
    Gregory> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html



More information about the R-help mailing list