• Nie Znaleziono Wyników

Zajęcia222października2021 WprowadzenieDorotaCelińska-Kopczyńska Rachunekprawdopodobieństwaistatystyka

N/A
N/A
Protected

Academic year: 2021

Share "Zajęcia222października2021 WprowadzenieDorotaCelińska-Kopczyńska Rachunekprawdopodobieństwaistatystyka"

Copied!
22
0
0

Pełen tekst

(1)

Rachunek prawdopodobieństwa i statystyka

Wprowadzenie

Dorota Celińska-Kopczyńska

Uniwersytet Warszawski

Zajęcia 2 22 października 2021

(2)

Problem 1b

Zaimplementuj funkcję, która wybiera losowe daty z przedziału 1,. . . , d póki nie natrafi na powtórkę. Funkcja powinna zwracać numer losowania, w którym pojawiła się powtórka. Wywołaj funkcję N = 100000 razy (zapisz zwracane wyniki).

I Narysuj histogram zwróconych wyników

I Jaka wartość wydaje się najbardziej prawdopodobna (najczęściej się pojawia)?

I Ile wynosi średnia arytmetyczna z uzyskanych wartości?

I Czy jest jakaś zależność między uzyskanymi wartościami a liczbą 23?

(3)

Co tu tak naprawdę robimy?

I Zajmujemy się weryfikacją paradoksu urodzinowego.

I (Gdyby nie RODO) moglibyśmy wszyscy podać daty urodzin w naszej grupie. Sprawdzilibyśmy, czy zdarzyła się powtórka.

Wynik jednak mógłby być przypadkowy.

I Moglibyśmy rozszerzyć eksperyment na pozostałe grupy laboratoryjne, ćwiczeniowe, przedmiotowe... porobić sztuczne grupy z członków różnych grup...

I Im więcej grup, tym mniej przypadkowe wartości zaczynamy uzyskiwać, jesteśmy w stanie agregować informacje

I Napisana przez nas funkcja pozwala zasymulować tworzenie takich grup

(4)

Co tu tak naprawdę robimy?

I Gdy funkcja zostaje wywołana, zaczynamy losować po jednej liczbie (symbolizującej dzień w roku), zapisujemy ją do zbioru.

I Taka liczba symuluje nam członka grupy

I Wiemy, że sprawdzamy, jaka wielkość grupy jest potrzebna, żeby się powtórzyła data urodzenia

I Losujemy daty (dodajemy osoby do grupy) póki się nie pojawi powtórka

I Skoro się powtórka pojawiła, to zwracamy rozmiar grupy, w którym to się stało

(5)

Po co to robimy?

I W badaniach ilościowych swoje przypuszczenia (teoria) chcemy sprawdzać, czy są w zgodzie z danymi (empiria) I W wielu życiowych sytuacjach nie mamy łatwego dostępu do

dostatecznie dużej liczby zbiorów danych, które pozwoliłyby nam na weryfikację naszych przypuszczeń

I W takich sytuacjach możemy wygenerować sztuczne dane, które będą podstawą naszej symulacji

I Naśladujemy w kodzie mechanizmy, które zauważamy w rzeczywistości

I Generujemy dane tak, żeby jak najbardziej przypominały dane rzeczywiste

(6)

Jak to będziemy robić?

1. Potrzebujemy generatora liczb losowych (random.randint) 2. Tworzymy zbiór, w którym zapiszemy kolejne losowane liczby 3. Będziemy losować wartości (ze zbioru 1,d) i dodawać je do

zbioru dopóki nie pojawi się powtórka

4. W sytuacji powtórki zwracamy rozmiar zbioru zwiększony o jeden

(7)

Histogram

1. Histogram jest takim typem wykresu, który umożliwia nam zaprezentowanie, jak często pojawiają się uporządkowane wartości

2. Dla każdej wartości x rysujemy słupek, którego wysokość odpowiada częstotliwości jej wystąpienia (może być w wartościach absolutnych lub względnych)

3. W python skorzystamy z funkcji plt.hist

(8)

plt.hist() – ciekawsze argumenty

1. https://matplotlib.org/3.3.2/api/_as_gen/matplotlib.pyplot.hist.html?highlight=hist#

matplotlib.pyplot.hist

2. x – tablica z wartościami, z których histogram chcemy narysować

3. bins – jeśli integer to liczba słupków, które mają zostać narysowane (domyślnie 10), jeśli sekwencja, to wartości, które są krawędziami słupków

4. cumulative – pozwala uzyskać histogram wartości skumulowanych (wysokość każdego słupka powiększona o wysokość poprzedniego, uwzględnia przez to wszystkie poprzednie wartości)

(9)

Przykładowy rezulat

(10)

Problem 1c

W pliku us births 69 88.csv umieszczono liczby urodzeń w danym dniu roku, zebrane pomiędzy 1969 a 1988 rokiem.

I Wczytaj plik. Czy dostrzegasz coś zaskakującego w jego zawartości?

I Narysuj mapę cieplną. Czy dostrzegasz odstępstwa od założenia o takiej samej częstotliwości urodzeń danego dnia?

I Sugestia: ewidentne błędy powinno się usunąć, ale dziś możemy to pominąć

I Zastosuj dane z pliku w zadaniu 1b

(11)

Co tu tak naprawdę robimy?

I W poprzednim zadaniu zwróciłam Państwu uwagę, że chcemy, żeby mechanizm tworzący nasze sztuczne dane jak najlepiej odzwierciedlał (był taki sam) jak ten z rzeczywistości I Przyjęliśmy jednak pewne założenie: wystąpienie każdej daty

było tak samo prawdopodobne (tak losuje random.randint()) I W rzeczywistości nie musiałoby tak być. Przyjmijmy, że

dostarczony plik poza “specjalnie” doklejonymi zmyślonymi datami zawiera rzeczywiste dane

I Sprawdźmy, czy założenie o takim samym

prawdopodobieństwie pojawienia się którejkolwiek daty jest zasadne

(12)

Co tu tak naprawdę robimy?

I Jeśli okaże się, że przyjęte założenie nie jest spełnione, zmienimy sposób w jaki generowane są daty w 1b

I Dzięki temu uzyskamy dane sztuczne, które będą bardziej podobne do rzeczywistych

(13)

Po co to robimy?

I Rzeczywistość jest zbyt skomplikowana, żeby ją idealnie odwzorować

I Tworząc dane symulowane z reguły potrzebujemy przyjąć pewne założenia lub uproszczenia

I W zależności od potrzeby te założenia mogą mniej lub bardziej wpływać na końcowy wynik

I Dobrze jest, jeśli możemy wykorzystać część rzeczywistych danych, ale może się okazać, że nie jest to konieczne

(14)

Jak to będziemy robić?

1. Wczytamy plik

2. Stworzymy mapę cieplną (heatmap)

3. Edytujemy funkcję symulującą wielkości grup – sposób, w jaki losujemy datę

(15)

CSV

I Comma Separated Values

I Standard wśród badań ilościowych...

I Kluczowe: delimiter (separator), cudzysłów (wartości z kontekstem), kodowanie

I Plusy i minusy

(16)

CSV

I Każdy wiersz opisuje jeden obiekt, każda kolumna jedna cechę tego obiektu

I Delimiter (separator) oddziela od siebie kolumny (np.

przecinek, średnik, tabulacja...)

I Każdy wiersz zawiera taką samą liczbę kolumn

I Pierwszy wiersz może być nagłówkiem i zawierać nazwy kolumn

(17)

CSV

I Cudzysłów (quotation) pozwala potraktować dane w

kontekście: jeśli wartość w danej kolumnie zawiera delimiter, będzie on traktowany jak zwykły znak, do wystąpienia kolejnego cudzysłowu

I Jeśli wartości w danej kolumnie również zawierają cudzysłów I spotyka się użycie ”” (podwójnego cudzysłowu) wewnątrz pola I można rozważyć zmianę znaku/sekwencji znaków, która

pozwala na potraktowanie danych w kontekście

I można zastosować znaki ucieczki lub sekwencje ucieczek (może nie być wszędzie wspierane)

(18)

Przykład

wiek; kolorOczu ; motto

23 ; brązowe ; "say twice, say twice"

40 ; niebieskie; "be ""nice"""

(19)

Jak wczytać plik?

Skorzystamy z biblioteki numpy, funkcji loadtxt()

import numpy as np

stats = np.loadtxt(nazwapliku, skiprows = 1, delimiter=’,’, dtype=int)

# skiprows -- pozwala sie pozbyc naglowka (pierwszy rzad z nazwami cech)

# stats[3][2] -- wartosc w trzecim wierszu, 2 kolumnie

# stats.shape -- informacja o wymiarach tablicy numpy

(20)

Tworzenie mapy cieplnej

I plt.pcolor(dni, miesiace, liczebnosc) I Im bardziej jaskrawy kolor, tym większa częstotliwość

występowania

I dni – tablica zawierająca uporządkowane wartości I miesiace – tablica zawierająca uporządkowane wartości I liczebność – tablica dwuwymiarowa, wymiary w kolejnosci:

miesiac, dzien (wartość: liczba urodzin w danym dniu)

(21)

Przykładowy rezulat

(22)

Ulepszanie generatora

I Skorzystamy z sum prefiksowych i wyszukiwania binarnego I Intuicja: losujemy liczbę, np. 1000 i sprawdzamy, której dacie

odpowiada 1000 urodzenie

Cytaty

Powiązane dokumenty

Rozpoznaj, która część zdania została wskazana w danym wypowiedzeniu.. Wstaw znak X w

pokoloruj brązowym kolorem, narysuj ładną ramkę wokół krzyża i jasno

Naturze tekstu poświęcony jest osobny rozdział („Tekst w tekście”), ale z powodu oczywistej ważności tej problematyki dla koncepcji semiosfery 1 historii

Zastosuj tę metodę do problemu paradoksu urodzinowego (wynikiem działania całego programu powinien być histogram)... Metoda alias

I Zakłada się, że dobrym przybliżeniem średniej jest średnia arytmetyczna.. I Podczas dzisiejszego labu sprawdzimy, czy dzięki średniej arytmetycznej możemy wnioskować na

I Monte Carlo jest metodą stosowaną do matematycznego modelowania zjawisk zbyt złożonych, żeby można było wyznaczyć ich wyniki analitycznie.. I Poprzez wielokrotne losowania

(Mogą Państwo sprawdzić sobie wyniki korzystając z gotowej implementacji, jednak w oddanym zadaniu konieczne jest samodzielne zaimplementowanie

I R rozróżnia typy danych, najbardziej podstawowym jest vector I Wśród statystyków popularna również ramka danych: