140 Wybrane procedury statystyczne
> U ustawiamy ziarno i generujemy liczby losowe
> set.se0d(1313)
> runif(lO)
[1] 0.883 0.384 0.709 0.494 0.638 0.632 0.241 0.100 0.547 0.366
> # wybieramy to samo ziarno
> set.seed(1313)
> runif(10)
[1] 0.883 0.384 0.709 0.494 0.638 0.632 0.241 0.100 0.547 0.366
W R dostępnych jest wiole funkcji do obsługi większości popularnych i wielu mniej popularnych rozkładów zmiennych losowych. W tym podrozdziale skupimy się na jednowymiarowych zmiennych losowych. Osoby poszukujące generatorów zmiennych wielowymiarowych z pewnością zainteresuje pakiet copula (nie omawiany tutaj). Nazewnictwo funkcji związanych ze zmiennymi losowymi jest ustandaryzowane. Nazwy funkcji składają się z dwóch członów, tak jak na poniższym schemacie.
# schemat nazw funkcji związanych z rozkładami zmiennych losowych [prefix][nazwa.rodziny.rozkładów]O
# generator liczb z rozkładu normalnego
rnortnO
tt dystrybuanta rozkładu jednostajnego punif O
# gęstość rozkładu wykładniczego
dexp()
tt kwantyle rozkładu t Studenta qt()
Suffix nazwa. rodziny. rozkładów określa jakiej rodziny rozkładów dana funkcja dotyczy. Wszystkich rodzin rozkładów dostępnych w R jest wiele, przegląd popularniejszych znajduje się w tabeli 3.2. Pref ix jest jednoliterowymi markerem, określającym co chcemy z tym rozkładem zrobić. Pref ix może być jedną z liter:
• Litera r (jak random) rozpoczyna nazwę funkcji - generatora liczb losowych. Taka funkcja generuje próbę prostą o liczebności n (pierwszy argument funkcji) z określonego rozkładu.
• Litera p (jak probability) rozpoczyna nazwę funkcji wyznaczającej wartości dystrybuanty danego rozkładu w punktach określonych przez wektor x (pierwszy argument tych funkcji).
• Litera d (jak density) rozpoczyna nazwę funkcji wyznaczającej wartości gęstości (dla rozkładów ciągłych) lub prawdopodobieństwa (dla rozkładów dyskretnych) danego rozkładu w punktach określonych przez wektor x (pierwszy argument tych funkcji). 1
Pozostało argumenty tych funkcji określają parametry rozkładu w wybranej rodzinie rozkładów. Dla funkcji wyznaczających gęstość lul> dystrylmuntę nio/.uii również określić argument log.p. .Jeżeli argumentem jest log.p“TRUK, In wynikiem funkcji są logarytmy zamiast oryginalnych wartości. Oporowanie na logiirytinaeli z gęstości w pewnycli sytuacjach możne zmniejszyć błędy numeryczno. Przykładowo licząc logarytm funkcji wiarygodności zamiast liczyć logarytm z iloczynu gęstości, bardziej dokładne wyniki otrzymamy dodając logarytmy z poszczególnych wartości gęstości.
Listę funkcji stowarzyszonych do najpopularniejszych rozkładów zmiennych losowych znaleźć można w tabeli 3.2. Jednym z najbardziej znanych rozkładów zmiennych losowych jest rozkład normalny, nazywany też rozkładem gaussowskim. Na rysunku 3.13 przedstawiona jest gęstość i dystrybuanta standardowego rozkładu normalnego. Wykres został wygenerowany przez następujące polecenia (zwróć uwagę jak uzyskano podwójne osie Y).
t określamy siatkę punktów, w których będziemy wyznaczać gęstość i dystrybuantę X = seq(-4,4,by-0.01)
D rysujemy gęstość
plot(x,dnorm(x),type="l" ,lwd=»3,cex.axis=1l.5,cex. lab=l .5)
0 na tym samym rysunku chcemy narysować dystrybuantę, która wymaga użycia innej osi OY, dlatego zmieniamy współrzędne w wyświetlanym oknie graficznym, teraz oś Y ma przyjmować wartości od -0.04 do l.OĄ poi(usr»c(-4,4,-0.04,1.04))
* dorysowujemy dystrybuantę, jest ona rysowana w nowym układzie
współrzędnych
lines(x,pnorm(x),lty-2,lwd-3,cex.axis-l,S,cex.lab-1.5)
# dorysowujemy oś OY po prawej stronie, jest ona w nowym układzie'
współrzędnych
axis(side=4,cex.axis”l.5,cex.lab=l.5)
ntext(side“4, "pnormO" ,line«2.5,cex.axis«l.5,cex=l .5)
Rysunek 3.13: Gęstość i dystrybuanta standardowego rozkładu normalnego
K wtuity I to funkcjA odwrotna do dygtrybuanty.
Litera q (jak ąuantile) rozpoczyna nazwę funkcji wyznaczającej wartości kwantylidanego rozkładu w punktach q (pierwszy argument tych funkcji).