Cela pourrait vous aider à réaliser que l'axe vertical est mesuré comme une densité de probabilité . Donc, si l'axe horizontal est mesuré en km, alors l'axe vertical est mesuré comme une densité de probabilité "par km". Supposons que nous dessinions un élément rectangulaire sur une telle grille, qui fait 5 "km" de large et 0,1 "par km" de haut (que vous préféreriez peut-être écrire comme "km - 1 "). L'aire de ce rectangle est de 5 km x 0,1 km - 1 = 0,5. Les unités s'annulent et nous nous retrouvons avec une probabilité de moitié seulement.- 1- 1
Si vous avez changé les unités horizontales en "mètres", vous devrez changer les unités verticales en "par mètre". Le rectangle aurait maintenant une largeur de 5000 mètres et aurait une densité (hauteur) de 0,0001 par mètre. Il vous reste encore une probabilité de moitié. Vous pourriez être perturbé par la façon dont ces deux graphiques vont paraître bizarres sur la page l'un par rapport à l'autre (l'un ne doit-il pas être beaucoup plus large et plus court que l'autre?), Mais lorsque vous dessinez physiquement les tracés, vous pouvez utiliser n'importe quoi l'échelle que vous aimez. Regardez ci-dessous pour voir comment peu de bizarreries doivent être impliquées.
Il peut être utile de considérer les histogrammes avant de passer aux courbes de densité de probabilité. À bien des égards, ils sont analogues. L'axe vertical d'un histogramme est la densité de fréquence [par unité ]X et les zones représentent les fréquences, encore une fois parce que les unités horizontales et verticales s'annulent lors de la multiplication. La courbe PDF est une sorte de version continue d'un histogramme, avec une fréquence totale égale à un.
Une analogie encore plus étroite est un histogramme de fréquence relative - nous disons qu'un tel histogramme a été "normalisé", de sorte que les éléments de zone représentent désormais des proportions de votre ensemble de données d'origine plutôt que des fréquences brutes, et la zone totale de toutes les barres est une. Les hauteurs sont maintenant des densités de fréquence relatives [par unité ]X . Si un histogramme de fréquence relative a une barre qui s'étend le long de Xvaleurs de 20 km à 25 km (donc la largeur de la barre est de 5 km) et a une densité de fréquence relative de 0,1 par km, alors cette barre contient une proportion de 0,5 des données. Cela correspond exactement à l'idée qu'un élément choisi au hasard dans votre ensemble de données a une probabilité de 50% de se trouver dans cette barre. L'argument précédent sur l'effet des changements d'unités s'applique toujours: comparer les proportions de données situées dans la barre de 20 km à 25 km à celles de la barre de 20 000 mètres à 25 000 mètres pour ces deux parcelles. Vous pouvez également confirmer arithmétiquement que les zones de toutes les barres totalisent une dans les deux cas.
Qu'aurais-je pu signifier en affirmant que le PDF est une "sorte de version continue d'un histogramme"? Prenons une petite bande sous une courbe de densité de probabilité, le long de valeurs dans l'intervalle [ x , x + δ x ] , de sorte que la bande est δ x large et la hauteur de la courbe est un f ( x ) approximativement constant . On peut dessiner une barre de cette hauteur, dont l'aire f ( x )X[ x , x + δx ]δXF( x ) représente la probabilité approximative de se trouver dans cette bande.F( x )δX
Comment trouver l'aire sous la courbe entre et x = b ? On pourrait subdiviser cet intervalle en petites bandes et prendre la somme des aires des barres, ∑ f ( x )x = ax = b , ce qui correspondrait à la probabilité approximative de mentir dans l'intervalle [ a , b ] . Nous voyons que la courbe et les barres ne s'alignent pas précisément, il y a donc une erreur dans notre approximation. En faisant δ x de plus en plus petit pour chaque barre, on remplit l'intervalle de barres plus nombreuses et plus étroites, dont ∑ f ( x )∑ f( x )δX[ a , b ]δX fournit une meilleure estimation de la zone.∑ f( x )δX
Pour calculer précisément l'aire, plutôt que de supposer que était constant sur chaque bande, nous évaluons l'intégrale ∫ b a f ( x ) d x , ce qui correspond à la vraie probabilité de se situer dans l'intervalle [ a , b ] . L'intégration sur toute la courbe donne une aire totale (c.-à-d. La probabilité totale), pour la même raison que la somme des aires de toutes les barres d'un histogramme de fréquence relative donne une aire totale (c.-à-d. La proportion totale) de un. L'intégration est en soi une sorte de version continue de la prise d'une somme.F( x )∫buneF( x ) dX[ a , b ]
Code R pour les parcelles
require(ggplot2)
require(scales)
require(gridExtra)
# Code for the PDF plots with bars underneath could be easily readapted
# Relative frequency histograms
x.df <- data.frame(km=c(rep(12.5, 1), rep(17.5, 2), rep(22.5, 5), rep(27.5, 2)))
x.df$metres <- x.df$km * 1000
km.plot <- ggplot(x.df, aes(x=km, y=..density..)) +
stat_bin(origin=10, binwidth=5, fill="steelblue", colour="black") +
xlab("Distance in km") + ylab("Relative frequency density per km") +
scale_y_continuous(minor_breaks = seq(0, 0.1, by=0.005))
metres.plot <- ggplot(x.df, aes(x=metres, y=..density..)) +
stat_bin(origin=10000, binwidth=5000, fill="steelblue", colour="black") +
xlab("Distance in metres") + ylab("Relative frequency density per metre") +
scale_x_continuous(labels = comma) +
scale_y_continuous(minor_breaks = seq(0, 0.0001, by=0.000005), labels=comma)
grid.arrange(km.plot, metres.plot, ncol=2)
x11()
# Probability density functions
x.df <- data.frame(x=seq(0, 1, by=0.001))
cutoffs <- seq(0.2, 0.5, by=0.1) # for bars
barHeights <- c(0, dbeta(cutoffs[1:(length(cutoffs)-1)], 2, 2), 0) # uses left of bar
x.df$pdf <- dbeta(x.df$x, 2, 2)
x.df$bar <- findInterval(x.df$x, cutoffs) + 1 # start at 1, first plotted bar is 2
x.df$barHeight <- barHeights[x.df$bar]
x.df$lastBar <- ifelse(x.df$bar == max(x.df$bar)-1, 1, 0) # last plotted bar only
x.df$lastBarHeight <- ifelse(x.df$lastBar == 1, x.df$barHeight, 0)
x.df$integral <- ifelse(x.df$bar %in% 2:(max(x.df$bar)-1), 1, 0) # all plotted bars
x.df$integralHeight <- ifelse(x.df$integral == 1, x.df$pdf, 0)
cutoffsNarrow <- seq(0.2, 0.5, by=0.025) # for the narrow bars
barHeightsNarrow <- c(0, dbeta(cutoffsNarrow[1:(length(cutoffsNarrow)-1)], 2, 2), 0) # uses left of bar
x.df$barNarrow <- findInterval(x.df$x, cutoffsNarrow) + 1 # start at 1, first plotted bar is 2
x.df$barHeightNarrow <- barHeightsNarrow[x.df$barNarrow]
pdf.plot <- ggplot(x.df, aes(x=x, y=pdf)) +
geom_area(fill="lightsteelblue", colour="black", size=.8) +
ylab("probability density") +
theme(panel.grid = element_blank(),
axis.text.x = element_text(colour="black", size=16))
pdf.lastBar.plot <- pdf.plot +
scale_x_continuous(breaks=tail(cutoffs, 2), labels=expression(x, x+delta*x)) +
geom_area(aes(x=x, y=lastBarHeight, group=lastBar), fill="steelblue", colour="black", size=.8) +
annotate("text", x=0.73, y=0.22, size=6, label=paste("P(paste(x<=X)<=x+delta*x)%~~%f(x)*delta*x"), parse=TRUE)
pdf.bars.plot <- pdf.plot +
scale_x_continuous(breaks=cutoffs[c(1, length(cutoffs))], labels=c("a", "b")) +
geom_area(aes(x=x, y=barHeight, group=bar), fill="steelblue", colour="black", size=.8) +
annotate("text", x=0.73, y=0.22, size=6, label=paste("P(paste(a<=X)<=b)%~~%sum(f(x)*delta*x)"), parse=TRUE)
pdf.barsNarrow.plot <- pdf.plot +
scale_x_continuous(breaks=cutoffsNarrow[c(1, length(cutoffsNarrow))], labels=c("a", "b")) +
geom_area(aes(x=x, y=barHeightNarrow, group=barNarrow), fill="steelblue", colour="black", size=.8) +
annotate("text", x=0.73, y=0.22, size=6, label=paste("P(paste(a<=X)<=b)%~~%sum(f(x)*delta*x)"), parse=TRUE)
pdf.integral.plot <- pdf.plot +
scale_x_continuous(breaks=cutoffs[c(1, length(cutoffs))], labels=c("a", "b")) +
geom_area(aes(x=x, y=integralHeight, group=integral), fill="steelblue", colour="black", size=.8) +
annotate("text", x=0.73, y=0.22, size=6, label=paste("P(paste(a<=X)<=b)==integral(f(x)*dx,a,b)"), parse=TRUE)
grid.arrange(pdf.lastBar.plot, pdf.bars.plot, pdf.barsNarrow.plot, pdf.integral.plot, ncol=2)