-
Notifications
You must be signed in to change notification settings - Fork 0
/
04_popisna.qmd
210 lines (144 loc) · 7.97 KB
/
04_popisna.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
# Popisná statistika {#sec-popisna}
Popisná statistika má za cíle **souhrnně popsat soubor** (spíše než použít data k získání informací o populaci, o které se předpokládá, že vzorek dat reprezentuje).
::: callout-warning
## Cíle cvičení
- Provést import datové sady
- Být schopen popsat číselné proměnné v datech popsat s pomocí uvedených statistik\
:::
## Import dat {#sec-popisna-importdat}
V hydrologii pracujeme s datovými sadami, které mají rúznou podobu. Nejběžnějším výměnným formát jsou stále obecné \*.xls/\*.xlsx, \*.txt, \*.csv (*comma separated values*). S pomocí těchto formátů jsou často katalogizována data z automatických měření. Dále méně časté formáty \*.json (*javascript object notation*), \*.shp (*shapefile*), \*.laz, \*.nc (*NetCDF file*), \*.parquet (*Apache parqet*). A jako poslední doménově specifické \*.RData, nebo \*.rds. Formátů je velké množství, nicméně je velmi obtížné narazit na některý, pro který neexistuje v R možnost importu ať už v základní konfiguraci nebo s pomocí externích balíčků.
V RStudio se nachází poměrně propracovaný průvodce importem dat, který naklikneme pod záložkou **Environment** \> **Import Dataset**.
![](images/data-import.png){fig-align="center" width="624"}
```{r}
global_temperatures <- read.csv(file = "./data/JonesGlobalT.csv",
row.names = 1)
head(x = global_temperatures, n = 5)
```
```{r}
global_temperature_yr <- aggregate(x = . ~ YEAR, # <1>
FUN = mean, # <1>
data = global_temperatures) # <1>
head(x = global_temperature_yr, n = 5)
```
1. Agregace dat do průměrů za roční období.
```{r, fig.align='center'}
par(mfrow = c(1, 2))
with(data = global_temperature_yr, expr = plot(YEAR, JAN, type = "l"))
with(data = global_temperature_yr,
expr = boxplot(ANNUAL, horizontal = TRUE))
```
::: callout-tip
## Úloha
1. Nahrajte data do prostředí s pomocí vhodně parametrizované `read.___()` funkce.\
2. Doplňte hydrologický rok.\
3. Proveďte agregaci dat průměrem pro jednotlivé měsíce.\
4. Vyneste do grafu pomocí funkce `plot()`.
:::
## Statistický soubor {#sec-popisna-statistickysoubor}
Je základní jednotkou popisné statistiky, skládá se z množiny všech objektů, které
jsou nositely určitého znaku.
### Základní soubor (populace)
Soubor všech jedinců, u nichž být zaznamenán výskyt sledovaného znaku.
<!-- #### Soubor se známým rozsahem {#sec-popisna-statistickysoubor-souborseznamymrozsahem} -->
<!-- V případě, kdy -->
<!-- #### Soubor s neznámým rozsahem {#sec-popisna-statistickysoubor-souborsneznamymrozsahem} -->
### Výběrový soubor (výběr) {#sec-popisna-statistickysoubor-vyberovysoubor}
Je soubor o konečném počtu $n$ prvků základního souboru, u kterého je prováděno měření charakteristik.
Výběrový soubor vzniká realizací **náhodného výběru**.
Níže uvedené funkce jsou počítané s pomocí následujícího vektoru
```{r, collapse=TRUE, echo=TRUE}
set.seed(1)
x <- round(rnorm(50), 4)
x
```
## Míry polohy
Pro obě extrémní polohy ($\min$ a $\max$) jsou v R stejnojmenné funkce.
| Název | Funkce | Vzorec |
|--------------------|-----------------|------------------------------------|
| minimum/maximum | `min(x)/max(x))`| $\max(x) - \min(x)$ |
| výběrový kvantil | `quantile(x)` | - |
| aritmetický průměr | `mean(x)` | $\dfrac{1}{n}\sum_{i=1}^{n}x_i$ |
| medián | `median(x)` | - |
| modus | - | - |
### Výběrový kvantil
```{r}
t(sapply(X = 1:7, FUN = function(i) quantile(x, type = i))) #<1>
```
1. Využití anonymní funkce `function(i)` vektorizované pro rozsah hodnot 1:7 na pozici type ve funkci `quantile()`
#### Medián
Aritmetický průměr hodnot na pozicích $\frac{n}{2}$ a $\frac{n}{2+1}$ v seřazeném souboru.
### Modus
Za modus se označuje nejčastěji se vyskytující hodnota v souboru. Četnost výskytu hodnot na reálné ose se nahrazuje buďto hustotou (funkce `density()`) nebo je možné použít kombinaci funkcí `cut()` a `table()`.
```{r,collapse=FALSE, fig.align='center'}
table(round(x = x, digits = 0)) #<1>
table(cut(x, breaks = 10)) #<2>
dens <- density(x = x) #<3>
max_dens <- which.max(dens$y)
plot(dens, main = "Jádrový odhad hustoty x") #<3>
segments(x0 = dens$x[max_dens],
y0 = 0,
x1 = dens$x[max_dens],
y1 = dens$y[max_dens],
lwd = 1.5) #<3>
```
1. Funkce `table()` provede součty speficikovaných hodnot. V tomto případě po zaokrouhlení na celá čísla.
2. Nyní s pomocí funkce `cut()` rozlišíme četnosti do 10 intervalů a následně spočteme počet hodnot v těchto intervalech.
3. Jádrový odhad hustoty.
$$
\hat{f}(x)=\dfrac{1}{nh}\sum_{i=1}^{n}\mathsf{K}\left(\dfrac{x-x_i}{h}\right)
$$
kde $\mathsf{K}$ je jádrová funkce, $h$ je šířka pásma (zhlazovací funkce) a $x_i$ jsou hodnoty.
4. Modus je nahrazen argumentačním maximem z tohoto odhadu $$\arg \max_x \hat{f}(x)$$
### Harmonický průměr
Aritmetický průměr převrácených hodnot.
$$
\bar{x_h} = \dfrac{n}{\sum\limits_{i=1}^{n}\frac{1}{x_i}}
$$
### Průměr stupně $\alpha$
Označuje obecný vzorec průměru (zahrnující aritmetický, harmonický, geometrický apod.)
$$
\bar{x}_\alpha(x_1, x_2, \ldots, x_n) = \left(\dfrac{1}{n}\sum_{i=1}^{n}x_i^\alpha\right)^\frac{1}{\alpha}
$$
```{r, collapse=TRUE}
min(x) #<1>
max(x) #<1>
max(x) - min(x) #<2>
range(x) #<2>
```
1. Statistiky minimum & maximum
2. Rozpětí
::: callout-tip
## Úloha
5. Napište funkci pro výpočet obecného vzorce průměru $\alpha$ a srovnejte s výstupem funkce `mean`.
:::
## Míry variability
Výběrový rozptyl a směrodatnou odchylku spočteme v R pomocí funkcí `var()` (*variance*) a `sd()` *standard deviation*. Zatímco variační rozpětí popisuje rozpětí celého souboru, mezikvartilové rozpětí se omezuje na rozpětí poloviny hodnot, omezené $Q3$ a $Q1$ neboli $q_{75}$ a $q_{25}$.
| Název | Funkce | Vzorec |
|------------------------|-----------------|----------------------------------------------------------------------|
| rozptyl | `var(x)` | $\sum\limits_{i=1}^{n}\dfrac{(x_i - \bar{x})^2}{n-1}$ |
| směrodatná odchylka | `sd(x)` | $\dfrac{1}{n-1}\sum\limits_{i=1}^{n}\sqrt{(x_i - \bar{x})^2}$ |
| variační rozpětí | `range(x)` | $\max(x) - \min(x)$ |
| mezikvartilové rozpětí | `IQR(x)` | $\mathrm{Q}3 - \mathrm{Q}_1$ |
| variační koeficient | `mean(x)/sd(x)` | $\dfrac{s_x}{\bar{x}}$ |
### Střední chyba aritmetického průměru
$$
s_x = \dfrac{s}{\sqrt{n}}
$$
### `fivenum()` \& `summary()`
Pokud nás nezajímá pouze konkrétní statistika, jsou k dispozici funkce vracející více hodnot najednou.
```{r}
fivenum(x)
summary(x)
```
::: callout-note
## Poznámka
Funkce `summary()` je tzv. *S3 generic*, to znamená, že její chování je definované v závislosti na
objekt, na který je volána. Podívejte se na výstup `methods(summary)`. Pokud volána funkci na numerický vektor, tak je vybrána metoda `summary.numeric()`.
:::
## Rekapitulace
1. Máte vektor hodnot: $0.64$, $0.98$, $-0.49$, $0.75$, $-1.35$, $1.65$, $1.12$, $-1.04$, $1.05$, $0.29$, $-0.6$, $-0.08$, $1.45$, $-1.87$, $-0.07$, $-0.02$, $0.62$, $0.01$, $-0.26$. Nalezněte s pomocí R:\
a) průměr `r fitb(0.1463158)`\
b) $q_{10\textrm{p}}$ `r fitb(-1.102)`\
c) medián `r fitb(0.01)`. \
2. Doplňte funkci `read.___()` aby výsledek byl
3. Z datové sady vyberte sloupce