Comment obtenir un R au carré pour un ajustement Loess?

15

Comment calculer la statistique R au carré ( ) dans R pour et / ou la sortie de fonction? Par exemple pour ces données:r2loesspredict

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

cars.lpa deux tableaux fitpour le modèle et se.fitpour l'erreur standard.

Yuriy Petrovskiy
la source
Dans la régression linéaire, est égal à la corrélation au carré entre les valeurs observées et les valeurs ajustées - qu'en est-il? R2
Macro

Réponses:

10

Ma première pensée a été de calculer une pseudoR2 mesure R 2 comme suit:

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

Ici, nous obtenons une valeur de 0,6814984 ( ), proche de ce qui serait obtenu à partir d'un GAM : cor(cars$dist, predict(cars.lo))^2

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

loessMultiple R-squaredairqualityairloessR2

entrez la description de l'image ici

R2

spanR2

chl
la source
8
R2R2
r2
3
Pas nécessairement "plus précis". En effet, utiliser Loess pour atteindre la précision dans un modèle prédictif serait imprudent. Je pense que faire référence à Loess en tant que «modèle» transmet un possible malentendu sur la façon dont il fonctionne et comment il est destiné à être utilisé: c'est vraiment un outil graphique et exploratoire pour aider à voir les modèles et les tendances. Puisqu'il s'agit simplement d'un lissage de fenêtre mobile, il agit comme un modèle de voisinage spatial assez compliqué dans lequel la valeur ajustée en un point dépend des points voisins qui existent dans le jeu de données et des valeurs qui s'y trouvent.
whuber
2
r2