Statistika a R
Co jsme dnes dělali
Regulární výrazy
Zopakovali jsme si jednoduché regulární výrazy.
import re
# search hleda prvni vyskyt vzoru v retezci
m = re.search(r'\d+', 'abc123def') # najde '123'
print(m.group())
# match hleda vzor na zacatku retezce
re.match(r'\d+', '123abc') # najde '123' na zacatku retezce
# findall hleda vsechny vyskyt vzoru v retezci
re.findall(r'\d+', 'abc123def456') # najde vsechny vyskyt vzoru, vrati seznam ['123', '456']
Statistika
- Věda zabývající se sběrem, analýzou, interpretací a prezentací dat
- Nasbíráme data o nějakém jevu, poté je analyzujeme a snažíme se z nich vyvodit závěry
- Jak určujeme "průměrnou" hodnotu?
- Průměr (aritmetický průměr): součet všech hodnot děleno počtem hodnot
- Medián: střední hodnota, která dělí data na dvě stejně velké části
- Modus: nejčastější hodnota v datovém souboru
- Musíme dávat pozor na extrémní hodnoty (outliers), které mohou výrazně ovlivnit průměr, ale ne medián.
- Variabilita dat: jak moc se jednotlivé hodnoty liší od průměru?
- Směrodatná odchylka (SD, standard deviation): průměrná vzdálenost hodnot od průměru
- Rozptyl (Var, variance): průměr čtverců vzdáleností hodnot od průměru
- Interkvartilové rozpětí: rozdíl mezi 75. a 25. percentilem, ukazuje rozsah středních 50% dat
- Koeficient variace (CV): poměr směrodatné odchylky k průměru, umožňuje porovnávat variabilitu mezi různými datovými sadami
- Příklad s lidmi a mravenci: i když se výšky lidí liší více v absolutních číslech, relativně (poměr k průměru) mají mravenci větší variabilitu.
- Korelace: měří sílu a směr vztahu mezi dvěma proměnnými, hodnoty se pohybují mezi -1 (silná negativní korelace) a 1 (silná pozitivní korelace), 0 znamená žádnou korelaci-
- Pozor, korelace neznamená příčinnost! I když dvě proměnné korelují, nemusí jedna způsobovat druhou.
R
- Programovací jazyk a prostředí pro statistické výpočty a grafiku
# Prace s vektory
aq <- na.omit(airquality) # Odstranění řádků s NA hodnotami
head(aq)
dim(aq)
names(aq)
summary(aq)
# Access
aq$Temp
aq[1, ] # prvni radek
aq[, 1] # prvni sloupec
aq[, "Ozone"] # sloupec s nazvem Ozone
aq[1:10, ] # prvnich 10 radku
# Filtrovani
aq[aq$Month == 7, ] # Jen cervenec
aq[aq$Temp > 90, ] # Dny s teplotou nad 90
aq[aq$Month == 8 & aq$Temp > 90, ] # Dny v srpnu s teplotou nad 90
aq$Ozone[aq$Month == 8] # Hodnoty ozonu v srpnu
# Zaklady statistiky
mean(aq$Temp) # prumer
median(aq$Temp) # median
sd(aq$Temp) # smerodatna odchylka
var(aq$Temp) # rozptyl
IQR(aq$Temp) # interkvartilove rozpeti
CV <- sd(aq$Temp) / mean(aq$Temp) # koeficient variace
summary(aq$Temp) # souhrnne statistiky
quantile(aq$Temp, probs = c(0.25, 0.5, 0.75)) # kvartily
table(aq$Month) # frekvenční tabulka
sum(aq$Ozone[aq$Month == 7]) # soucet vsech mereni ozonu v cervenci
# Kdyz pouzijeme `sum` na vektor, kde jsou TRUE nebo FALSE, tak dostaneme pocet TRUE hodnot
cor(aq$Temp, aq$Ozone) # korelace - teplota zvysuje mnozstvi ozonu
cor(aq$Wind, aq$Ozone) # korelace - vitr snizuje mnozstvi ozonu, protoze rozptyluje znecistujici latky
Úlohy do hodiny
Budete používat dataset mtcars, který je součástí R. Pochází z časopisu Motor Trend a obsahuje technické údaje o různých modelech aut z roku 1974.
- Spočtěte průměrnou spotřebu paliva (
mpg) pro všechny auta v datasetu. - Spočtěte směrodatnou odchylkku spotřeby paliva (
mpg) a výkonu v koních (hp). Která z těchto veličin má větší variabilitu (jak moc se liší od průměru)? Použijte variační koeficient. - Najděte 25. a 75. percentil pro hmotnost auta (
wt). Kolik aut spadá mezi tyto percentily? Je tohle číslo významné? - Zjistěte, kolik aut má jaký počet převodových stupňů (
gear). Použijte frekvenční tabulku. - Jaký je průměrný výkon (
hp) aut s manuální a automatickou převodovkou (am)? Který typ převodovky má vyšší průměrný výkon? Tipnete si proč?
Těžší úlohy, pokud máte vše hotové:
- Která proměnná má nejsilnější korelaci se spotřebou?
- Najděte tři auta s nejvyšší a nejnižší spotřebou paliva. Použijte funkci
order().