Air entre 2 courbes et droite de regressions

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

Antoine Stocker
Messages : 16
Enregistré le : 09 Oct 2007, 13:15

Air entre 2 courbes et droite de regressions

Messagepar Antoine Stocker » 29 Avr 2008, 10:22

Bonjour,

J'ai un plot du genre poids~taille et une trentaine de courbe de regréssion (en fonction de l'âge).

J'aimerai faire une zone rouge entre les deux droite les plus "à l'extrérieures". Malheureusement, ce n'est pas toujours la même droite qui délimite cette bande (dépend de l'âge).

Merci de votre aide.

Sinon,

j'ai fait ceci:

plot (poids~taille)
for (i in 1:30) {
r<-lm(poids[age==i]~poly (taille[age==i],3))
lines(predict(r))
}

ce que je ne comprends pas est que mes droites de regression du 3ème degré ne sont pas lissé... Elles font des palliers???

Merci pour tout

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 29 Avr 2008, 11:29

Bonjour,

pour avoir des courbes "lissées" voir la fonction curve(), je crois que c'est plus adapté.
Pour dessiner l'aire entre 2 courbes je pense qu'avec la fonction polygon() on doit pouvoir s'en sortir.
Si ce sont les droites les plus à l'extérieur, on doit pouvoir les sélectionner en fonction de la valeur moyenne des predicts par exemple. Les valeurs les plus fortes se retrouvant sur les bords du graph.

voilà pour quelques pistes, je ne peux faire plus en tout cas pour le moment :)

Nicolas

P.S : sinon il y a le site de vincent Zoonekynd qui est une mine d'exemple de graphique, peut être que tu peux trouver quelque chose qui t'intéresse, les codes R sont tous fournis. c'est par >>ici<<

Antoine Stocker
Messages : 16
Enregistré le : 09 Oct 2007, 13:15

Messagepar Antoine Stocker » 29 Avr 2008, 13:24

Et bien je comprends rien...
Les différentes droites que j'obtiens ne représentent rien?!?

Comme je peux faire des régressions logistiques dans mon cas??

Merci

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 29 Avr 2008, 13:35

j'avoue que je ne suis pas trop la suite des questions :|... désolé

j'ai du mal à voir le lien entre les premières questions posées et les secondes ...bref, c'est quoi la qestion ? :D

Antoine Stocker
Messages : 16
Enregistré le : 09 Oct 2007, 13:15

Messagepar Antoine Stocker » 29 Avr 2008, 13:54

Ok je cherche à faire des courbes de tendances polynomiales du 3ème degré...
j'ai fait ceci:

plot (poids~taille)
for (i in 1:30) {
r<-lm(poids[age==i]~poly (taille[age==i],3))
lines(predict(r))
}

Mais cela ne me donne pas des courbes mais des "escaliers".

Une fois ces courbes présentes, j'aimerais mettre en rouge la zone situé à l'interieur des courbes les plus externes...

Merci d'avance
Avec mes meilleurs messages.

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 29 Avr 2008, 14:04

Mais cela ne me donne pas des courbes mais des "escaliers".


ce à quoi je répond : :)

lines() relie les points 2 à 2 donc c'est normal que ça fasse un escalier avec un polynome. Il n'y a pas de paramète de lissage, donc c'es très grossier, le plus basique qu'il soit possible de faire avec tes données :).

pour faire des jolies courbes il ya curve() ou line() qui doivent produire des courbes en fonction d'une équation.

Pour la couleur, il faudrait voir à quoi ressemble le graphique que tu obtiens.

Antoine Stocker
Messages : 16
Enregistré le : 09 Oct 2007, 13:15

Messagepar Antoine Stocker » 29 Avr 2008, 14:21

OK...

Pourtant je me suis inspiré de cet exemple:

library(ts)
data(beavers)
y<-beavers$temp
x<-1:length(y)
plot(y~x)
for (i in 1:10) {
r<-lm(y~poly(x,i))
lines(predict(r), type="l", col=i)
}

Et ça donne quelque chose de très lisse?!?

Par contre, ce que je ne comprends pas où je trouve les paramètres de l'équation.

Summary () ne me donne pas tout ce dont j'ai besoin pour "remplir" curve()... Mais j'ai peut etre loupé une étape...

En tout cas merci beaucoup pour l'aide!

Antoine

Nicolas Péru
Messages : 1408
Enregistré le : 07 Aoû 2006, 08:13

Messagepar Nicolas Péru » 30 Avr 2008, 09:13

le lissage vient peut être du nombre de point qui donne l'illusion d'un lissage mais poly() ne permet que d'obtenir que des valeurs de polynômes en fonction des valeurs de x. Et lines() joint les points qu'on lui donne par des droites. Donc c'est toujours pareil, un escalier très fin a l'air d'une courbe :)

Tout dépend de ce que tu veux faire. Tu as combien de points pour tracer tes courbes ?

Antoine Stocker
Messages : 16
Enregistré le : 09 Oct 2007, 13:15

Messagepar Antoine Stocker » 30 Avr 2008, 12:08

Bonjour,

J'ai réussi (enfin) en utilisant ceci:

a<-getInitial(Poids~SSlogis(Taille, Asym, xmid, scal))
plot(Poids~Taille)
lines(Taille, SSlogis(Taille, a[1], a[2], a[3]))

Merci pour tout!


Retourner vers « Questions en cours »

Qui est en ligne

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