Graphe gausso-arithmétique

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

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Graphe gausso-arithmétique

Messagepar Serge Rapenne » 08 Jan 2008, 16:42

Bonjour et bonne année à tous,

j'ai besoin de réaliser plusieurs courbes selon un protocole qui m'est imposé et je voudrais utiliser R pour cela. Les données de base sont des données horaires de concentrations en NO dans l'air.
Le protocole dit ceci :
on tracera une figure divisées en 2 parties : la partie supérieure représente en ordonnée les nombres de valeurs mesurées en fonction de la concentration correspondante en abscisse.
Dans la partie du bas on trace le graphe gausso-arithmétique représentant en ordonnée les logarithmes de ces valeurs mesurées en fonction de leurs fréquences cumulées centrées réduites en abscisse, on obtient la droite de Henry appliquée au modèle de Larsen"

Si le tracé de la partie supérieur ne me pose pas de pb je n'ai pas la moindre idée de comment réaliser la partie du bas et ce fameux graphe gausso-arithmétique.

Merci d'avance pour vos idées

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

je me réponds

Messagepar Serge Rapenne » 10 Jan 2008, 10:50

après un peu de réflection et de recherche, je me suis rendu compte que même si l'énoncé du protocole était obscure pour moi (je n'ai pas fait de stat depuis 15 ans), la réalisation n'était pas forcement compliquée. Voici le code que j'ai écrit :

Code : Tout sélectionner

DtHenry<-function(donnees){
freqdta<-rank(donnees)/(max(rank(donnees)+1))
normit<-qnorm(freqdta)
plot(log(donnees)~normit,yaxt="n")
a<-c(10,seq(0,max(donnees,na.rm=T),50))
axis(side=2, at=log(a), labels=a)
}

Mon dernier pb est que j'aimerais tracer cela sous forme de droite et non de nuage de point et un plot(log(donnees)~normit,yaxt="n",type="l") ne donne rien de bon.

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

Messagepar Logez Maxime » 10 Jan 2008, 11:55

Bonjour,

Code : Tout sélectionner

DtHenry<-function(donnees){
    freqdta<-rank(donnees)/(max(rank(donnees)+1))
    normit<-qnorm(freqdta)
    plot(log(donnees)[order(normit)]~sort(normit),yaxt="n",type="l")
    a<-c(10,seq(0,max(donnees,na.rm=T),50))
    axis(side=2, at=log(a), labels=a)
}


Maxime

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Merci

Messagepar Serge Rapenne » 10 Jan 2008, 12:47

La encore c'était simple mais il fallait y penser.

Merci beaucoup

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Messagepar jean lobry » 21 Jan 2008, 18:02

Bonjour,

je crois qu'il y a encore plus simple avec qqnorm(), voir la section 3.3 de ce document: http://pbil.univ-lyon1.fr/R/fichestd/tdr22.pdf

Ah! Que de nostalgie dans la droite de Henri...

Amicalement,

Jean

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

merci

Messagepar Serge Rapenne » 22 Jan 2008, 09:05

Effectivement ça a l'air bcp plus simple.

Merci pour ta contribution


Retourner vers « Questions en cours »

Qui est en ligne

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