[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