Forum de Statistiques
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Les posteurs les plus actifs de la semaine
Aucun utilisateur

Le deal à ne pas rater :
Nike : Jusqu’à 50% sur les articles de fin de saison
Voir le deal

histograme d'un échantillon et courbe de distribution normal

2 participants

Aller en bas

histograme d'un échantillon et courbe de distribution normal Empty histograme d'un échantillon et courbe de distribution normal

Message par bloup Ven 29 Mar 2013 - 14:59

Bonjour,

Je fais appel à vous pour m'aider à régler un petit problème.

En fait j'ai un jeu de données composé d'individus sur lesquels une variable quantitative a été mesurée (concentration d'une hormone) et je voudrais comparer graphiquement la distribution mesurée (sur mon échantillon) de ma variable et la distribution théorique de cette même variable qui suivrait une loi normale de moyenne et écart type identiques à ceux de mon échantillon.

Certains me diront qu'il suffit d'utiliser la fonction qqnorm qui fait exactement ce type d'approche cependant ce que je voudrais, c'est avoir sur le même graphique l'histogramme des fréquences de ma variable dans mon échantillon et la courbe correspondant à la densité de population qui suivrait une loi normale de même moyenne, même écart type et même effectif que mon échantillon.

Code:

#importation des données
>nationalite=read.table("etude_population_nationalite.txt",header=TRUE,sep="\t",dec=".",row.names=1)
> summary(nationalite)
    Nationalite  Concentration 
 Australien: 50  Min.  :0.2145 
 Belge    : 29  1st Qu.:2.1880 
 Francais  :233  Median :2.9383 
 Hollandais:  7  Mean  :2.8675 
 Italien  : 50  3rd Qu.:3.5223 
 Suedois  : 23  Max.  :6.8241

#moyenne
> moy<-mean(nationalite$Concentration)
> moy
[1] 2.867546

#Ecart type
> ecart<-sqrt(var(nationalite$Concentration))
> ecart
[1] 1.056236

#histogramme
> hist(nationalite$Concentration, xlim = c(0,10),breaks = 10, col = "lightblue")
#la distribution semble s'approcher d'une loi normale

[img]histograme d'un échantillon et courbe de distribution normal Hist110[/img]

Le test de Kolmogorov-Smirnov ainsi que le qqplot semblent valider la distribution normale

Code:

#test de Kolmogorov-Smirnov
> ks.test(nationalite$Concentration, "pnorm",mean = moy, sd = ecart)

        One-sample Kolmogorov-Smirnov test

data:  nationalite$Concentration
D = 0.0338, p-value = 0.7623
alternative hypothesis: two-sided

Message d'avis :
In ks.test(nationalite$Concentration, "pnorm", mean = moy, sd = ecart) :
  aucun ex-aequo ne devrait être présent pour le test de Kolmogorov-Smirnov

#qqplot
> qqnorm(nationalite$Concentration, col="blue")

[img]histograme d'un échantillon et courbe de distribution normal Qqplot10[/img]

Maintenant je voudrais avoir sur le même graphe l'histogramme précédent et en superposition la courbe de densité de ma variable qui suivrait une loi normale de moyenne = 2.867546 et d'écart type = 1.056236. Ce que je n'arrive pas à générer c'est la courbe de densité "théorique".

A l'image du graphe suivant, j'arrive à avoir l'histogramme et la courbe de densité de l'échantillon superposés :
Code:

> hist(nationaliteb$Concentration, xlim = c(-1,10),breaks = 10, col = "lightblue")
> qqnorm(nationaliteb$Concentration, col="blue")
> hist(nationaliteb$Concentration, xlim = c(-1,10),breaks = 10, col = "lightblue")
> den <- density(nationaliteb$Concentration)
> par(new = TRUE)
> plot(den, xlim = c(-1,10), xlab = "", yaxt = "n", ylab = "", main = "", col = "red")
> abline(v = moy, col = "black", lty ="dotted")

[img]histograme d'un échantillon et courbe de distribution normal Hist210[/img]

ce que je n'arrive pas à faire c'est générer la courbe de la loi normale de même moyenne et écart type que mon échantillon.
quelqu'un pourrait-il m'aider pour cette étape ?

j'ai testé la fonction donnée dans un post sur ce forum mais sans grand succès :
Code:

>curve(dnorm(x, moy ,ecart), from=qnorm(1e-4, moy ,ecart), to=qnorm(1-1e-4, moy ,ecart))
>abline(v = moy, col = "black", lty ="dotted")
>text(moy, 0, 2.86, pos = 1, cex = 0.6)

[img]histograme d'un échantillon et courbe de distribution normal Courbe10[/img]

la courbe semble correcte par contre quand je fais la superposition, c'est là que j'ai un décalage entre l'histogramme et la courbe

Code:

> hist(nationaliteb$Concentration, xlim = c(-1,10),breaks = 10, col = "lightblue")
> par(new = TRUE)
> curve(dnorm(x, moy ,ecart), from=qnorm(1e-4, moy ,ecart), to=qnorm(1-1e-4, moy ,ecart), xlab = "", yaxt = "n", ylab = "", main = "", col = "red")
> abline(v = moy, col = "black", lty ="dotted")
> text(moy, 0, 2.86, pos = 1, cex = 0.6)

[img]histograme d'un échantillon et courbe de distribution normal Courbe11[/img]

merci d'avance


Dernière édition par bloup le Ven 29 Mar 2013 - 15:35, édité 1 fois

bloup

Nombre de messages : 41
Date d'inscription : 13/03/2012

Revenir en haut Aller en bas

histograme d'un échantillon et courbe de distribution normal Empty Re: histograme d'un échantillon et courbe de distribution normal

Message par droopy Ven 29 Mar 2013 - 15:24

Bonjour,
Code:
hist(nationaliteb$Concentration, xlim = c(-1,10),breaks = 10, col = "lightblue")
qqnorm(nationaliteb$Concentration, col="blue")
hist(nationaliteb$Concentration, xlim = c(-1,10),breaks = 10, col = "lightblue", prob=T)
den <- density(nationaliteb$Concentration)
lines(den, col = "red")
abline(v = moy, col = "black", lty ="dotted")
curve(dnorm(x, moy, ecart), add=T, col="blue")
Cdlt
droopy
droopy

Nombre de messages : 1156
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

histograme d'un échantillon et courbe de distribution normal Empty Re: histograme d'un échantillon et courbe de distribution normal

Message par bloup Ven 29 Mar 2013 - 15:41

@ droopy : désolé, j'ai édité mon message pendant votre réponse et rajouté des informations supplémentaires

Je viens d'essayer votre script qui résout complètement mon problème.
Par rapport aux commandes que j'ai rajouté et issues d'un autre post de ce forum je vois que les différences sont sur les termes "from", "to" et "add". Est ce que vous pouvez me donner quelques explications ?

Merci.


bloup

Nombre de messages : 41
Date d'inscription : 13/03/2012

Revenir en haut Aller en bas

histograme d'un échantillon et courbe de distribution normal Empty Re: histograme d'un échantillon et courbe de distribution normal

Message par droopy Ven 29 Mar 2013 - 15:52

la superposistion ne se fait pas à cause de la ligne par(new=TRUE). Quand tu fais ça tu permets à un graph d'être tracé sur un précédent, mais si tu n'utilises pas de garde fou, il n'y a aucune raison que les limites de ton graph coincides. Tu vois bien que tu as une répétition des valeurs des abscisses qui ne se superposent pas le "2" par exemple de l'histogramme ne correspond pas au "2" de la courbe. Il suffit de voir aussi ou se situe le 2.86 de la moyenne par rapport à ton histogramme.
droopy
droopy

Nombre de messages : 1156
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

histograme d'un échantillon et courbe de distribution normal Empty Re: histograme d'un échantillon et courbe de distribution normal

Message par bloup Ven 29 Mar 2013 - 16:21

merci pour la précision, je me rends compte d'où viennent mes erreurs maintenant. J'avais bien vu que les échelles ne coïncidaient pas mais étant autodidacte et pour l'instant utilisateur peu averti de R j'ai tendance à faire pas mal pas mal d'erreurs même si j'essaie de décrypter et comprendre les fonctions avec l'aide de R et les forums.

donc maintenant, pour rajouter une courbe sur un graphe, j'utiliserai "lines" ou "curve" et non plus "par"+"plot"

je viens de voir également que l'argument "prob=T" de l'histogramme est fondamental pour pouvoir superposer la courbe de la loi normale.

encore merci

bloup

Nombre de messages : 41
Date d'inscription : 13/03/2012

Revenir en haut Aller en bas

histograme d'un échantillon et courbe de distribution normal Empty Re: histograme d'un échantillon et courbe de distribution normal

Message par droopy Mar 2 Avr 2013 - 7:33

you are welcome
droopy
droopy

Nombre de messages : 1156
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

histograme d'un échantillon et courbe de distribution normal Empty Re: histograme d'un échantillon et courbe de distribution normal

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum