¿Cómo obtener un R cuadrado para un ajuste loess?

15

¿Cómo calcular la estadística R-cuadrado ( ) en R para y / o salida de función? Por ejemplo para estos datos:r2loesspredict

cars.lo <- loess(dist ~ speed, cars)
cars.lp <- predict(cars.lo, data.frame(speed = seq(5, 30, 1)), se = TRUE)

cars.lptiene dos matrices fitpara modelo y se.fitpara error estándar.

Yuriy Petrovskiy
fuente
En la regresión lineal es igual a la correlación al cuadrado entre los valores observados y los valores ajustados - ¿qué tal? R2
Macro

Respuestas:

10

Mi primer pensamiento fue calcular una medida de pseudo R2 siguiente manera:

ss.dist <- sum(scale(cars$dist, scale=FALSE)^2)
ss.resid <- sum(resid(cars.lo)^2)
1-ss.resid/ss.dist

Aquí, obtenemos un valor de 0.6814984 ( ), cercano a lo que se obtendría de un GAM : cor(cars$dist, predict(cars.lo))^2

library(mgcv)
summary(gam(dist ~ speed, data=cars))

loessMultiple R-squaredairqualityairloessR2

ingrese la descripción de la imagen aquí

R2

spanR2

chl
fuente
8
R2R2
r2
33
No necesariamente "más preciso". De hecho, usar Loess para lograr la precisión en un modelo predictivo sería una locura. Creo que referirse a Loess como un "modelo" transmite un posible malentendido acerca de cómo funciona y cómo se debe utilizar: es realmente un gráfico, exploratorio herramienta para ayudar a ver patrones y tendencias. Debido a que en realidad es solo una ventana móvil más suave, actúa como un modelo de vecindad espacial bastante complicado en el que el valor ajustado en un punto depende de qué puntos vecinos existen en el conjunto de datos y de los valores allí.
whuber
2
r2 de un GAM?
russellpierce