Re: [R] coefficients of each local polynomial from loess() or locfit()

From: Dieter Menne <dieter.menne_at_menne-biomed.de>
Date: Fri 05 Jan 2007 - 14:01:46 GMT

Liu, Delong (NIH/CIT) [C] <liud2 <at> mail.nih.gov> writes:

>>>
I want to extract estimated coeffiicents of each local polynomial at given x from loess(), locfit(), or KernSmooth(). Can some experts provide me with suggestions? Thanks.
>>

Try

cars.lo <- loess(dist ~ speed, cars)
str(cars.lo)

List of 17

 $ n        : int 50
 $ fitted   : num [1:50]  5.89  5.89 12.57 12.57 15.37 ...
 $ residuals: Named num [1:50] -3.894  4.106 -8.568  9.432  0.631 ...
... omitted

..$ cell : num 0.2
..$ family : chr "gaussian"
..$ iterations : num 1
$ kd :List of 5

..$ parameter: Named int [1:7] 1 50 2 19 11 1049 849
  .. ..- attr(*, "names")= chr [1:7] "d" "n" "vc" "nc" ...

..$ a : int [1:19] 1 1 1 1 1 1 1 0 0 0 ...
..$ xi : num [1:19] 15 12 19 9 13 17 20 0 0 0 ...
..$ vert : num [1:2] 3.90 25.11
..$ vval : num [1:22] 5.71 1.72 96.46 10.88 41.21 ...
$ call : language loess(formula = dist ~ speed, data = cars) Looks like kd holds information about the polynomials. Then, try

getAnywhere(predict.loess)

which will show you that the real work is done in function predLoess. Trying again

getAnywhere(predLoess)

you get an idea how the parameters are used for prediction.

fit[inside] <- .C(R_loess_ifit, as.integer(kd$parameter),

     as.integer(kd$a), as.double(kd$xi), as.double(kd$vert), 
        as.double(kd$vval), as.integer(M1), as.double(x.evaluate[inside, 
      ]), fit = double(M1))$fit

Dieter



R-help@stat.math.ethz.ch 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. Received on Sat Jan 06 11:41:07 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Sat 06 Jan 2007 - 01:30:25 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.