Laboratoriom/projekt
ze statystyki matematycznej i
rachunku prawdopodobieństwa
Laboratorium 0: Zapoznanie się z metodą MC oraz
środowiskiem
Anaconda(Python) do analizy i prezentacji danych.
Przykłady prostych zadań z rachunku
prawdopodobieństwa:
- RP1
Jaka jest szansa wyrzucenia takiej samej liczby oczek w
dwóch rzutach rzetelną kostką do gry?
- RP2
Partię A popiera 20% dorosłych obywateli. Jaka jest
szansa, że wśród losowo wybranych 100 obywateli
partię A
popiera mniej niż 15 osób?
Metoda MC:
- Eksperyment
losowy - proces którego wyniku nie można z góry
przewidzieć.
- Metoda Monte Carlo to technika służąca
do symulacji eksperymentu
losowego za pomocą ciągu liczb
losowych.
- Metoda MC umożliwia przybliżone rozwiązanie
większości problemów z zakresu prawdopodobieństwa i
statystyki.
- Aby przeprowadzać
symulacje MC konieczny jest jakiś
język programowania
zawierający dwa elementy: pętlę
oraz
generator liczb losowych np. :
- Klasyczne
języki programowania: FORTRAN, C, Pascal, Java,
C/C++,
Python
- Interpretery biurowych
arkuszy kalkulacyjnych: OpenOffice, Excel
- Środowiska obliczeniowe: Matlab, Mathematica,
SAS, ROOT, Anaconda
- Pakiety statystyczne: Statistica, SPSS,
S-plus, R
Liczby
pseudolosowe w Python :
NumPy (Numerical Python) jest dedykowanym pakietem do
obliczeń numerycznych w Python zoptymalizowanym do
operowania na ciągach danych (np. próbach
losowych). Ładujemy go poprzez polecenie import.
import numpy as np
# np.function będzie
referencją do obiektu function z pakietu NumPy
np.random jest modułem
umożliwiającym wydajną generacji całych ciągów
liczb losowych z wielu rozkładów prawdopodobieństwa.
- Przykład RP1 (rzut dwiema
kostkami)

Optymalizacja do pracy z wielowymiarowymi szeregami
(tablicami) umożliwia kodowanie w zasadzie bez
korzystania z pętli.
Pięć rzutów dwoma kostkami (możemy zmodyfikować
poprzedni fragment kodu, lub napisać nowy w kolejnej
komórce Jupyter'a)

Aby rozwiązać w pełni przykład
RP1 należy
powtórzyć rzuty dwoma kostkami dużą
ilość razy i
zliczyć ilość przypadków
gdy wyrzucona zostanie ta sama liczba oczek na
obu kostkach.


Metoda np.where umożliwia
wydajne tworzenie szeregu z innych szeregów
lub ich elementów

Pracując w Jupyter zawsze
możemy zmodyfikować i wykonać ponownie każdą
komórkę programu, dodać nową komórkę
pomiędzy już istniejące. Co znacznie ułatwia
prace interakcyjną, debagowanie i eksploracje
analizowanych
danych. Kolejną istotną pomocą
jest wizualizacja analizowanych danych.
Podstawowym pakietem do wizualizacji
jest biblioteka matplotlib.

Powyższy rysunek (plot) przedstawia częstość
pojawienia się sukcesu(tej samej liczby oczek
na obu kostkach) w funkcji liczby
wykonanych prób (rzutów). Zgodnie z
definicją częstościową prawdopodobieństwa
granica do której dąży ta częstość dąży do
prawdopodobieństwa badanego zdarzenia
losowego a wizualizacja pomaga nam ocenić jak
szybko częstość zbiega się do
prawdopodobieństwa.
Plik z Jupyter (notebook) z poleceniami
dyskutowanymi przy okazji przykładu RP1
znajduje się pod tym linkiem
Przykład RP2 (poparcie partii w losowej grupie
100 obywateli)

Każdy wiersz tablicy sample
odpowiada jednej losowej próbie 100 obywateli (wartość 1 -
zwolennik partii A, 0 - zwolennik innej partii)
Każdy wiersz tablicy numberA zwiera
biegnącą sumę ilości osób popierających partię A. Jej ostatnia
kolumna odpowiada całej 100 osobowej grupie

Przy okazji możemy poznać dwa kolejne sposoby prezentacji danych
(scatter plot oraz histogram)

Prawy rysunek reprezentuje rozkład prawdopodobieństwa zmiennej
losowej opisującej ilość osób popierających partię A w losowo
wybranej grupie 100 obywateli jeśli poparcie tej partii w całej
populacji wynosi 20%
Plik z Jupyter (notebook) z
poleceniami dyskutowanymi przy okazji
przykładu RP2 znajduje się pod tym linkiem
Zadania do samodzielnego przerobienia są pod
tym linkiem