empêcher l'extrapolation d'une droite de régression

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Claire Gentil
Messages : 8
Enregistré le : 12 Juin 2018, 12:29

empêcher l'extrapolation d'une droite de régression

Messagepar Claire Gentil » 24 Juil 2018, 13:54

Bonjour,

Je réalise des graphiques (type points) pour lesquels j'ajoute une droite de régression :

Code : Tout sélectionner

abline(lm(data2[sel3,13]-data2[sel3,12]~data2[sel3,12]),col="red",lwd=2)


Jusque là, pas de problème.
Mais je voudrais que la droite soit faite sans extrapolation,
c'est-à-dire qu'elle s'arrête aux points et n'aille donc pas d'un bout à l'autre du graphe.
Y a-t-il un moyen qu'elle fasse ça automatiquement ?
ou au moins, de fixer manuellement des limites à la droite ?

Merci pour votre aide.

Claire

Eric Casellas
Messages : 767
Enregistré le : 06 Jan 2009, 14:59

Re: empêcher l'extrapolation d'une droite de régression

Messagepar Eric Casellas » 24 Juil 2018, 14:23

Bonjour,

regarde du coté de la fonction clip (à utiliser entre ta fonction de plot et abline) ou alternativement segments ou lines en remplacement de abline...

exemples :

Code : Tout sélectionner

plot(1:10)
abline(0,1)

plot(1:10)
segments(1,1,10,10)

plot(1:10)
lines(c(1,10), c(1,10))

plot(1:10)
clip(1,10,1,10)
abline(0,1)


Eric
Eric

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: empêcher l'extrapolation d'une droite de régression

Messagepar Logez Maxime » 24 Juil 2018, 14:28

Bonjour,

Oui et non. La fonction abline est faite pour tracer la droite sur toute la fenêtre graphique. Donc en théorie non, sauf a restreindre la fenêtre graphique avec la fonction clip. Sinon tu peux utiliser la fonction points avec les prédictions de la régression linéaire pour les deux points les plus extrêmes sur l'axe des abscisses :

Code : Tout sélectionner

x <- rnorm(10)
y <- 3*x-2+rnorm(10)
lm1 <- lm(y ~ x)

# avec clip
plot(y ~ x)
clip(min(x), max(x), min(y), max(y))
abline(lm1)

# avec points
preds <- predict(lm1, newdata = data.frame(x = range(x)))
plot(y ~ x)
points(range(x), preds, type = "l")

# avec ggplot2
ggplot(data.frame(x = x, y = y), aes(x, y)) +
  geom_smooth(method = "lm", se = FALSE) + geom_point()
Cordialement,
Maxime

Claire Gentil
Messages : 8
Enregistré le : 12 Juin 2018, 12:29

Re: empêcher l'extrapolation d'une droite de régression

Messagepar Claire Gentil » 24 Juil 2018, 14:50

Merci pour vos réponses !

Je ne connaissais pas la fonction clip mais elle peut être bien pratique !
Même si ça va être un peu long pour déterminer les limites à chaque graphique,
je pense rester sur cette méthode, elle semble la plus adapter à mon cas
(car j'utilise toujours le même graphique de base et fais mes droites selon une sélection de points).

Je sais qu'à la base, abline n'est pas fait pour, mais c'est qu'en plus d'observer les différences de pente entre mes sélections,
je voudrais voir, par la même occasion, les différences de dispersions de mes points.

En tout cas, clip devrait convenir, merci encore !

Claire


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité