Wat zijn empirische cumulatieve distributiefuncties en wat kunnen we ermee doen? Om de eerste vraag te beantwoorden, laten we eerst een stap terug en zorg ervoor dat we begrijpen “distributies”, of meer specifiek, “kansverdelingen”.

een Basiskansverdeling

stel je een eenvoudige gebeurtenis voor, bijvoorbeeld 3 keer omgooien van een munt., Hier zijn alle mogelijke uitkomsten, waarbij H = head en T = tails:

  • HHT
  • HTH
  • THH
  • HTT
  • TTH
  • THT
  • TTT

stel je nu voor dat H = “succes”., Onze resultaten kunnen als volgt worden aangepast:

  • HHH (3 successen)
  • HHT (2 successen)
  • HTH (2 successen)
  • THH (2 successen)
  • HTT (1 succes)
  • TTH (1 succes)
  • THT (1 succes)
  • TTT (0 successen)

Sinds er zijn 8 mogelijke uitkomsten, de kansen voor 0, 1, 2, en 3 successen

  • 0 successen: 1/8
  • 1 successen: 3/8
  • 2 successen: 3/8
  • 3 successen: 1/8

Als we de som die kansen die we krijgen 1. En dit vertegenwoordigt de” kansverdeling ” voor onze gebeurtenis., Formeel volgt deze gebeurtenis een binomiale verdeling omdat de gebeurtenissen onafhankelijk zijn, er een vast aantal proeven zijn (3), de waarschijnlijkheid is hetzelfde voor elke flip (0.5), en onze uitkomst is het aantal “successen” in het aantal proeven. In feite is wat we net hebben aangetoond een binomiale verdeling met 3 proeven en waarschijnlijkheid gelijk aan 0.5. Dit wordt soms afgekort als b (3,0. 5)., We kunnen snel de kansen in R met behulp van de dbinom functie:

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

We snel kunnen visualiseren van deze verdeling met de barplot functie:

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

De functie voor het genereren van deze kansen wordt vaak aangeduid als de “dichtheid” van de functie, vandaar de “d” in de voorkant van binom., Distributies die waarschijnlijkheden genereren voor discrete waarden, zoals de binomiale in dit voorbeeld, worden soms “kansmassafuncties” of pmfs genoemd. Distributies die waarschijnlijkheden genereren voor continue waarden, zoals de normale, worden soms “waarschijnlijkheidsfuncties” of PDF ‘ s genoemd. Nochtans in R, ongeacht PMF of PDF, is de functie die de waarschijnlijkheden genereert bekend als de “dichtheidsfunctie”.

cumulatieve distributiefunctie

laten we het nu hebben over “cumulatieve” waarschijnlijkheden., Dit zijn waarschijnlijkheden die zich ophopen als we van links naar rechts bewegen langs de x-as in onze kansverdeling., Kijkend naar de verdeling plot hierboven dat zou worden

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

Wij kunnen snel berekenen deze:

  • \(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\)

De verdeling van deze kansen is bekend als de cumulatieve verdeling., Opnieuw is er een functie in R die deze waarschijnlijkheden voor ons genereert. In plaats van een” d “voor” binom “zetten we een”p”.

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

Deze functie wordt vaak gewoon aangeduid als de” distributiefunctie”, wat verwarrend kan zijn als je probeert je hoofd te krijgen rond kansverdelingen in het algemeen. Het plotten van deze functie kost wat meer werk. We zullen binnenkort een makkelijkere manier demonstreren om deze plot te maken, dus presenteren we de volgende code zonder commentaar.,

Dit plot wordt soms een step plot genoemd. Zodra je een punt op de x-as raakt, “stap” je naar de volgende kans. De kans op 0 of minder is 0,125. Vandaar de rechte lijn van 0 Naar 1. Bij 1 stappen we naar 0,5, omdat de kans op 1 of minder als 0,5. En zo voort. Om 3 uur hebben we een stip op 1. De waarschijnlijkheid van 3 of minder is zekerheid. We krijgen gegarandeerd 3 of minder successen in onze binomiale distributie.

laten we nu demonstreren wat we hierboven deden met een continue distributie., Om het relatief eenvoudig te houden gebruiken we de standaard normale verdeling, die een gemiddelde van 0 en een standaardafwijking van 1 heeft. In tegenstelling tot ons voorbeeld dat met een binomiale verdeling precies kon worden begrepen, is er geen “off-the-shelf” voorbeeld uit het echte leven dat perfect in kaart brengt naar een standaard normale verdeling. Daarom moeten we onze verbeelding gebruiken.

laten we eerst de distributie tekenen met behulp van de curve functie. Het eerste argument, dnorm(x), is in principe de wiskundige formule die de lijn tekent., Let op de” d “Voor” norm”; dit is de” dichtheid ” functie. De standaardwaarden van de functie dnorm zijn mean = 0 en standaardafwijking = 1. De argumenten from en to zeggen dat je deze curve tekent met waarden van x variërend van -3 tot 3.

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

De curve is een gladde lijn, wat betekent dat het een kansverdeling is voor alle reële getallen. Het gebied onder de curve is 1 omdat het een kansverdeling is.,

stel je voor dat je deze verdeling bereikt en een getal tekent. Wat is de kans op 1,134523768923? Het is in wezen 0. Waarom? Omdat er \(\frac{1}{\infty}\) kans is om het te selecteren. Waarom zit \(\infty\) in de noemer? Omdat er een oneindig aantal mogelijkheden is. Als dat verwarrend lijkt, stel je dan voor dat je inzoomt op de x-as met fijnere en fijnere resolutie, met decimalen die zich uitstrekken tot aan de horizon. Dit betekent dat de y – aswaarden geen waarschijnlijkheid maar eerder “dichtheid”vertegenwoordigen., De dichtheid is in wezen de waarschijnlijkheid van een klein bereik van waarden gedeeld door dat bereik. Als dat ook verwarrend lijkt, is het goed. Vergeet niet dat we geen normale distributies (of een continue distributie) gebruiken om exacte waarschijnlijkheden te krijgen. We gebruiken ze om kansen te krijgen voor een reeks waarden.

bijvoorbeeld, Wat is de kans dat x kleiner is dan of gelijk is aan -1? Hiervoor kunnen we de functie pnorm gebruiken, die de cumulatieve distributiefunctie is voor de normale distributie.,

pnorm(-1)## 0.1586553

het Mosaic-pakket biedt de handige plotDist functie voor het snel visualiseren van deze waarschijnlijkheid. Door mosaic:: voor de functie te plaatsen kunnen we de functie aanroepen zonder het Mosaic pakket te laden. Het argument groups zegt twee regio ‘ s maken: een voor minder dan -1, en een voor groter dan -1. Het argument type='h' zegt een “histogram-achtige” plot tekenen. De twee kleuren zijn voor de respectievelijke regio ‘ s. Uiteraard” norm ” betekent teken een normale verdeling., Opnieuw is de standaard gemiddelde 0 en standaardafwijking 1.

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

Deze grafiek toont daadwerkelijk cumulatieve waarschijnlijkheid. Het blauwe gebied is gelijk aan 0.1586553, de kans dat we uit deze verdeling een waarde van -1 of minder trekken. Recall we gebruikten de cumulatieve distributie functie om deze waarde te krijgen. Om alle cumulatieve waarschijnlijkheden voor de standaard normale distributie te visualiseren, kunnen we opnieuw de functie curve gebruiken, maar deze keer met pnorm.,

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

als we kijken naar -1 op de x-as en rechtdoor gaan naar de lijn, en dan direct naar links naar de x-as, dan zou het op 0.1586553 moeten landen. We kunnen dit aan de plot toevoegen met 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') 

opnieuw is dit een vloeiende lijn omdat we te maken hebben met een oneindig aantal waarden.,

empirische cumulatieve distributiefuncties

nu we duidelijk zijn over cumulatieve distributies, laten we empirische cumulatieve distributies onderzoeken. “Empirisch” betekent dat we ons meer bezighouden met observaties dan met theorie. De cumulatieve verdelingen die we hierboven onderzochten waren gebaseerd op theorie. We gebruikten respectievelijk de binomiale en normale cumulatieve distributies om waarschijnlijkheden te berekenen en de distributie te visualiseren. In het echte leven komen de gegevens die we verzamelen of observeren echter niet uit een theoretische verspreiding. We moeten de gegevens zelf gebruiken om een cumulatieve distributie te creëren.,

we kunnen dit doen in R met de ecdf functie. ECDF staat voor”empirische cumulatieve distributiefunctie”. Let op het laatste woord: “functie”. De functie ecdf geeft een functie terug. Net zoals pbinom en pnorm de cumulatieve distributiefuncties voor onze theoretische gegevens waren, creëert ecdf een cumulatieve distributiefunctie voor onze waargenomen gegevens. Laten we dit uitproberen met de rock data set die bij R hoort.,

De rockgegevensset bevat metingen op 48 Steenmonsters uit een petroleumreservoir. Het bevat 4 variabelen: oppervlakte, peri, vorm, en perm. We zullen werken met de oppervlakte variabele, dat is de totale oppervlakte van poriën in elk monster.

de ecdf functies werken op numerieke vectoren, die vaak kolommen van getallen zijn in een gegevensframe. Hieronder geven we het gebied kolom van de rock data frame.

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

merk op dat de uitvoer niet zo nuttig is. Dat komt omdat de functie ecdf een functie retourneert., We moeten het resultaat aan een naam toewijzen zodat we onze ECDF-functie kunnen creëren. Laten we Fn

Fn <- ecdf(rock$area)

nu hebt u een aangepaste cumulatieve distributie functie die u kunt gebruiken met uw gegevens. We kunnen bijvoorbeeld een step plot maken om de cumulatieve distributie te visualiseren.

plot(Fn)

kijkend naar de plot kunnen we zien dat de geschatte waarschijnlijkheid dat de oppervlakte van een monster kleiner is dan of gelijk is aan 8000 ongeveer 0,6 is., Maar we hoeven niet te vertrouwen op eye-balling de grafiek. We hebben een functie! We kunnen het gebruiken om een nauwkeuriger schatting te krijgen. Geef het gewoon een getal binnen het bereik van de x-as en het zal de cumulatieve waarschijnlijkheid retourneren.

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

We kunnen de functie met meer dan één waarde gebruiken. We kunnen bijvoorbeeld geschatte kansen krijgen dat de oppervlakte kleiner is dan of gelijk is aan 4000, 6000 en 8000.

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

er is ook een summary methode voor ECDF-functies., Het geeft een samenvatting van de unieke waarden van de waargenomen gegevens. Merk op dat het vergelijkbaar is met de traditionele samenvattingsmethode voor numerieke vectoren, maar het resultaat is iets anders omdat het de unieke waarden samenvat in plaats van alle waarden.

ten slotte kunnen we, als we willen, een theoretische cumulatieve distributie over het ECDF leggen. Dit kan ons helpen te beoordelen of we kunnen aannemen dat onze gegevens kunnen worden gemodelleerd met een bepaalde theoretische distributie. Kunnen onze gegevens bijvoorbeeld worden beschouwd als monsters van een normale verdeling?, Hieronder plotten we de step functie en overlay vervolgens een cumulatieve normale verdeling met behulp van de gemiddelde en standaardafwijking van onze waargenomen gegevens.

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

de regels lijken elkaar nogal te overlappen, wat suggereert dat de gegevens benaderd kunnen worden met een normale distributie. We kunnen ook schattingen van onze ECDF vergelijken met een theoretische CDF. We zagen dat de kans dat de oppervlakte kleiner is dan of gelijk is aan 8000 ongeveer 0,625 is., Hoe verhoudt dat zich tot een normale cumulatieve verdeling met een gemiddelde en standaardafwijking van rock$area?

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

dat is vrij dichtbij!

een andere grafische beoordeling is de Q-Q plot, die ook gemakkelijk kan worden gedaan in R met behulp van de qqnorm en qqline functies. Het idee is dat als de punten langs de diagonale lijn vallen, we goed bewijs hebben dat de gegevens plausibel normaal zijn., Opnieuw blijkt uit deze plot dat de gegevens eruit zien alsof ze goed kunnen worden benaderd met een normale verdeling. (Voor meer informatie over Q-Q plots, zie ons artikel, Understanding Q-Q Plots).

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

voor vragen of verduidelijkingen met betrekking tot Dit artikel kunt u contact opnemen met het StatLab van de UvA-bibliotheek: [email protected]

bekijk de volledige collectie StatLab-artikelen van de UvA-bibliotheek.

Clay Ford
Statistical Research Consultant
University of Virginia Library
9 juli 2020