Oczekuję, że Czytelnik uruchomił pakiet (lub „otoczenie”, environment) R. Nie zakładam żadnej wstępnej znajomości tego języka programowania. Oczywiście, podstaw programowania w R można się nauczyć z odpowiednich źródeł. Ale prawdę mówiąc, prostych rzeczy można się szybko domyślić i zacząć zabawę natychmiast.
2.1. Początki
Przykład 2.1 (Rozkład prawdopodobieństwa i próbka losowa). Wylosujmy „próbkę” średniego rozmiaru, powiedzmy n = 100 z rozkładu normalnego N(0,1):
> n <- 100
> X <- rnorm(n)
> X
(aby przyjrzeć się funkcji rnorm, napiszmy ?rnorm). Wektor X zawiera „realizacje” niezależnych zmiennych losowych X\,..., Ajoo- Możemy obliczyć średnią X = n-1 Aj i wariancję próbkową X = (n — l)-1 X)T=i (Aj — A)2. Jakich wyników oczekujemy? Zobaczmy:
> mean(X)
> var(X)
Porównajmy kwantyl empiryczny rzędu, powiedzmy p = 1/3, z teoretycznym:
> quantile(X,p)
> qnorm(p)
Możemy powtórzyć nasze „doświadczenie losowe” i zobaczyć jakie są losowe fluktuacje wyników. Warto wykonać nasz mini-programik jeszcze raz, albo parę razy. Teraz spróbujmy „zobaczyć” próbkę. Najlepiej tak:
> hist(X,prob=TRUE) ( proszę się dowiedzieć co znaczy parametr ‘prób’ ! )
> rug(X)
Możemy łatwo narysować wykres gęstości. Funkcja obliczająca gęstość ip rozkładu N(0,1) nazywa się dnorm, a curve jest funkcją rysującą wykresy.
> curve(dnorm(x),col="blue",add=TRUE)
(nawiasem mówiąc, zachęcam początkujących pRobabilistów do oznaczania wygenerowanych wektorów losowych dużymi literami, np. X, a deterministycznych zmiennych i wektorów - małymi, np. x, podobnie jak na rachunku prawdopodobieństwa).
Podobnie, możemy porównać dystrybuantę empiryczną z prawdziwą dystrybuantą <I>. Funkcja obliczająca dystrybuantę empiryczną nazywa się ecdf, zaś dystrybuantę rozkładu N(0,1) -pnorm.
> plot(ecdf(X))
Symulacje stochastyczne i metody Monte Carlo © W.Niemiro, Uniwersytet Warszawski, 2013.