¿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.


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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.