Aide-memoire-R > Statistiques > Local-polynomial-fitting
Local polynomial fitting.
L'objectif est de tracer une courbe qui ajuste un nuage de points. C'est une généralisation de la régression linéaire (souvent plus puissant également que l'ajustement polynomial simple).
Principe exact :
- pour chaque point du nuage, on calcule un polynôme de degré faible (0, 1 ou 2) qui ajuste ce point et les points environnants par une méthode moindre carrés (avec une pondération d'autant plus faible que le point est éloigné du point de référence).
- selon le degré du polynôme :
- degré 0 : on obtient une moyenne mobile pondérée.
- degré 1 : sorte de régression linéaire glissante (appelée souvent LOESS).
- degré 2 : sorte de régression quadratique glissante (appelée souvent LOWESS).
- avantages du local polynomial fitting :
- reste simple.
- pas besoin de spécifier une fonction pour le modèle. S'adapte à de très nombreuses formes de nuages de points.
- inconvénients du local polynomial fitting :
- pas de formule analytique.
- demande pas mal de points et pas mal de calculs (mais ce n'est plus un problème aujourd'hui).
Calcul de la régression, avec les paramètres par défaut :
x <- seq(0, 10, 0.1) y <- 10 * exp(sin(x) / 10) + rnorm(length(x), 0, 0.1) fr <- data.frame(x = x, y = y) pred <- loess(y ~ x, fr)
Calcul de la régression avec différents paramètres :
pred <- loess(y ~ x, fr, span = 0.5, degree = 1)
- span = 0.5 : taille du voisinage autour du point courant qui doit être pris en compte pour le calcul de la régression, entre 0 et 1. Plus il est grand, plus la courbe est régulière, plus il est petit, plus la courbe suit le nuage (défaut = 0.75).
- degree = 1 : degré du polynôme. Plus il est élevé, plus la courbe suit le nuage (défaut = 2).
Propriétés de l'objet renvoyé :
pred <- loess(y ~ x, fr
L'objet renvoyé est de la classe loess et a notamment les attributs suivants :
- pred$fitted : les valeurs de y prédites pour les valeurs données de x.
- pred$residuals : les valeurs résiduelles de y pour les valeurs données de x (valeurs réelles - valeurs prédites).
Prédiction de valeurs correspondantes à des nouvelles valeur de x :
- predict(pred, c(1, 2, 3, 5)) : prédiction des valeurs correspondantes au valeurs présentes dans le vecteur (renvoie alors un simple vecteur).
- lis <- predict(pred, c(1, 2, 3, 5), se = TRUE) : renvoie les prédictions avec une erreur standard. Le type renvoyé est alors une liste avec notamment les attributs :
- lis$fit : les valeurs prédites (comme avec se = FALSE, le défaut).
- lis$se.fit : les erreurs standards sur les valeurs prédites.
- On peut récupérer la fonction prédite f par : f <- function(x) {return(predict(pred, x))}
Local polynomial fitting avec plusieurs variables :
x <- seq(0, 10, 0.1)
x <- rep(x, times = 20)
y <- seq(0, 10, 0.1)
y <- rep(y, each = 20)
z <- exp(sin(x) + sin(y))
fr <- data.frame(x = x, y = y, z = z)
pred <- loess(z ~ x * y, fr, span = 0.3)
f <- function(X, Y) {return(predict(pred, data.frame(x = X, y = Y)))
Dernière date de modification : 2010-05-22
