class: center, middle, inverse, title-slide .title[ # Statystyka i wizualizacja danych ] .subtitle[ ## Wnioskowanie statystyczne ] .author[ ### Jakub Nowosad
nowosad@amu.edu.pl
] --- class: inverse, middle, center # Wnioskowanie statystyczne --- ## Wnioskowanie statystyczne - Populacja, a próba - Celem wielu analiz statystycznych jest zdobycie wiedzy (wnioskowanie) o populacji na podstawie danych z próby - Aby taka analiza była możliwa, próba musi odzwierciedlać podstawowe własności populacji - Najprostsza możliwość zdobycia takiej próby opiera się na losowym doborze (próba losowa) - Metody statystyczne służące do wnioskowania o populacji zazwyczaj wymagają określenia założeń dotyczących rozkładu danych --- ## Wnioskowanie statystyczne - Mierzona jest pojedyncza cecha liczbowa, np. wzrost, waga, powierzchnia, etc. - Z populacji wybierana jest próba (losowa lub reprezentatywna) - Celem jest estymacja (określanie/szacowanie) nieznanej średniej wartości dla populacji na podstawie wartości próby <div style='text-align: center;'><a href="http://www.gs.washington.edu/academics/courses/akey/56008/lecture/lecture1.pdf"><img height='300' img src="fig/basic.png"></a></div> --- ## Wnioskowanie statystyczne (2) Dwie podstawowe metody: - przedziały ufności (ang. confidence intervals - CI) - testowanie hipotez Obie oparte są o średnią i odchylenie standardowe próby. --- ## Wnioskowanie statystyczne - terminy - **Rozkład próby** - **Błąd standardowy** (ang. Standard Error) danej statystyki (miary, np. średniej) - odchylenie standardowe rozkładu wartości z próby - **Prawo wielkich liczb** (ang. law of large numbers - LLN) - teoria mówiąca, iż zwiększając liczbę doświadczeń opartych na zdarzeniach losowych, możemy oczekiwać rozkładu wyników (próba) coraz lepiej odpowiadającego rozkładowi prawdopodobieństw zdarzeń (populacja) oraz, iż tym większe są na to szanse im większa jest liczba doświadczeń - **Centralne twierdzenie graniczne** (ang. central limit theorem - CLT) - teoria mówiąca, iż średnia wystarczająco dużego zbioru liczb niezależnych prób losowych, każdych ze skończoną średnią i wariancją, będzie posiadała w przybliżeniu rozkład normalny --- ## Wnioskowanie statystyczne - terminy(2) https://gallery.shinyapps.io/CLT_mean/ --- ## Wnioskowanie statystyczne - terminy(3) https://ihstevenson.shinyapps.io/sample_means/ --- class: inverse, middle, center # Przedziały ufności --- ## Estymacja punktowa - Dla każdej próby losowej możemy wyliczyć średnią próby - Zazwyczaj nie będzie ona zgodna ze średnią populacji - Estymacja punktowa jest pewnym punktem wyjścia --- ## Przedziały ufności - Numeryczne podsumowanie niepewności estymacji - Np. 95% przedział ufności mówi, że dla 95% z próby, ten przedział zawiera poprawną wartość - Przedział ufności to zakres możliwych wartości dla nieznanej średniej populacji oparty na danych próby -- - Wyliczenie CI dla średniej populacji polega na: 1. Zdefiniowaniu parametru populacji (np. średnia, wariancja) 2. Określeniu poziomu ufności - wartość od 0 do 100% (zazwyczaj 95 lub 99%) 3. Wyliczeniu wartości krytycznych rozkładu t-Studenta 4. Podaniu wartości CI, np., jako interwał (D, G) --- ## Przedziały ufności - Przykładowo 95% przedział ufności może być interpretowany jako: "Jeżeli będą wielokrotnie brane próby z populacji i dla średniej populacji będzie tworzony 95% przedział ufności, to wówczas 95% przedziału będzie zawierało średnią populacji, podczas gdy 5% nie będzie jej zawierało" --- ## Przedziały ufności - Tworzymy próbę z 25 obserwacjami z rozkładu normalnego o średniej 10 i odchyleniu standardowym 2. Wyliczamy 95% przedział ufności. Powtarzamy to stukrotnie <img src="07_wnioskowanie_files/figure-html/unnamed-chunk-1-1.png" style="display: block; margin: auto;" /> --- ## Przedziały ufności https://shiny.rit.albany.edu/stat/confidence/ --- ## Wyznaczanie przedziałów ufności (założenia) - Klasyczna procedura wyliczania CI oparta jest o założenia: - Dane próby są próbą losową z populacji - Rozkład danych populacji jest normalny - Oczywiście, określenie normalności rozkładu nie może być kompletne bez posiadania danych całej populacji --- ## Wyznaczanie 95% przedziału ufności dla średniej populacji znając SD ```r pomiary_pol = read.csv("data/pomiary_pol.csv") head(pomiary_pol) ``` ``` ## pomiar_id tmin_4 tmax_4 tmin_9 tmax_9 annual_tavg annual_precip ## 1 1 1.796358 12.04034 6.947685 17.84769 6.533702 864.6408 ## 2 2 4.122184 14.35588 9.214639 19.32696 8.144152 644.7503 ## 3 3 3.750375 12.58249 9.513398 17.76400 7.831449 613.0326 ## 4 4 3.645718 12.19533 9.743287 17.69533 7.851240 638.0846 ## 5 5 2.788949 12.58895 7.988949 17.78588 7.296935 546.1904 ## 6 6 4.129882 14.12988 9.300000 19.10000 8.200000 555.2842 ## prow_id woj_id prowincja ## 1 2 6 Karpaty Zachodnie z Podkarpaciem Zachodnim i Północnym ## 2 6 13 Wyżyny Polskie ## 3 4 16 Niż Środkowoeuropejski ## 4 4 16 Niż Środkowoeuropejski ## 5 4 3 Niż Środkowoeuropejski ## 6 2 9 Karpaty Zachodnie z Podkarpaciem Zachodnim i Północnym ## wojewodztwo ## 1 małopolskie ## 2 świętokrzyskie ## 3 zachodniopomorskie ## 4 zachodniopomorskie ## 5 lubelskie ## 6 podkarpackie ``` --- ## Wyznaczanie 95% przedziału ufności dla średniej populacji nieznając SD ```r tavg = na.omit(pomiary_pol$annual_tavg) # liczba obserwacji n = length(tavg) # wyliczone odchylenie standardowe próby s = sd(tavg) # szacowany błąd standardowy średniej SE = s / sqrt(n) # szacowany błąd standardowy średniej SE ``` ``` ## [1] 0.02065063 ``` --- ## Wyznaczanie 95% przedziału ufności dla średniej populacji nieznając SD (2) ```r # zakres błędu E = qt(0.025, df = n - 1, lower.tail = FALSE) * SE E ``` ``` ## [1] 0.0405073 ``` ```r sr_tavg = mean(tavg) # średnia próby sr_tavg ``` ``` ## [1] 7.582775 ``` ```r sr_tavg + c(-E, E) # CI ``` ``` ## [1] 7.542268 7.623282 ``` --- class: inverse, middle, center # Testowanie hipotez --- ## Testowanie hipotez - **Testowanie hipotez** - sprawdzenie określonych założeń wysuniętych w stosunku do parametrów lub rozkładu populacji - **Hipotezy statystyczne** - sformułowane przypuszczenia dotyczące rozkładu populacji - Hipotezy statystyczne mogą mieć różną postać. Stosowane są hipotezy **parametryczne** (precyzujące wartości parametrów populacji) i **nieparametryczne** --- ## Testowanie hipotez (przykład) Chcemy sprawdzić czy średnia populacji `\(\mu\)` jest równa pewnej przyjętej wartości `\(\mu_0\)` - Sprawdzamy założenia testu - Tworzymy hipotezę dwustronną: + Hipoteza zerowa mówi, iż `\(\mu = \mu_0\)` + Hipoteza alternatywna mówi, iż `\(\mu \neq \mu_0\)` - Ustalamy ją: + Słownie: "Średnia populacji różni się od przyjętej średniej" (Obejmuje hipotezę alternatywną) + Wyrażeniem: `\(H_0 : \mu = \mu_0\)` versus `\(H_A : \mu \neq \mu_0\)` --- ## Testowanie hipotez - rodzaje błędów - **błąd I rodzaju** - odrzucenie hipotezy prawdziwej - **błąd II rodzaju** - nie odrzucenie hipotezy fałszywej --- ## Testowanie hipotez - p-value - **p-value** - poziom istotności testu - Prawdopodobieństwo popełnienia błędu I rodzaju - Miara prawdopodobieństwa `\(H_0\)` - Im mniejsza wartość poziomu istotności, tym mniejsza szansa, że hipoteza zerowa jest prawdziwa --- ## Testowanie hipotez - określenie wyniku testu - Odrzucamy hipotezę zerową na korzyść hipotezy alternatywnej, gdy p-value jest mniejsze od przyjętego poziomu - Albo - nie udaje się nam odrzucić hipotezy zerowej (**Nigdy nie akceptujemy hipotezy zerowej!**) --- ## Testowanie hipotez (przykład) <img src="fig/hip.png" width="100%" height="500px" /> --- ## Testowanie hipotez (przykład) <!-- https://speakerdeck.com/jakevdp/statistics-for-hackers --> Nieobciążona moneta powinna dawać 15 reszek w 30 rzutach. Rzucamy monetą 30 razy z czego 22 otrzymujemy reszkę. Czy to oznacza, że moneta jest obciążona? A może jest to przypadek? - `\(H_0\)` - Moneta nie jest obciążona, ten wynik jest tylko przypadkiem - `\(H_A\)` - Moneta jest obciążona --- ## Testowanie hipotez (przykład) ```r df = data.frame(reszka = rbinom(1000000, 30, 0.5)) library(ggplot2) ggplot(df, aes(reszka, y = ..density..)) + geom_histogram(binwidth = 1) ``` ``` ## Warning: The dot-dot notation (`..density..`) was deprecated in ggplot2 3.4.0. ## ℹ Please use `after_stat(density)` instead. ## This warning is displayed once every 8 hours. ## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was ## generated. ``` <img src="07_wnioskowanie_files/figure-html/unnamed-chunk-8-1.png" style="display: block; margin: auto;" /> --- ## Testowanie hipotez (przykład) ```r ggplot(df, aes(reszka, y = ..density..)) + geom_histogram(binwidth = 1) + geom_vline(xintercept = 22, color = 'red') ``` <img src="07_wnioskowanie_files/figure-html/unnamed-chunk-9-1.png" style="display: block; margin: auto;" /> --- ## Testowanie hipotez (przykład) ```r prob = pbinom(21, 30, 0.5, lower.tail = FALSE) prob ``` ``` ## [1] 0.008062401 ``` - Prawdopodobieństwo równe 0,8% (więc `\(p = 0,008\)`), że moneta nie jest obciążona. - W efekcie odrzucamy `\(H_0\)` i przyjmujemy `\(H_A\)`, ponieważ `\(p\)` jest mniejsze od przyjętego progu 0,05 ( `\(p<0,05\)` ) --- class: inverse, middle, center # Testowanie hipotez (alternatywnie) --- ## Testowanie hipotez (alternatywnie) - Hipoteza zerowa (obrońca) - Hipoteza alternatywna (oskarżyciel) - Odrzucenie hipotezy zerowej (winny) - Niemożność odrzucenia hipotezy zerowej (niewinny) - p-value (prawdopodobieństwo, że prawdziwie niewinny zbiór danych będzie wyglądał jak winny) --- class: inverse, middle, center # Zadania --- ## Zadania 1. Wczytaj dane `data/pomiary_pol.csv`. Odchylenie standardowe temperatury maksymalnej we wrześniu nie jest znane. Wyznacz 95% przedział ufności dla średniej temperatury maksymalnej we wrześniu. 3. Średnia temperatura roczna dla Polski wynosi 8.1 stopnia Celsjusza oraz ma odchylenie standardowe równe 0.9 stopnia Celsjusza. Pewnego roku średnia temperatura wyniosła 10.1 stopnia Celsjusza. Chcemy się dowiedzieć, czy ta wartość jest nietypowo wysoka. Jak powinniśmy określić hipotezę zerową i alternatywną? 4. Zwizualizuj rozkład średniej temperatury rocznej dla Polski wraz z tym dodatkowym pomiarem. 5. Jakie jest prawdopodobieństwo, że nowa wartość jest nietypowo wysoka? 6. Jaką hipotezę przyjmujemy/odrzucamy?