Как получить R-квадрат для лессов?


15

Как рассчитать R-квадрат ( ) статистики в R для и / или выхода функции? Например, для этих данных:р2loesspredict

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

cars.lpимеет два массива fitдля модели и se.fitдля стандартной ошибки.


В линейной регрессии равен квадрату корреляции между наблюдаемыми значениями и подобранными значениями - как насчет этого? р2
Макро

Ответы:


10

Моей первой мыслью было вычислить псевдо R2 меру следующим образом:

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

Здесь мы получаем значение 0,6814984 ( ), близкое к тому, что будет получено из GAM : cor(cars$dist, predict(cars.lo))^2

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

loessMultiple R-squaredairqualityairloessR2

введите описание изображения здесь

R2

spanR2


8
R2R2

r2

3
Не обязательно «точнее». Действительно, использовать Лесс для достижения точности в прогностической модели было бы безрассудно. Я думаю, что ссылка на Лесс как на «модель» передает возможное недоразумение о том, как она работает и как она предназначена для использования: это действительно графический инструмент для изучения моделей и тенденций. Поскольку это действительно просто сглаживающее движущееся окно, он действует как довольно сложная модель пространственной окрестности, в которой подогнанное значение в точке зависит от того, какие соседние точки существуют в наборе данных и от значений там.
whuber

2
r2
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.