czym są empiryczne funkcje skumulowanej dystrybucji i co możemy z nimi zrobić? Aby odpowiedzieć na pierwsze pytanie, najpierw cofnijmy się i upewnijmy się, że rozumiemy „rozkłady”, a dokładniej „rozkłady prawdopodobieństwa”.

podstawowy rozkład prawdopodobieństwa

wyobraź sobie proste Zdarzenie, powiedzmy rzut monetą 3 razy., Oto wszystkie możliwe wyniki, Gdzie H = głowa i T = ogon:

  • HHH
  • HHT
  • HTH
  • THH
  • TTH
  • TTT

teraz wyobraź sobie H = „sukces”., Nasze wyniki można modyfikować w następujący sposób:

  • HHH (3 Sukcesy)
  • HHT (2 Sukcesy)
  • HTH (2 Sukcesy)
  • THH (2 Sukcesy)
  • HTT (1 sukces)
  • TTH (1 sukces)
  • THT (1 sukces)
  • TTT (0 sukcesy)

ponieważ istnieje 8 możliwych wyników, prawdopodobieństwo dla 0, 1, 2 I 3 sukcesów wynosi

  • 0 sukcesów: 1/8
  • 1 sukcesów: 3/8
  • 2 sukcesów: 3/8
  • 3 sukcesów: 1/8

jeśli zsumujemy te prawdopodobieństwa otrzymujemy 1. A to oznacza „rozkład prawdopodobieństwa” dla naszego zdarzenia., Formalnie to zdarzenie następuje rozkład dwumianowy, ponieważ zdarzenia są niezależne, istnieje stała liczba prób (3), prawdopodobieństwo jest takie samo dla każdego rzutu (0,5), a nasz wynik to liczba „sukcesów” w liczbie prób. W rzeczywistości to, co właśnie zademonstrowaliśmy, to rozkład dwumianowy z 3 próbami i prawdopodobieństwem równym 0,5. Czasami jest to skracane jako b (3,0.5)., Możemy szybko wygenerować Prawdopodobieństwo w R za pomocą dbinom funkcji:

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

możemy szybko wizualizować ten rozkład prawdopodobieństwa za pomocą barplot funkcji:

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

funkcja używana do generowania tych prawdopodobieństw jest często określana jako funkcja „gęstość”, stąd „d” przed binomem., Dystrybucje, które generują prawdopodobieństwa dla wartości dyskretnych, takie jak dwumian w tym przykładzie, są czasami nazywane „funkcjami masy prawdopodobieństwa” lub PMFs. Dystrybucje, które generują prawdopodobieństwa dla wartości ciągłych, takie jak normalne, są czasami nazywane „funkcjami gęstości prawdopodobieństwa”, lub PDF. Jednak w R, niezależnie od PMF lub PDF, funkcja generująca prawdopodobieństwo jest znana jako funkcja „gęstość”.

funkcja rozkładu kumulacyjnego

teraz porozmawiajmy o prawdopodobieństwach „kumulacyjnych”., Są to prawdopodobieństwa, które kumulują się, gdy poruszamy się od lewej do prawej wzdłuż osi x w naszym rozkładzie prawdopodobieństwa., Patrząc na wykres rozkładu powyżej, który byłby

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

możemy szybko obliczyć te wartości:

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

rozkład tych prawdopodobieństw jest znany jako rozkład kumulacyjny., Ponownie istnieje funkcja W R, która generuje te prawdopodobieństwa dla nas. Zamiast ” D „przed” binom „wstawiamy ” p”.

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

Ta funkcja jest często po prostu określana jako „funkcja dystrybucji”, co może być mylące, gdy próbujesz zrozumieć rozkłady prawdopodobieństwa w ogóle. Wykreślenie tej funkcji wymaga nieco więcej pracy. Wkrótce zademonstrujemy łatwiejszy sposób na zrobienie tego wykresu, Więc przedstawiamy poniższy kod Bez komentarza.,

Ten wykres jest czasami nazywany wykresem krokowym. Jak tylko trafisz punkt na osi x, „krok” do następnego prawdopodobieństwa. Prawdopodobieństwo 0 lub mniejsze wynosi 0,125. Stąd linia prosta od 0 do 1. Na 1 idziemy do 0.5, ponieważ prawdopodobieństwo 1 lub mniej, jeśli 0.5. I tak dalej. Na 3 mamy kropkę na 1. Prawdopodobieństwo 3 lub mniej jest pewne. Mamy gwarancję, że osiągniemy 3 lub mniej sukcesów w naszej dystrybucji dwumianowej.

teraz zademonstrujmy to, co zrobiliśmy powyżej za pomocą rozkładu ciągłego., Aby było to stosunkowo proste, użyjemy standardowego rozkładu normalnego, który ma średnią 0 i odchylenie standardowe 1. W przeciwieństwie do powyższego przykładu rzucania monetami, który można dokładnie zrozumieć za pomocą rozkładu dwumianowego, nie ma przykładu „off-the-shelf” z prawdziwego życia, który idealnie odwzorowuje standardowy rozkład normalny. Dlatego musimy użyć naszej wyobraźni.

najpierw narysujmy dystrybucję używając funkcjicurve. Pierwszy argument, dnorm(x), jest w zasadzie formułą matematyczną, która rysuje linię., Zwróć uwagę na ” D „przed ” normą”; jest to funkcja „gęstości”. Domyślne wartości funkcji dnorm to średnia = 0, a odchylenie standardowe = 1. Argumenty from I to mówią, że narysuj tę krzywą używając wartości x z zakresu od -3 do 3.

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

krzywa jest gładką linią, co oznacza, że jest rozkładem prawdopodobieństwa dla wszystkich liczb rzeczywistych. Pole pod krzywą wynosi 1, ponieważ jest rozkładem prawdopodobieństwa.,

wyobraź sobie sięgnięcie do tej dystrybucji i narysowanie liczby. Jakie jest prawdopodobieństwo uzyskania 1.134523768923? W zasadzie to 0. Dlaczego? Ponieważ istnieje \(\frac{1} {\infty}\) szansa na jego wybranie. Dlaczego \(\infty\) jest w mianowniku? Ponieważ istnieje nieskończona liczba możliwości. Jeśli wydaje się to mylące, wyobraź sobie powiększenie do osi x z coraz drobniejszą i drobniejszą rozdzielczością, z dziesiętnymi ciągnącymi się do horyzontu. Oznacza to, że wartości osi y nie reprezentują prawdopodobieństwa, ale raczej „gęstość”., Gęstość jest zasadniczo prawdopodobieństwem małego przedziału wartości podzielonego przez ten przedział. Jeśli to też wydaje się mylące, to w porządku. Pamiętaj tylko, że nie używamy rozkładów normalnych (ani żadnych rozkładów ciągłych), aby uzyskać dokładne prawdopodobieństwa. Używamy ich do uzyskania prawdopodobieństwa dla szeregu wartości.

na przykład, Jakie jest prawdopodobieństwo, że x jest mniejsze lub równe -1? W tym celu możemy użyć funkcji pnorm, która jest funkcją rozkładu kumulacyjnego dla rozkładu normalnego.,

pnorm(-1)## 0.1586553

pakiet mosaic zapewnia przydatną funkcjęplotDist do szybkiej wizualizacji tego prawdopodobieństwa. Umieszczając mosaic:: przed funkcją możemy wywołać funkcję bez ładowania pakietu mosaic. Argumentgroups mówi, że utwórz dwa regiony: jeden dla mniej niż -1, a drugi dla większego niż -1. Argument type='h' mówi o narysowaniu wykresu podobnego do histogramu. Dwa kolory są dla odpowiednich regionów. Oczywiście „norma” oznacza narysować rozkład normalny., Ponownie domyślną wartością jest średnia 0 i odchylenie standardowe 1.

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

Ten wykres rzeczywiście pokazuje skumulowane prawdopodobieństwo. Niebieski obszar jest równy 0.1586553, prawdopodobieństwo, że narysujemy wartość -1 lub mniej z tego rozkładu. Przypomnijmy, że użyliśmy funkcji rozkładu kumulacyjnego, aby uzyskać tę wartość. Aby zobrazować wszystkie skumulowane prawdopodobieństwa dla standardowego rozkładu normalnego, możemy ponownie użyć funkcji curve, ale tym razem z pnorm.,

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

Jeśli spojrzymy na -1 na osi x i przejdziemy prosto do linii, a następnie przejdziemy bezpośrednio w lewo do osi x, powinna ona wylądować na 0.1586553. Możemy dodać to do wykresu używając 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') 

ponownie jest to gładka linia, ponieważ radzenie sobie z nieskończoną liczbą rzeczywistych wartości.,

empiryczne kumulatywne funkcje dystrybucji

teraz, gdy już wiemy o kumulatywnych rozkładach, przyjrzyjmy się empirycznym kumulatywnym rozkładom. „Empiryczne” oznacza, że zajmujemy się obserwacjami, a nie teorią. Dystrybucje skumulowane, które zbadaliśmy powyżej, opierały się na teorii. Użyliśmy rozkładów dwumianowych i normalnych kumulatywnych, odpowiednio, do obliczenia prawdopodobieństwa i wizualizacji rozkładu. W rzeczywistości jednak dane, które zbieramy lub obserwujemy, nie pochodzą z teoretycznej dystrybucji. Musimy użyć samych danych, aby stworzyć zbiorczą dystrybucję.,

możemy to zrobić w R za pomocą funkcjiecdf. ECDF oznacza „Empirical Cumulative Distribution Function”. Zwróć uwagę na ostatnie słowo: „funkcja”. Funkcjaecdf zwraca funkcję. Podobnie jak pbinomIpnorm były funkcjami skumulowanego rozkładu dla naszych danych teoretycznych, ecdf tworzy funkcję skumulowanego rozkładu dla naszych obserwowanych danych. Wypróbujmy to z zestawem danych rock, który jest dostarczany z R.,

zestaw danych skalnych zawiera pomiary na 48 próbkach skalnych ze zbiornika ropy naftowej. Zawiera 4 zmienne: area, peri, shape i perm. Będziemy pracować ze zmienną area, która jest całkowitą powierzchnią porów w każdej próbce.

funkcjeecdf działają na wektorach liczbowych, które często są kolumnami liczb w ramce danych. Poniżej podajemy kolumnę obszaru ramki danych skalnych.

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

zauważ, że wyjście nie jest przydatne. Dzieje się tak dlatego, że funkcja ecdf zwraca funkcję., Musimy przypisać wynik do nazwy, abyśmy mogli utworzyć naszą funkcję ECDF. Użyj Fn

Fn <- ecdf(rock$area)

teraz masz niestandardową funkcję dystrybucji zbiorczej, której możesz używać ze swoimi danymi. Na przykład możemy utworzyć wykres krokowy w celu wizualizacji rozkładu kumulacyjnego.

plot(Fn)

patrząc na wykres możemy zobaczyć szacowane prawdopodobieństwo, że powierzchnia próbki jest mniejsza lub równa 8000 wynosi około 0.6., Ale nie musimy polegać na rzucaniu okiem na wykres. Mamy imprezę! Możemy go użyć do dokładniejszego oszacowania. Wystarczy dać mu liczbę w zakresie osi x i zwróci skumulowane prawdopodobieństwo.

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

możemy użyć funkcji z więcej niż jedną wartością. Na przykład, możemy uzyskać szacowane prawdopodobieństwo, że obszar jest mniejszy lub równy 4000, 6000 i 8000.

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

istnieje również metodasummary dla funkcji ECDF., Zwraca podsumowanie unikalnych wartości obserwowanych danych. Zauważ, że jest podobna do tradycyjnej metody sumowania dla wektorów liczbowych, ale wynik jest nieco inny, ponieważ podsumowuje unikalne wartości zamiast wszystkich wartości.

wreszcie, jeśli chcemy, możemy nałożyć teoretyczny skumulowany rozkład na ECDF. Może to pomóc nam ocenić, czy możemy założyć, że nasze dane mogą być modelowane za pomocą określonego rozkładu teoretycznego. Na przykład, czy nasze dane mogą być uważane za pobrane z rozkładu normalnego?, Poniżej wykresujemy funkcję kroku, a następnie nakładamy skumulowany rozkład normalny, wykorzystując średnią i odchylenie standardowe naszych obserwowanych danych.

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

linie wydają się nakładać dość mocno, co sugeruje, że dane mogą być przybliżone za pomocą rozkładu normalnego. Możemy również porównać szacunki z naszego ECDF z teoretycznym CDF. Widzieliśmy, że prawdopodobieństwo, że obszar jest mniejszy lub równy 8000 wynosi około 0,625., Jak to porównać do normalnego rozkładu skumulowanego ze średnią i odchyleniem standardowym rock$area?

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

to całkiem blisko!

kolejną graficzną oceną jest wykres Q-Q, który można również łatwo wykonać w R za pomocą funkcjiqqnorm Iqqline. Chodzi o to, że jeśli punkty spadają wzdłuż linii przekątnej, to mamy dobre dowody, że dane są wiarygodnie normalne., Ponownie ten wykres ujawnia, że dane wyglądają, jakby mogły być dobrze przybliżone z rozkładem normalnym. (Więcej na temat Wykresów Q-Q, zobacz nasz artykuł, zrozumienie Wykresów Q-Q).

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

W przypadku pytań lub wyjaśnień dotyczących tego artykułu, skontaktuj się z biblioteką Uva StatLab: [email protected]

Zobacz cały zbiór artykułów Biblioteki Uva StatLab.

Clay Ford
Statistical Research Consultant
University of Virginia Library
July 9, 2020