Intento obtener los residuos de un ajuste lowess. Estoy utilizando el lowess( )
función. ¿Hay alguna forma de hacerlo?
Respuesta
¿Demasiados anuncios?No directamente, pero puede obtener la información, por lo general con bastante facilidad.
El estrechamente relacionado loess
en R funciona con predict
(véase ?loess
), puede que le resulte más fácil.
Típico, lowess
evalúa la función en los datos (por lo que sólo puede ordenar la salida y encontrar el $y$ para su $x$ ), pero para algunas configuraciones de los argumentos de entrada puede saltarse algunos puntos, y es posible que desee evitar la posibilidad de duplicar $x$ valores.
Una forma bastante limpia de hacerlo es utilizar approxfun
para definir una función, y entonces usted no tiene que preocuparse de lo que los ajustes fueron o si hay omitidos o duplicados $x$ 's:
# first set up a lowess fit:
lfit <- lowess(x,y)
# create a functional version of the lowess fit
lfun <- approxfun(lfit)
fitted <- lfun(x)
resid <- y-fitted
Pongamos un ejemplo:
carsfit <- with(cars,lowess(speed,dist))
carslowessfun <- approxfun(carsfit)
fitted <- lfun(cars$speed) #$
resid <- cars$dist-fitted #$
plot(fitted,resid)
abline(h=0,col=8)
$\ $