que sont les fonctions de distribution cumulatives empiriques et que pouvons-nous en faire? Pour répondre à la première question, prenons d’abord du recul et nous assurons que nous comprenons les « distributions”, ou plus précisément les « distributions de probabilité”.

une Distribution de probabilité de base

Imaginez un événement simple, par exemple en retournant une pièce de monnaie 3 fois., Voici tous les résultats possibles, où H = la tête et T = queues:

  • HHH
  • VRD
  • HTH
  • THH
  • HTT
  • TH
  • THT
  • TTT

Maintenant, imaginez H = « réussite”., Nos résultats peuvent être modifiés comme suit:

  • HHH (3 succès)
  • VRD (2 succès)
  • HTH (2 succès)
  • THH (2 succès)
  • HTT (1 succès)
  • TTH (1 succès)
  • THT (1 succès)
  • TTT (0 succès)

Depuis il y a 8 résultats possibles, les probabilités pour les 0, 1, 2, et 3 succès,

  • 0 succès: 1/8
  • 1 succès: 3/8
  • 2 succès: 3/8
  • 3 succès: 1/8

Si nous somme de ces probabilités, on obtient 1. Et cela représente la « distribution de probabilité” pour notre événement., Formellement, cet événement suit une distribution binomiale car les événements sont indépendants, il y a un nombre fixe d’essais (3), la probabilité est la même pour chaque retournement (0,5) et notre résultat est le nombre de « succès” dans le nombre d’essais. En fait, ce que nous venons de démontrer est une distribution binomiale avec 3 essais et une probabilité égale à 0,5. Ceci est parfois abrégé en b (3,0.5)., Nous pouvons générer rapidement les probabilités en R à l’aide de la balise dbinom fonction:

dbinom(0:3, size = 3, prob = 0.5)## 0.125 0.375 0.375 0.125

Nous pouvons visualiser rapidement cette distribution de probabilité avec la balise barplot fonction:

barplot(dbinom(x = 0:3, size = 3, prob = 0.5), names.arg = 0:3)

La fonction utilisée pour générer ces probabilités est souvent désigné comme la « densité” de la fonction, d’où le « d” en face de binom., Les Distributions qui génèrent des probabilités pour des valeurs discrètes, telles que le binôme dans cet exemple, sont parfois appelées « fonctions de masse de probabilité” ou PMF. Les Distributions qui génèrent des probabilités pour des valeurs continues, telles que la normale, sont parfois appelées « fonctions de densité de probabilité », ou PDF. Cependant, dans R, indépendamment de PMF ou PDF, la fonction qui génère les probabilités est connue sous le nom de fonction « densité”.

fonction de Distribution Cumulative

parlons maintenant des probabilités « cumulatives”., Ce sont des probabilités qui s’accumulent lorsque nous nous déplaçons de gauche à droite le long de l’axe des x dans notre distribution de probabilité., En regardant le tracé de la répartition ci-dessus qui serait

  • \(P(X\le0)\)
  • \(P(X\le1)\)
  • \(P(X\le2)\)
  • \(P(X\le3)\)

Nous pouvons calculer rapidement ces:

  • \(P(X\le0) = \frac{1}{8}\)
  • \(P(X\le1) = \frac{1}{8} + \frac{3}{8} = \frac{1}{2}\)
  • \(P(X\le2) = \frac{1}{8} + \frac{3}{8} + \frac{3}{8} = \frac{7}{8}\)
  • \(P(X\le3) = \frac{1}{8} + \frac{3}{8} + \frac{3}{8} + \frac{1}{8} = 1\)

La distribution de ces probabilités est connu comme la distribution cumulée., Encore une fois, il existe une fonction dans R qui génère ces probabilités pour nous. Au lieu d’un « d” devant « binom”, nous mettons un « p”.

pbinom(0:3, size = 3, prob = 0.5)## 0.125 0.500 0.875 1.000

Cette fonction est souvent appelé la « fonction de distribution”, qui peut être déroutant lorsque vous essayez d’obtenir votre tête autour de distributions de probabilité en général. Tracer cette fonction prend un peu plus de travail. Nous allons démontrer un moyen plus facile de faire ce tracé sous peu, nous présentons donc le code suivant sans commentaire.,

Cette parcelle est parfois appelé une étape de la parcelle. Dès que vous frappez un point sur l’axe des x, vous « passez” à la probabilité suivante. La probabilité de 0 ou moins est de 0,125. D’où la ligne droite de 0 à 1. À 1, nous passons à 0,5, car la probabilité de 1 ou moins si 0,5. Et ainsi de suite. À 3, nous avons un point à 1. La probabilité de 3 ou moins est une certitude. Nous sommes assurés d’obtenir 3 Succès ou moins dans notre distribution binomiale.

démontrons maintenant ce que nous avons fait ci-dessus avec une distribution continue., Pour garder relativement simple, nous allons utiliser la distribution normale standard, qui a une moyenne de 0 et un écart-type de 1. Contrairement à notre exemple de retournement de pièces ci-dessus qui pourrait être compris précisément avec une distribution binomiale, il n’y a pas d’exemple « standard” de la vie réelle qui correspond parfaitement à une distribution normale standard. Par conséquent, nous devrons utiliser notre imagination.

dessinons d’abord la distribution en utilisant la fonctioncurve. Le premier argument,dnorm(x), est essentiellement la formule mathématique qui trace la ligne., Notez le  » d « devant” norm »; c’est la fonction” density ». Les valeurs par défaut de la fonction dnorm sont mean = 0 et standard deviation = 1. Les argumentsfrom Etto disent dessiner cette courbe en utilisant des valeurs de x allant de -3 à 3.

curve(dnorm(x), from = -3, to = 3)

La courbe est une ligne régulière, ce qui signifie que c’est une distribution de probabilité pour tous les nombres réels. L’aire sous la courbe est 1 car c’est une distribution de probabilité.,

imaginez atteindre cette distribution et dessiner un nombre. Quelle est la probabilité d’obtenir 1.134523768923? C’est essentiellement 0. Pourquoi? Parce qu’il y a \(\frac{1}{\infty}\) chance de le sélectionner. Pourquoi \(\infty\) est-il dans le dénominateur? Parce qu’il y a un nombre infini de possibilités. Si cela semble déroutant, imaginez un zoom sur l’axe des x avec une résolution de plus en plus fine, avec des décimales qui s’étendent à l’horizon. Cela signifie que les valeurs de l’axe y ne représentent pas la probabilité mais plutôt la « densité”., La densité est essentiellement la probabilité d’une petite plage de valeurs divisée par cette gamme. Si cela aussi semble déroutant, c’est OK. Rappelez – vous simplement que nous n’utilisons pas de distributions normales (ou de distribution continue) pour obtenir des probabilités exactes. Nous les utilisons pour obtenir des probabilités pour une plage de valeurs.

Par exemple, quelle est la probabilité que x est inférieur ou égal à -1? Pour cela, nous pouvons utiliser la fonction pnorm, qui est la fonction de distribution cumulative pour la distribution normale.,

pnorm(-1)## 0.1586553

La mosaïque paquet fournit la pratique plotDist fonction de rapidement visualiser cette probabilité. En plaçant mosaic:: avant la fonction, nous pouvons appeler la fonction sans charger le package mosaic. L’argumentgroups dit de créer deux régions: une pour moins de -1 et une autre pour plus de -1. L’argumenttype='h' indique dessiner un tracé « de type histogramme”. Les deux couleurs sont pour les régions respectives. Évidemment, « norme » signifie dessiner une distribution normale., Encore une fois, la valeur par défaut est moyenne 0 et écart type 1.

# install.packages('mosaic')mosaic::plotDist('norm', groups = x < -1, type='h', col = c('grey', 'lightblue')) 

Ce graphique montre, en réalité, la probabilité cumulative. La région bleue est égale à 0,1586553, la probabilité que nous tirions une valeur de -1 ou moins de cette distribution. Rappelons que nous avons utilisé la fonction de distribution cumulative pour obtenir cette valeur. Pour visualiser toutes les probabilités cumulées pour la distribution normale standard, Nous pouvons à nouveau utiliser la fonction curve mais cette fois avec pnorm.,

curve(pnorm(x), from = -3, to = 3)

Si l’on regarde -1 sur l’axe des x et allez tout droit jusqu’à la ligne, puis aller directement à gauche de l’axe des x, il doit atterrir sur 0.1586553. Nous pouvons ajouter à l’intrigue, à l’aide de segments:

curve(pnorm(x), from = -3, to = 3)segments(x0 = -1, y0 = 0, x1 = -1, y1 = pnorm(-1), col = 'red')segments(x0 = -1, y0 = pnorm(-1), x1 = -3, y1 = pnorm(-1), col = 'blue') 

Encore une fois c’est une ligne régulière, car nous avons affaire à un nombre infini de valeurs réelles.,

fonctions de Distribution cumulatives empiriques

maintenant que nous sommes clairs sur les distributions cumulatives, explorons les distributions cumulatives empiriques. « Empirique » signifie que nous nous intéressons aux observations plutôt qu’à la théorie. Les distributions cumulatives que nous avons explorées ci-dessus étaient basées sur la théorie. Nous avons utilisé les distributions cumulatives binomiales et normales, respectivement, pour calculer les probabilités et visualiser la distribution. Dans la vie réelle, cependant, les données que nous collectons ou observons ne proviennent pas d’une distribution théorique. Nous devons utiliser les données pour créer une distribution cumulée.,

nous pouvons le faire dans R avec la fonctionecdf. ECDF signifie « fonction de Distribution cumulative empirique ». Notez que le dernier mot: « Fonction”. La fonction ecdf renvoie une fonction. Tout comme pbinom Et pnorm étaient les fonctions de distribution cumulatives pour nos données théoriques, ecdf crée une fonction de distribution cumulative pour nos données observées. Essayons cela avec l’ensemble de données rock fourni avec R.,

l’ensemble de données sur les roches contient des mesures sur 48 échantillons de roches provenant d’un réservoir de pétrole. Il contient 4 variables: surface, Péri, forme et perm. Nous allons travailler avec la variable area, qui est la surface totale des pores dans chaque échantillon.

Les fonctionsecdf fonctionnent sur des vecteurs numériques, qui sont souvent des colonnes de nombres dans un bloc de données. Ci-dessous, nous lui donnons la colonne area de la trame de données rock.

ecdf(rock$area)## Empirical CDF ## Call: ecdf(rock$area)## x = 1016, 1468, 1651, ..., 11878, 12212

Notez la sortie n’est pas très utile. C’est parce que la fonction ecdf renvoie une fonction., Nous devons attribuer le résultat à un nom afin de pouvoir créer notre fonction ECDF. Nous allons utiliser la balise Fn

Fn <- ecdf(rock$area)

Maintenant que vous avez personnalisé la fonction de distribution cumulée que vous pouvez utiliser avec vos données. Par exemple, nous pouvons créer un tracé d’étape pour visualiser la distribution cumulative.

plot(Fn)

en Regardant l’intrigue, nous pouvons voir l’estimation de la probabilité que la surface d’un échantillon est inférieure ou égale à 8000 est d’environ 0,6., Mais nous n’avons pas à compter sur l’œil-ball le graphique. Nous avons une fonction! Nous pouvons l’utiliser pour obtenir une estimation plus précise. Donnez-lui simplement un nombre dans la plage de l’axe des abscisses et il renverra la probabilité cumulative.

# Prob area less than or equal to 8000Fn(8000)## 0.625

On peut utiliser la fonction avec plus d’une valeur. Par exemple, nous pouvons obtenir des probabilités estimées que la zone est inférieure ou égale à 4000, 6000 et 8000.

Fn(c(4000, 6000, 8000))## 0.1250000 0.3333333 0.6250000

Il y a aussi un summary méthode pour ECDF fonctions., Elle renvoie un résumé des valeurs uniques des données observées. Notez que c’est similaire à la méthode de résumé traditionnelle pour les vecteurs numériques, mais le résultat est légèrement différent car il résume les valeurs uniques au lieu de toutes les valeurs.

enfin, si l’on veut, on peut superposer une distribution cumulative théorique sur L’ECDF. Cela peut nous aider à évaluer si nous pouvons ou non supposer que nos données pourraient être modélisées avec une distribution théorique particulière. Par exemple, nos données pourraient-elles être considérées comme ayant été échantillonnées à partir d’une distribution normale?, Ci-dessous, nous traçons la fonction step, puis superposons une distribution normale cumulative en utilisant la moyenne et l’écart type de nos données observées.

plot(ecdf(rock$area))curve(pnorm(x, mean(rock$area), sd(rock$area)), from = 0, to = 12000, add = TRUE, col='blue', lwd = 2) 

Les lignes semblent se chevauchent un peu, ce qui suggère que les données pourraient être approchée par une distribution Normale. Nous pouvons également comparer les estimations de notre ECDF avec un CDF théorique. Nous avons vu que la probabilité que la zone soit inférieure ou égale à 8000 est d’environ 0,625., Comment cela se compare-t-il à une distribution cumulative normale avec une moyenne et un écart type de rock$area?

pnorm(8000, mean = mean(rock$area), sd = sd(rock$area))## 0.6189223

C’est assez proche!!!!

Une autre évaluation graphique est le tracé Q-Q, qui peut également être facilement effectué dans R en utilisant les fonctionsqqnorm etqqline. L’idée est que si les points tombent le long de la ligne diagonale, nous avons de bonnes preuves que les données sont plausiblement normales., Encore une fois, ce graphique révèle que les données semblent pouvoir être bien approximées avec une distribution normale. (Pour en savoir plus sur les tracés Q-Q, consultez notre article, Comprendre les tracés Q-Q).

qqnorm(rock$area)qqline(rock$area)

Pour des questions ou des précisions concernant cet article, contactez l’UVA Bibliothèque StatLab: [email protected]

voir toute la collection des rayons UVA Bibliothèque StatLab articles.

Clay Ford
Consultant en recherche statistique
bibliothèque de L’Université de Virginie
9 juillet 2020