On Jul 12, 2011, at 7:53 PM, KenjiPsyD wrote:
> I have a question about running an optimization function on an
> existing LOESS
> function defined in R. I have a very large dataset (1 million
> observations)
> and have run a LOESS regression. Now, I want to run a Newton-Raphson
> optimization to determine the point at which the slope change is the
> greatest.
>
> I am relatively new to R and have tried several permutations of the
> maxNR
> and nlm functions with no success. For example, I used the nlm
> function as
> follows:
>
> LOESS <- loess(Y ~ X)
> optim <- nlm(function(x) LOESS(x))...
I don't see how that would be examining slopes.
>
> However, this doesn't seem to work. In the examples I see online, the
> function in nlm and maxNR are user defined, instead of the output of
> another
> function (i.e., my LOESS regression).
>
> Is it possible to run this type of optimization function on my Loess
> function?
> cars.lo <- loess(dist ~ speed, cars)
> is.function( cars.lo)
[1] FALSE
If you want to make it a function, there is approxfun in the stats
package.
car.fun <- approxfun(x=cars.lo$x, cars.lo$fitted)
plot(dist~speed, data=cars)
curve(car.fun, add=TRUE)
Some functions require that a function be offered that takes x as its
argument.
> car.fun(x=5)
Error in car.fun(x = 5) : unused argument(s) (x = 5)
If that is the case with your optimization routine then you can create
one with:
> car.funx <- function(x) car.fun(x)
> car.funx(x=5)
[1] 8.095681
--
David Winsemius, MD
West Hartford, CT