<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
  <title>ČSÚ on JLA Data</title>
  <link>https://www.jla-data.net/tags/%C4%8Ds%C3%BA/</link>
  <description>Recent content in ČSÚ on JLA Data</description>
  <generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<copyright>Jindra Lacko</copyright>
<lastBuildDate>Wed, 23 Jul 2025 00:00:00 +0000</lastBuildDate>

<atom:link href="https://www.jla-data.net/tags/%C4%8Ds%C3%BA/index.xml" rel="self" type="application/rss+xml" />


<item>
  <title>Model mezd v zrcadle času</title>
  <link>https://www.jla-data.net/cze/model-mezd-v-zrcadle-casu/</link>
  <pubDate>Wed, 23 Jul 2025 00:00:00 +0000</pubDate>
  
<guid>https://www.jla-data.net/cze/model-mezd-v-zrcadle-casu/</guid>
  <description>


&lt;p&gt;Když jsem před lety sepisoval populárně poučný příspěvek o odhadování exponenciály metodou nejmenších čtverců – dělá se to přes &lt;a href=&#34;https://stat.ethz.ch/R-manual/R-patched/library/stats/html/nls.html&#34;&gt;&lt;code&gt;stats::nls()&lt;/code&gt;&lt;/a&gt; – tak jsem použil vědomě lehčí formulace problému coby &lt;a href=&#34;https://www.jla-data.net/cze/mzdova-inflace-v-erku/&#34;&gt;mezd ajťáků v časech Andreje Babiše&lt;/a&gt;. Tím jsem svojí exponenciálu zasadil do času a prostoru.&lt;/p&gt;
&lt;p&gt;Rok se sešel s rokem, volební období s obdobím, a z obrazovek nás opět bombardují politici s tím že tentokráte určitě bude líp, stačí když dáme hlas jim (a ne &lt;em&gt;těm druhým&lt;/em&gt;). Přišlo mi to jako zajímavá příležitost k tomu, abych se vrátil do staré řeky a oprášil techniky práce s geometrickou řadou v kontextu statistického programovacího jazyka R.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Cílem cvičení bude:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;připomenout techniku, jak pomocí balíčku &lt;a href=&#34;https://petrbouchal.xyz/czso/&#34;&gt;&lt;code&gt;{czso}&lt;/code&gt;&lt;/a&gt; přistupovat k datům z &lt;a href=&#34;https://vdb.czso.cz/&#34;&gt;Veřejné databáze Českého statistického úřadu&lt;/a&gt; přímo do R vaší session&lt;/li&gt;
&lt;li&gt;načtený dataset zpracovat technikami světa &lt;a href=&#34;https://www.tidyverse.org/&#34;&gt;&lt;code&gt;{tidyverse}&lt;/code&gt;&lt;/a&gt;, konkrétně balíčky &lt;a href=&#34;https://dplyr.tidyverse.org/&#34;&gt;&lt;code&gt;{dplyr}&lt;/code&gt;&lt;/a&gt; pro datovou manipulaci a &lt;a href=&#34;https://ggplot2.tidyverse.org/&#34;&gt;&lt;code&gt;{ggplot2}&lt;/code&gt;&lt;/a&gt; pro statickou vizualizaci&lt;/li&gt;
&lt;li&gt;o datasetu mezd a jejich vývoji v čase podat zprávu graficky&lt;/li&gt;
&lt;li&gt;nad datasetem mezd sestavit matematický model, a uplatnit jej&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Protože mzdy a jejich vývoj v čase je složitý problém, který není snadné plně podchytit v jeho komplexnosti, zaměřím se na dva sektory ve kterých se pohybuju a se kterými mám žitou zkušenost:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;jako konzultant působím v sektoru &lt;code&gt;J - Informační a komunikační činnosti&lt;/code&gt; (“ajťáci”)&lt;/li&gt;
&lt;li&gt;jako student a vyučující na VŠE patřím do sektoru &lt;code&gt;P - Vzdělávání&lt;/code&gt; (“učitelky”)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Základem je načtení dat:&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;library(czso) # protože staťák...
library(tidyverse) # kvůli dplyr &amp;amp; ggplot2
library(zoo) # pro konverzi datumů / kvartály v letech

# načtu dataset s id 110079  = Zaměstnanci a průměrné hrubé měsíční mzdy podle odvětví
raw_mzdy &amp;lt;- czso::czso_get_table(&amp;quot;110079&amp;quot;)

# odliji stranou čistší dataset
clean_mzdy &amp;lt;- raw_mzdy %&amp;gt;% 
  filter(stapro_kod == &amp;#39;5958&amp;#39;  # průměrná mzda / zahazuju počty zaměstnanců
         &amp;amp; rok &amp;gt;= 2016
         &amp;amp; typosoby_kod == &amp;#39;200&amp;#39;# přepočet na ekvivalent plného úvazku
         &amp;amp; odvetvi_kod %in% c(&amp;#39;P&amp;#39;, &amp;#39;J&amp;#39;)) %&amp;gt;% # vybrané sektory
  # konverze konvence z roku + čtvrtletí na prosté datum (první den kvartálu)
  mutate(datum = as.Date(as.yearqtr(paste0(rok, &amp;quot;Q&amp;quot;, ctvrtleti))))  %&amp;gt;% 
  arrange(datum) %&amp;gt;% # setřídím dle data / pro jistotu, kvůli sekvenci v příštím kroku
  group_by(odvetvi_kod) %&amp;gt;% 
  mutate(sekvence = rank(datum),
         posledni = datum == max(datum)) %&amp;gt;%  # poslední záznam - pro popisku grafů
  ungroup()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nad načtenými daty připravím vizualizaci technikami &lt;code&gt;ggplot2&lt;/code&gt;-u; je zajímavé pozorovat jak mzdy ajťáků i učitelek mají stejně jasný sezónní trend (1× ročně bonusy) ale se špičkami v různých čtvrtletích.&lt;/p&gt;
&lt;p&gt;Pracovně se domnívám, že učitelky mají odměny spíše svázané s rozpočtem (vyplácené v Q4, aby se utratilo), kdežto ajťáci spíše s hospodářským výsledkem (vyplácené v Q1, po závěrce roku).&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# základní overview graficky
ggplot(data = clean_mzdy, aes(x = datum, y = hodnota, 
                              fill = odvetvi_txt)) +
  geom_point(pch = 21, stroke = NA) +
  scale_y_continuous(limits = c(0, NA), 
                     labels = scales::dollar_format(prefix = &amp;quot;&amp;quot;, 
                                                    suffix = &amp;quot; Kč&amp;quot;,
                                                    big.mark = &amp;quot; &amp;quot;)) +  
  scale_x_date(breaks = seq(as.Date(&amp;quot;2015-01-01&amp;quot;),
                            as.Date(&amp;quot;2025-01-01&amp;quot;),
                            by = &amp;quot;2 years&amp;quot;),
               date_minor_breaks = &amp;quot;1 year&amp;quot;,
               date_labels = &amp;quot;%Y&amp;quot;) +
  labs(title = &amp;quot;Průměrná hrubá měsíční mzda v čase&amp;quot;,
       fill = &amp;quot;Sektor podle ČSÚ&amp;quot;) +
  theme_minimal() +
  theme(legend.position = c(0.795, 0.175),
        legend.direction = &amp;quot;vertical&amp;quot;,
        axis.title = element_blank())&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jla-data.net/cze/model-mezd-v-zrcadle-casu/index_files/figure-html/obrazek-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Kromě výrazné roční periody je v grafech (hlavně na učitelkách) intuitivně cítit změna trendu kolem konce roku 2021. Tuto intuici můžeme ověřit odděleným natrénováním matematického modelu nad érami Andreje Babiše a Petra Fialy.&lt;/p&gt;
&lt;p&gt;Předpoklad za modelem je, že se mzda se chová jako exponenciála (každý kvartál vzroste o stejné relativní procento) a ne jako přímka (každý kvartál vzroste o stejnou absolutní částku).&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# omezený dataset &amp;quot;éra Andreje Babiše&amp;quot; pro trénink modelu
era_babise &amp;lt;- clean_mzdy %&amp;gt;% 
  filter(datum &amp;gt;= as.Date(&amp;quot;2017-12-13&amp;quot;)  # počátek první vlády AB
         &amp;amp; datum &amp;lt; as.Date(&amp;quot;2021-12-17&amp;quot;))   # konec druhé vlády AB
 

# omezený dataset &amp;quot;éra Petra Fialy&amp;quot; pro trénink modelu
era_fialy &amp;lt;- clean_mzdy %&amp;gt;% 
  filter(datum &amp;gt;= as.Date(&amp;quot;2021-12-17&amp;quot;))  # jmenování PF prezidentem MZ
  
# 4x matematický model přes stats::nls()
model_babis_p &amp;lt;- nls(hodnota ~ a * (1 + r)^sekvence,
                     data = subset(era_babise, odvetvi_kod == &amp;quot;P&amp;quot;),
                     start = list(a = 50000, r = .01)) 

model_babis_j &amp;lt;- nls(hodnota ~ a * (1 + r)^sekvence,
                     data = subset(era_babise, odvetvi_kod == &amp;quot;J&amp;quot;),
                     start = list(a = 50000, r = .01))  

model_fiala_p &amp;lt;- nls(hodnota ~ a * (1 + r)^sekvence,
                     data = subset(era_fialy, odvetvi_kod == &amp;quot;P&amp;quot;),
                     start = list(a = 50000, r = .01))  

model_fiala_j &amp;lt;- nls(hodnota ~ a * (1 + r)^sekvence,
                     data = subset(era_fialy, odvetvi_kod == &amp;quot;J&amp;quot;),
                     start = list(a = 50000, r = .01)) &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Když přepočteme kvartální růst mezd na roční ekvivalenty, tak se dostaneme na následující čísla:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ajťákům v časech Andreje Babiše rostly mzdy o &lt;code&gt;4.74%&lt;/code&gt; ročně&lt;/li&gt;
&lt;li&gt;ajťákům v časech Petra Fialy rostly mzdy o &lt;code&gt;8.91%&lt;/code&gt; ročně&lt;/li&gt;
&lt;li&gt;učitelkám v časech Andreje Babiše rostly mzdy o &lt;code&gt;11.2%&lt;/code&gt; ročně&lt;/li&gt;
&lt;li&gt;učitelkám v časech Petra Fialy rostly mzdy o &lt;code&gt;4.52%&lt;/code&gt; ročně&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je velká otázka, jak moc můžeme modelovaný nárůst (a jeho změnu mezi vládami) přisuzovat za zásluhu konkrétnímu premiérovi. Těžko tvrdit, že Babiš může za Covid, případně Fiala za Ukrajinu. Ale říct, že za časů jednoho bylo jednak, a za časů druhého druhak, jde snadno - datumy začátku a konce vlád jsou ložené.&lt;/p&gt;
&lt;p&gt;A také si můžeme společně zaspekulovat: jak by vypadal svět, pokud by se trend &lt;em&gt;nezměnil&lt;/em&gt;? Jak by vypadaly &lt;em&gt;dnes&lt;/em&gt; mzdy ajťáků a učitelek, pokud by pokračovalo tempo předchozí vlády?&lt;/p&gt;
&lt;p&gt;Pomocníkem v našem spekulování bude metoda &lt;a href=&#34;https://stat.ethz.ch/R-manual/R-patched/library/stats/html/predict.nls.html&#34;&gt;&lt;code&gt;stats::predict.nls()&lt;/code&gt;&lt;/a&gt;, jejímž uplatněním na natrénovaný matematický model získáme nová data – a s jejich pomocí obohatíme původní obrázek o původní a nový trend.&lt;/p&gt;
&lt;p&gt;Pro snazší orientaci barvím éru Petra Fialy fialově, a éru Andreje Babiše &lt;a href=&#34;https://www.agrofert.cz/o-agrofertu/tiskove-oddeleni&#34;&gt;korporátní zelenou&lt;/a&gt;.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# pomocný dataset pro oddělený výpočet trendů v érách
trendy &amp;lt;- clean_mzdy %&amp;gt;% 
  select(datum, sekvence, posledni) %&amp;gt;% 
  unique() %&amp;gt;% 
  mutate(era = case_when(datum &amp;lt;= as.Date(&amp;quot;2017-12-13&amp;quot;) ~ &amp;quot;sobotka&amp;quot;,
                         datum &amp;lt;= as.Date(&amp;quot;2021-12-17&amp;quot;) ~ &amp;quot;babis&amp;quot;,
                         T ~ &amp;quot;fiala&amp;quot;))

# trendy ajťáků v datasetu
trendy$ab_p &amp;lt;- predict(model_babis_p, newdata = trendy)
trendy$pf_p &amp;lt;- predict(model_fiala_p, newdata = trendy)

# trendy učitelů v datasetu
trendy$ab_j &amp;lt;- predict(model_babis_j, newdata = trendy)
trendy$pf_j &amp;lt;- predict(model_fiala_j, newdata = trendy)

# výsledný obrázek - původní ggplot, doplněný o trendové čáry
ggplot(data = clean_mzdy, aes(x = datum, y = hodnota)) +
  geom_point(aes(fill = odvetvi_txt),
             stroke = NA,
             pch = 21)  +
  scale_y_continuous(limits = c(0, NA), 
                     labels = scales::dollar_format(prefix = &amp;quot;&amp;quot;, 
                                                    suffix = &amp;quot; Kč&amp;quot;,
                                                    big.mark = &amp;quot; &amp;quot;)) +  
  scale_x_date(breaks = seq(as.Date(&amp;quot;2015-01-01&amp;quot;),
                            as.Date(&amp;quot;2025-01-01&amp;quot;),
                            by = &amp;quot;2 years&amp;quot;),
               date_minor_breaks = &amp;quot;1 year&amp;quot;,
               date_labels = &amp;quot;%Y&amp;quot;) +
  geom_line(data = trendy, aes(x = datum, y = ab_p), 
            color = &amp;quot;grey&amp;quot;, lty = &amp;quot;dashed&amp;quot;) +
  geom_line(data = subset(trendy, era == &amp;quot;babis&amp;quot;), 
            aes(x = datum, y = ab_p, color = &amp;quot;AB&amp;quot;)) +
  geom_line(data = subset(trendy, era == &amp;quot;fiala&amp;quot;), 
            aes(x = datum, y = pf_p, color = &amp;quot;PF&amp;quot;)) +
  geom_line(data = trendy, aes(x = datum, y = ab_j), 
            color = &amp;quot;grey&amp;quot;, lty = &amp;quot;dashed&amp;quot;) +
  geom_line(data = subset(trendy, era == &amp;quot;babis&amp;quot;), 
            aes(x = datum, y = ab_j, color = &amp;quot;AB&amp;quot;)) +
  geom_line(data = subset(trendy, era == &amp;quot;fiala&amp;quot;), 
            aes(x = datum, y = pf_j, color = &amp;quot;PF&amp;quot;)) +
  geom_text(data = subset(clean_mzdy, posledni), 
            aes(x = datum, y = hodnota, label = scales::comma(hodnota)),
            nudge_x = 250) +
  geom_text(data = subset(trendy, posledni), 
            aes(x = datum, y = ab_p, label = scales::comma(ab_p)),
            color = &amp;quot;gray70&amp;quot;,
            nudge_x = 250) +
  geom_text(data = subset(trendy, posledni), 
            aes(x = datum, y = ab_j, label = scales::comma(ab_j)),
            color = &amp;quot;gray70&amp;quot;,
            nudge_x = 250) +
  scale_color_manual(&amp;quot;Éra vlády&amp;quot;, 
                     values = c(&amp;quot;AB&amp;quot; = &amp;quot;#5c9234&amp;quot;,
                                &amp;quot;PF&amp;quot; = &amp;quot;darkorchid&amp;quot;)) +
  labs(title = &amp;quot;Trendy mezd v érách Babiše a Fialy&amp;quot;,
       fill = &amp;quot;Sektor podle ČSÚ&amp;quot;) +
  theme_minimal() + 
  guides(color = guide_legend(position = &amp;quot;bottom&amp;quot;,
                              direction = &amp;quot;horizontal&amp;quot;)) +
  theme(legend.position = c(0.795, 0.175),
        legend.direction = &amp;quot;vertical&amp;quot;,
        axis.title = element_blank())&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jla-data.net/cze/model-mezd-v-zrcadle-casu/index_files/figure-html/dva-trendy-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Z grafu je patrné, že změna trendu měla na ajťáky a učitelky opačný vliv:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ajťáci se dnes proti trendu z časů Andreje Babiše pohybují přibližně +15 tisíc Kč / měsíc&lt;/li&gt;
&lt;li&gt;učitelky se dnes proti trendu z časů Andreje Babiše pohybují přibližně -20 tisíc Kč / měsíc&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A protože jsme v Česku, kde se nehraje až tolik na to abych se měl absolutně dobře (co je absolutně dobře? jaká je jednotka dobrosti?) ale jestli se mám relativně líp jak soused, tak se podíváme na relativní poměr mezd ajťáků a učitelek:&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;rel_mzdy &amp;lt;- clean_mzdy %&amp;gt;% 
  # pivot z &amp;quot;dlouhého&amp;quot; formátu na &amp;quot;široký&amp;quot;
  pivot_wider(id_cols = datum, 
              names_from = odvetvi_kod, 
              values_from = hodnota) %&amp;gt;% 
  mutate(pomer = P / J) # podíl učitelek ku ajťákům

ggplot(data = rel_mzdy, aes(x = datum, y = pomer)) +
  annotate(&amp;quot;rect&amp;quot;,
           xmin = as.Date(&amp;quot;2017-12-13&amp;quot;), # počátek první vlády AB
            xmax = as.Date(&amp;quot;2021-12-17&amp;quot;), # konec druhé vlády AB
            ymin = 0,
            ymax = Inf,
            fill = &amp;quot;#5c9234&amp;quot;,
            alpha = 1/5) +
    annotate(&amp;quot;rect&amp;quot;,
           xmin = as.Date(&amp;quot;2021-12-17&amp;quot;), # jmenování PF premiérem
            xmax = max(clean_mzdy$datum), # konec datová řady
            ymin = 0,
            ymax = Inf,
            fill = &amp;quot;darkorchid&amp;quot;,
            alpha = 1/5) +
  geom_smooth(se = F, color = &amp;quot;red&amp;quot;, alpha = 2/3) + 
  geom_point(pch = 4, size = 3/4, color = &amp;quot;gray25&amp;quot;) +
  geom_point(data = rel_mzdy[c(which.max(rel_mzdy$pomer),
                               which.min(rel_mzdy$pomer)),],
             color = &amp;quot;red&amp;quot;) +
  geom_text(data = rel_mzdy[which.max(rel_mzdy$pomer),],
            aes(x = datum, y = pomer,
                label = paste0(round(100 * pomer, 2), &amp;quot;%&amp;quot;)),
            nudge_y = .04) +
  geom_text(data = rel_mzdy[which.min(rel_mzdy$pomer),],
            aes(x = datum, y = pomer,
                label = paste0(round(100 * pomer, 2), &amp;quot;%&amp;quot;)),
            nudge_y = -.04) +
  scale_y_continuous(limits = c(0, NA), 
                     labels = scales::percent) +  
  scale_x_date(breaks = seq(as.Date(&amp;quot;2015-01-01&amp;quot;),
                            as.Date(&amp;quot;2025-01-01&amp;quot;),
                            by = &amp;quot;2 years&amp;quot;),
               date_minor_breaks = &amp;quot;1 year&amp;quot;,
               date_labels = &amp;quot;%Y&amp;quot;) +
  theme_minimal() + 
  theme(axis.title = element_blank()) +
   labs(title = &amp;quot;Relativní srovnání mezd sektorů Vzdělávání a ICT&amp;quot;,
        subtitle = &amp;quot;v érách premiérů Babiše a Fialy &amp;quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jla-data.net/cze/model-mezd-v-zrcadle-casu/index_files/figure-html/srovnani-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Graf je zrnitý (pamatujete, že učitelky mívají bonusy v jiném kvartálu než ajťáci?) ale dá se technikami erka vyhladit. A dvě informace z něj vyskakují zřetelně:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;historicky nejvyšší poměr mezd průměrné učitelky k průměrnému ajťákovi byl 2021-Q4 (tedy poslední kvartál éry Andreje Babiše)&lt;/li&gt;
&lt;li&gt;historicky nejmenší poměr mezd průměrné učitelky k průměrnému ajťákovi byl 2025-Q1 (tedy právě teď)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;Díky matematickému modelování a technikám statistického programovacího jazyka R tak vidím, že změna poměrů z časů vlády Andreje Babiše k Petru Fialovi měla – alespoň co se mzdovéhovo vývoje týče – kromě vítězů také poražené. Učitelky, které se ptají “kde je moje dvacka?!” přitom lidsky chápu; stejně tak jako ajťáky kteří mlčí a šoupou nohama, že oni nic – to trh.&lt;/p&gt;
</description>
  </item>
  
<item>
  <title>Kdy si říct o peníze?</title>
  <link>https://www.jla-data.net/cze/mzdova-inflace-v-erku/</link>
  <pubDate>Fri, 27 Aug 2021 00:00:00 +0000</pubDate>
  
<guid>https://www.jla-data.net/cze/mzdova-inflace-v-erku/</guid>
  <description>
&lt;script src=&#34;https://www.jla-data.net/cze/mzdova-inflace-v-erku/index_files/header-attrs/header-attrs.js&#34;&gt;&lt;/script&gt;


&lt;p&gt;Porozumění trhu práce je dobrou příležitostí k uplatnění statistického programovacího jazyka R.&lt;/p&gt;
&lt;p&gt;Erko nám umožňuje několik věcí:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;pomocí balíčku &lt;a href=&#34;https://petrbouchal.xyz/czso/&#34;&gt;&lt;code&gt;{czso}&lt;/code&gt;&lt;/a&gt; přímo přistupovat k &lt;a href=&#34;https://vdb.czso.cz/&#34;&gt;Veřejné databázi Českého statistického úřadu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;na získaná data uplatnit základní (či pokročilé :) modelovací techniky&lt;/li&gt;
&lt;li&gt;a konečně o získané informaci podat zprávu graficky&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;V rámci modelu budu uvažovat geometrickou posloupnost – růst mezd o stálé procento. Tento vztah odpovídá ekonomické teorii lépe, než závislost lineární (růst mezd o stálou částku).&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Prvním krokem je načtení knihoven a akvizice surových dat. Základním vstupem pro analýzu bude vstupem standardní datová sada číslo &lt;a href=&#34;https://www.czso.cz/csu/czso/zamestnanci-a-prumerne-hrube-mesicni-mzdy-podle-odvetvi&#34;&gt;110079&lt;/a&gt; – Zaměstnanci a průměrné hrubé měsíční mzdy podle odvětví. Dataset má kvartální periodu.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;library(czso) # protože staťák...
library(tidyverse) # kvůli dplyr &amp;amp; ggplot2
library(zoo) # pro konverzi datumů / kvartály v letech

# načtu dataset s id 110079  = Zaměstnanci a průměrné hrubé měsíční mzdy podle odvětví
raw_mzdy &amp;lt;- czso::czso_get_table(&amp;quot;110079&amp;quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Když jsme datovou sadu načetli, tak se na hrubo seznámíme s její strukturou a obsahem:&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;glimpse(raw_mzdy)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## Rows: 6,880
## Columns: 16
## $ idhod        &amp;lt;chr&amp;gt; &amp;quot;741383707&amp;quot;, &amp;quot;741383708&amp;quot;, &amp;quot;741383709&amp;quot;, &amp;quot;741383713&amp;quot;, &amp;quot;7413…
## $ hodnota      &amp;lt;dbl&amp;gt; 23546, 24057, 27242, 22691, 24135, 24635, 27830, 10640, 1…
## $ stapro_kod   &amp;lt;chr&amp;gt; &amp;quot;5958&amp;quot;, &amp;quot;5958&amp;quot;, &amp;quot;5958&amp;quot;, &amp;quot;5958&amp;quot;, &amp;quot;5958&amp;quot;, &amp;quot;5958&amp;quot;, &amp;quot;5958&amp;quot;, &amp;quot;…
## $ mj_cis       &amp;lt;chr&amp;gt; &amp;quot;78&amp;quot;, &amp;quot;78&amp;quot;, &amp;quot;78&amp;quot;, &amp;quot;78&amp;quot;, &amp;quot;78&amp;quot;, &amp;quot;78&amp;quot;, &amp;quot;78&amp;quot;, &amp;quot;78&amp;quot;, &amp;quot;78&amp;quot;, &amp;quot;78…
## $ mj_kod       &amp;lt;chr&amp;gt; &amp;quot;00200&amp;quot;, &amp;quot;00200&amp;quot;, &amp;quot;00200&amp;quot;, &amp;quot;00200&amp;quot;, &amp;quot;00200&amp;quot;, &amp;quot;00200&amp;quot;, &amp;quot;00…
## $ typosoby_kod &amp;lt;chr&amp;gt; &amp;quot;200&amp;quot;, &amp;quot;200&amp;quot;, &amp;quot;200&amp;quot;, &amp;quot;200&amp;quot;, &amp;quot;200&amp;quot;, &amp;quot;200&amp;quot;, &amp;quot;200&amp;quot;, &amp;quot;200&amp;quot;, &amp;quot;…
## $ odvetvi_cis  &amp;lt;chr&amp;gt; &amp;quot;5103&amp;quot;, &amp;quot;5103&amp;quot;, &amp;quot;5103&amp;quot;, &amp;quot;5103&amp;quot;, &amp;quot;5103&amp;quot;, &amp;quot;5103&amp;quot;, &amp;quot;5103&amp;quot;, &amp;quot;…
## $ odvetvi_kod  &amp;lt;chr&amp;gt; &amp;quot;P&amp;quot;, &amp;quot;P&amp;quot;, &amp;quot;P&amp;quot;, &amp;quot;P&amp;quot;, &amp;quot;P&amp;quot;, &amp;quot;P&amp;quot;, &amp;quot;P&amp;quot;, &amp;quot;Q&amp;quot;, &amp;quot;Q&amp;quot;, &amp;quot;H&amp;quot;, &amp;quot;H&amp;quot;, &amp;quot;H…
## $ rok          &amp;lt;int&amp;gt; 2012, 2012, 2012, 2013, 2013, 2013, 2013, 2000, 2000, 200…
## $ ctvrtletí    &amp;lt;chr&amp;gt; &amp;quot;2&amp;quot;, &amp;quot;3&amp;quot;, &amp;quot;4&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;3&amp;quot;, &amp;quot;4&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;3…
## $ uzemi_cis    &amp;lt;chr&amp;gt; &amp;quot;97&amp;quot;, &amp;quot;97&amp;quot;, &amp;quot;97&amp;quot;, &amp;quot;97&amp;quot;, &amp;quot;97&amp;quot;, &amp;quot;97&amp;quot;, &amp;quot;97&amp;quot;, &amp;quot;97&amp;quot;, &amp;quot;97&amp;quot;, &amp;quot;97…
## $ uzemi_kod    &amp;lt;chr&amp;gt; &amp;quot;19&amp;quot;, &amp;quot;19&amp;quot;, &amp;quot;19&amp;quot;, &amp;quot;19&amp;quot;, &amp;quot;19&amp;quot;, &amp;quot;19&amp;quot;, &amp;quot;19&amp;quot;, &amp;quot;19&amp;quot;, &amp;quot;19&amp;quot;, &amp;quot;19…
## $ stapro_txt   &amp;lt;chr&amp;gt; &amp;quot;Průměrná hrubá mzda na zaměstnance&amp;quot;, &amp;quot;Průměrná hrubá mzd…
## $ mj_txt       &amp;lt;chr&amp;gt; &amp;quot;Kč&amp;quot;, &amp;quot;Kč&amp;quot;, &amp;quot;Kč&amp;quot;, &amp;quot;Kč&amp;quot;, &amp;quot;Kč&amp;quot;, &amp;quot;Kč&amp;quot;, &amp;quot;Kč&amp;quot;, &amp;quot;Kč&amp;quot;, &amp;quot;Kč&amp;quot;, &amp;quot;Kč…
## $ typosoby_txt &amp;lt;chr&amp;gt; &amp;quot;přepočtený&amp;quot;, &amp;quot;přepočtený&amp;quot;, &amp;quot;přepočtený&amp;quot;, &amp;quot;přepočtený&amp;quot;, &amp;quot;…
## $ odvetvi_txt  &amp;lt;chr&amp;gt; &amp;quot;Vzdělávání&amp;quot;, &amp;quot;Vzdělávání&amp;quot;, &amp;quot;Vzdělávání&amp;quot;, &amp;quot;Vzdělávání&amp;quot;, &amp;quot;…&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dataset obsahuje v normalizované formě více statistických veličin (mzdu a počet zaměstnanců) ve dvou dimenzích (surová data, a jejich přepočet na plné úvazky / FTEs = Full Time Employees). Pro eliminaci duplicit bude před vlastním modelováním nutno nastavit filtr.&lt;/p&gt;
&lt;p&gt;Mzdy jsou evidované po odvětvích; pro zjednodušení se v úvodní vizualizaci zaměříme na tři, u kterých je větší pravděpodobnost využití technik jazyka R: ICT pracovníky, vědecké pracovníky a učitele a učitelky.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# odliji stranou čistší dataset
clean_mzdy &amp;lt;- raw_mzdy %&amp;gt;% 
  filter(stapro_kod == &amp;#39;5958&amp;#39;  # průměrná mzda / zahazuju počty zaměstnanců
         &amp;amp; typosoby_kod == &amp;#39;200&amp;#39;# přepočet na ekvivalent plného úvazku
         &amp;amp; odvetvi_kod %in% c(&amp;#39;P&amp;#39;, &amp;#39;M&amp;#39;, &amp;#39;J&amp;#39;)) %&amp;gt;% # tři vybrané sektory
  # konverze konvence z roku + čtvrtletí na prosté datum (první den kvartálu)
  mutate(datum = as.Date(as.yearqtr(paste0(rok, &amp;quot;Q&amp;quot;, ctvrtletí))))

# základní overview graficky
ggplot(data = clean_mzdy, aes(x = datum, y = hodnota, color = odvetvi_txt)) +
  geom_point() +
  scale_y_continuous(limits = c(0, 70000), 
                     labels = scales::dollar_format(prefix = &amp;quot;&amp;quot;, 
                                                    suffix = &amp;quot; Kč&amp;quot;,
                                                    big.mark = &amp;quot; &amp;quot;)) +  
  labs(title = &amp;quot;Průměrná hrubá měsíční mzda v čase&amp;quot;,
       color = &amp;quot;Sektor podle ČSÚ&amp;quot;) +
  theme_minimal() +
  theme(axis.title = element_blank(),
        plot.title = element_text(hjust = 1/2, 
                                  size = 14),
        legend.position = c(0.795, 0.175),
        legend.direction = &amp;quot;vertical&amp;quot;,
        legend.title = element_text(hjust = 1/2),
        legend.background = element_rect(fill = &amp;quot;white&amp;quot;,
                                         color = NA)) &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jla-data.net/cze/mzdova-inflace-v-erku/index_files/figure-html/tri-sektory-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Z grafu můžeme vypozorovat tři fáze cyklu mezd:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;růst mezi rokem 2000 (počátek známé historie) a rokem 2010&lt;/li&gt;
&lt;li&gt;spíše stagnaci mezi lety 2010 a 2015&lt;/li&gt;
&lt;li&gt;opětovný růst od roku 2015 dále&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pro vlastní model zvolíme období růstu po roce 2015, kterému můžeme říkat &lt;strong&gt;&lt;em&gt;Éra Andreje Babiše&lt;/em&gt;&lt;/strong&gt; – a podle toho, jak moc panu premiérovi fandíme, budeme uvažovat, že to byl právě on, kdo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;konečně zařídil &lt;u&gt;peníze pro naše lidi&lt;/u&gt; (je to pašák!)&lt;/li&gt;
&lt;li&gt;nezodpovědně &lt;u&gt;roztočil inflační spirálu&lt;/u&gt; (je to neřád!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Na další práci s modelem už náš názor na pana premiéra vliv mít nebude.&lt;/p&gt;
&lt;p&gt;Pro model vybereme jeden obor, a sice ICT pracovníky neboli ajťáky.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# připravíme podkladový dataset &amp;quot;ajťáci v časech Andreje Babiše&amp;quot; pro trénink modelu
era_babise &amp;lt;- clean_mzdy %&amp;gt;% 
  filter(datum &amp;gt;= as.Date(&amp;quot;2015-01-01&amp;quot;) 
         &amp;amp; odvetvi_kod == &amp;#39;J&amp;#39;) %&amp;gt;% # pouze ICT sektor
  arrange(datum) %&amp;gt;% # setřídím dle data / pro jistotu, kvůli sekvenci v příštím kroku
  mutate(sekvence = 1:n()) # pořadové číslo kvartálu v rámci Éry A. B.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pro vlastní matematický model budeme uvažovat geometrickou posloupnost - jinými slovy budeme předpokládat, že mzdy ajťáků vzrostou z kvartálu na kvartál pokaždé o stejné procento.&lt;/p&gt;
&lt;p&gt;Taková posloupnost se dá popsat vzorcem &lt;code&gt;a * (1 + r) ^ sekvence&lt;/code&gt;, kde &lt;code&gt;a&lt;/code&gt; je počáteční hodnota (mzda v IT na začátku éry Andreje Babiše), &lt;code&gt;r&lt;/code&gt; je míra růstu z kvartálu na kvartál a &lt;code&gt;sekvence&lt;/code&gt; je pořadové číslo kvartálu v rámci éry Andreje Babiše.&lt;/p&gt;
&lt;p&gt;Pro nalezení konkrétních hodnot parametrů &lt;code&gt;a&lt;/code&gt; a &lt;code&gt;r&lt;/code&gt; použijeme techniku nejmenších čtverců, konkrétně funkci &lt;a href=&#34;https://stat.ethz.ch/R-manual/R-patched/library/stats/html/nls.html&#34; title=&#34;dokumentace erka&#34;&gt;&lt;code&gt;stats::nls()&lt;/code&gt;&lt;/a&gt;. Povinnými vstupy jsou podkladová data a vzorec očekávané závislosti v tildové notaci. Pro rychlejší konvergenci modelu můžeme doplnit iniciální hodnoty parametrů.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# natrénujeme matematický model přes stats::nls()
matematicky_model &amp;lt;- nls(hodnota ~ a * (1 + r)^sekvence, # vzorec, v tildové notaci
                         data = era_babise, # podkladová data
                         # vstupní odkad parametrů / odhad přes palec
                         start = list(a = 50000, 
                                      r = .01)) 

# shrnutí modelu - hodnoty parametrů, významnost &amp;amp;c.
summary(matematicky_model)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## 
## Formula: hodnota ~ a * (1 + r)^sekvence
## 
## Parameters:
##    Estimate Std. Error t value Pr(&amp;gt;|t|)    
## a 4.703e+04  5.795e+02   81.14  &amp;lt; 2e-16 ***
## r 1.231e-02  7.507e-04   16.40 1.53e-14 ***
## ---
## Signif. codes:  0 &amp;#39;***&amp;#39; 0.001 &amp;#39;**&amp;#39; 0.01 &amp;#39;*&amp;#39; 0.05 &amp;#39;.&amp;#39; 0.1 &amp;#39; &amp;#39; 1
## 
## Residual standard error: 1571 on 24 degrees of freedom
## 
## Number of iterations to convergence: 3 
## Achieved convergence tolerance: 3.634e-08&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Model je jednoduchý a teoreticky dobře podložený, takže nás nepřekvapí že pro oba hledané parametry vyšly odhady jako statisticky významné.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;modelová mzda v IT sektoru na počátku éry nám vyšla 47 025 Kč; pro kontext: skutečnost Q4 2014 byla 48 744 Kč, což představuje rozdíl 3.5%.&lt;/li&gt;
&lt;li&gt;modelové tempo kvartálního růstu hrubých mezd v ICT nám vyšlo 1.23%.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Získaný model můžeme snadno protáhnout do budoucna, a porovnat graficky se skutečností:&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# podklad pro uplatnění matematického modelu
jiny_cas &amp;lt;- data.frame(sekvence = 0:30) %&amp;gt;% 
  mutate(datum = as.Date(&amp;quot;2015-01-01&amp;quot;) + months(3 * sekvence))

# predikce - uplatnění matematického modelu na nový vstup
jiny_cas$hodnota &amp;lt;- predict(matematicky_model,
                            newdata = jiny_cas)


# grafické podání zprávy o skutečnosti a modelu
ggplot() +
  geom_line(data = jiny_cas, aes(x = datum, 
                                 y = hodnota), 
            color = &amp;quot;red&amp;quot;) +
  geom_point(data = era_babise, aes(x = datum, 
                                   y = hodnota),
             pch = 4, color = &amp;quot;gray50&amp;quot;) +
  scale_y_continuous(limits = c(40, 70) * 1000, # menší rozsah osy, ať vyniknou epsilonky
                     labels = scales::dollar_format(prefix = &amp;quot;&amp;quot;, 
                                                    suffix = &amp;quot; Kč&amp;quot;,
                                                    big.mark = &amp;quot; &amp;quot;)) +
  labs(title = &amp;quot;Model a skutečnost průměrné mzdy v českém ICT sektoru v čase&amp;quot;) +
  theme_minimal() +
  theme(axis.title = element_blank(),
        plot.title = element_text(hjust = 1/2, 
                                  size = 14))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jla-data.net/cze/mzdova-inflace-v-erku/index_files/figure-html/predikce_graf-1.png&#34; width=&#34;672&#34; /&gt;&lt;/p&gt;
&lt;p&gt;Vidíme, že model aproximuje skutečnost poměrně přesně; největší rozdíly jsou v prvních kvartálech roku, kdy je výrazná sezónnost (v reálném světě jí táhnou v tomto čtvrtletí vyplácené roční odměny, což je vlastnost kterou v rámci modelu neuvažujeme).&lt;/p&gt;
&lt;p&gt;Když jsme model připravili, tak je čas ho použít. Obecně se nabízí dvě možnosti uplatnění:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;předpověď průměrné mzdy v budoucnu (po anglicku &lt;em&gt;prediction&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;porozumění obecné problematice růstu mezd (po anglicku &lt;em&gt;inference&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;První bod bude relevantní jen pro někoho – ideálně průměrná mzda je umělý konstrukt, za který nikdo reálně nepracuje – ale druhý bod je zajímavější.&lt;/p&gt;
&lt;p&gt;Čeští ajťáci si mohou snadno porovnat realitu změny svého platu s trhem jako celkem. Pokud rostou pod trhem, tak svoji relativní pozici v poli všech ICT zaměstnanců ztrácí; pokud rostou nad trhem, tak se v pelotonu posunují dopředu.&lt;/p&gt;
&lt;p&gt;České konvence pracovního trhu nepočítají s kvartální úpravou mezd, obvyklejší je revize roční; očekávanou výši ročního nárůstu ze získané hodnoty koeficientu &lt;code&gt;r&lt;/code&gt; získáme snadno.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# očekávaný roční nárůst mezd z titulu inflace
(1 + coef(matematicky_model)[[&amp;quot;r&amp;quot;]]) ^ 4 - 1&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 0.05016941&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Jinými slovy pro ideálně průměrnou IT pozici očekáváme každoroční navýšení o 5.02% čistě z titulu běhu času a posunu trhu jako celku - za to, že &lt;a href=&#34;https://en.wikipedia.org/wiki/Red_Queen%27s_race&#34;&gt;poběžíme na místě s Červenou královnou&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;V některých kontextech není obvyklé automatické navyšování, a o lepší peníze si musí člověk říct. Což s sebou nese určité tření, a nejde to dělat příliš často – je tedy vhodnější méně časté navýšení o větší částku.&lt;/p&gt;
&lt;p&gt;V takovém případě může být zajímavé vědět, kolik času zabere trhu kumulativní nárůst o určitou hodnotu – řekněme 10%. Odpověď na tuto otázku nám dá opět koeficient &lt;code&gt;r&lt;/code&gt; našeho modelu, jen musíme použít logaritmy.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# čas v kvartálech pro nárůst tržní mzdy o 10%
log(1 + 10/100) / log(1 + coef(matematicky_model)[[&amp;quot;r&amp;quot;]])&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 7.788132&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Jinými slovy ideálně průměrný ajťák může očekávat nárůst mzdy o 10% někdy mezi 7. a 8. kvartálem od počátku.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Příklad vývoje mezd v IT byl vědomě lehčího rázu; nicméně věřím, že jsem v jeho rámci předvedl jak lehkost, s jakou lze přistupovat k datům ČSÚ přímo z pohodlí vaší R Session, tak eleganci erkových modelovacích nástrojů a přesvědčivost grafických výstupů. QED.&lt;/p&gt;
</description>
  </item>
  
<item>
  <title>Package CZSO</title>
  <link>https://www.jla-data.net/cze/package-czso/</link>
  <pubDate>Tue, 21 Apr 2020 00:00:00 +0000</pubDate>
  
<guid>https://www.jla-data.net/cze/package-czso/</guid>
  <description>


&lt;p&gt;Na CRANu se nedávno objevila package &lt;a href=&#34;https://petrbouchal.github.io/czso/&#34;&gt;czso&lt;/a&gt; od Petra Bouchala. Tato package představuje interface z erka přímo do open datových struktur &lt;a href=&#34;https://www.czso.cz&#34;&gt;Českého statistického úřadu&lt;/a&gt;. S její pomocí snadno a rychle získáte čerstvá data, aniž byste přitom museli opustit pohodlí svého RStudia.&lt;/p&gt;
&lt;p&gt;Prvním krokem pro orientaci je získání přehledu: k němu nám poslouží funkce &lt;code&gt;czso_get_catalogue()&lt;/code&gt;, vracející seznam dostupných datových zdrojů, včetně základních metadat jako &lt;code&gt;data.frame&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;library(czso) 
library(tidyverse) # kvůli dplyr &amp;amp; ggplot2
library(gganimate) # protože animace táhnou

# stahnu datový katalog / přehled dostupných sad
prehled &amp;lt;- czso::czso_get_catalogue()

# počet tabulek k dispozici
nrow(prehled)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## [1] 605&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# přehled hlavních informací
prehled %&amp;gt;% 
  select(dataset_id,
         title,
         start,
         end) %&amp;gt;%
  head() # pro základní orientaci...&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 6 x 4
##   dataset_id title                                         start      end       
##   &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;                                         &amp;lt;date&amp;gt;     &amp;lt;date&amp;gt;    
## 1 060003     Vybavenost domácností informačními a komunik… 2007-01-01 2019-12-31
## 2 270229     Sklizeň zemědělských plodin podle krajů       2002-01-01 2019-12-31
## 3 110080     Průměrná hrubá měsíční mzda a medián mezd v … 2011-01-01 2018-12-31
## 4 270230     Hospodářská zvířata podle krajů               2002-01-01 2019-12-31
## 5 340130     Velikostní skupiny obcí                       2001-01-01 2018-12-31
## 6 cis203     Číselník ČSÚ: Druh lesní dřeviny - agregace   1900-01-01 9999-09-09&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Druhým krokem bude získat konkrétní datovou sadu; k tomu potřebujeme znát její kód (najdeme jej v poli &lt;code&gt;dataset_id&lt;/code&gt;). Zaměřím se na svoji oblíbenou datovou sadu ceny piva v čase; pivo je jedna ze &lt;em&gt;základních potravin&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Dataset ceny základních potravin stáhnu pomocí funkce &lt;code&gt;czso_get_table()&lt;/code&gt;, a základní přehled o konkrétní datové struktuře získám pomocí &lt;code&gt;czso_get_table_schema()&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# najdu ty zázamy z přehledu dat, které v poli &amp;quot;title&amp;quot; obsahují řetězec &amp;quot;potravin&amp;quot;
prehled %&amp;gt;% 
  filter(str_detect(title, &amp;quot;potravin&amp;quot;)) %&amp;gt;% 
  select(dataset_id, title)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 1 x 2
##   dataset_id title                                                              
##   &amp;lt;chr&amp;gt;      &amp;lt;chr&amp;gt;                                                              
## 1 012052     Průměrné spotřebitelské ceny vybraných výrobků - potravinářské výr…&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# zobrazím metadata (moc mi toho neřeknou, ale přece...)
czso::czso_get_table_schema(&amp;quot;012052&amp;quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;## # A tibble: 11 x 5
##    name     titles   `dc:description`                          required datatype
##    &amp;lt;chr&amp;gt;    &amp;lt;chr&amp;gt;    &amp;lt;chr&amp;gt;                                     &amp;lt;lgl&amp;gt;    &amp;lt;chr&amp;gt;   
##  1 idhod    idhod    unikátní identifikátor údaje Veřejné dat… TRUE     string  
##  2 hodnota  hodnota  zjištěná hodnota                          TRUE     number  
##  3 stapro_… stapro_… kód statistické proměnné ze systému SMS … TRUE     string  
##  4 reprcen… reprcen… číselník pro cenové reprezentanty         TRUE     string  
##  5 reprcen… reprcen… kód z číselníku cenových reprezentantů    TRUE     string  
##  6 obdobiod obdobiod referenční období počátek - ve formátu R… TRUE     date    
##  7 obdobido obdobido referenční období konec - ve formátu RRR… TRUE     date    
##  8 uzemi_c… uzemi_c… kód číselníku pro referenční území, číse… TRUE     string  
##  9 uzemi_k… uzemi_k… kód položky z číselníku pro referenční ú… TRUE     string  
## 10 uzemi_t… uzemi_t… text položky z číselníku pro referenční … TRUE     string  
## 11 reprcen… reprcen… text položky z číselníku pro cenové repr… TRUE     string&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# načtu dataset základních potravin
potraviny &amp;lt;- czso::czso_get_table(&amp;quot;012052&amp;quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Když jsem dataset načetl, tak na něm provedu základní transformaci – vyberu položky pouze pro jednoho konkrétního cenového reprezentanta, zahodím krajský detail a transformuju text na datum.&lt;/p&gt;
&lt;p&gt;Nad výsledkem pak mohu technikami &lt;a href=&#34;https://ggplot2.tidyverse.org/&#34;&gt;&lt;code&gt;{ggplot2}&lt;/code&gt;&lt;/a&gt;, respektive rozšiřujícího balíčku &lt;a href=&#34;https://gganimate.com/index.html&#34;&gt;&lt;code&gt;{gganimate}&lt;/code&gt;&lt;/a&gt;, postavit jednoduchou prezentaci vývoje ceny v čase.&lt;/p&gt;
&lt;pre class=&#34;r&#34;&gt;&lt;code&gt;# ze základních potravin vyberu tu nejzákladnější 
pivo &amp;lt;- potraviny %&amp;gt;% 
  filter(reprcen_kod == &amp;quot;0213201&amp;quot;) %&amp;gt;% # ... protože pivo :)
  filter(uzemi_kod == &amp;quot;19&amp;quot;) %&amp;gt;%  # data za republiku jako celek (= ne kraje)
  mutate(obdobiod = as.Date(obdobiod),
         obdobido = as.Date(obdobido))

# a výsledek předložím graficky
ggplot(data = pivo, aes(x = obdobiod, y = hodnota)) +
  geom_line(color = &amp;quot;red&amp;quot;, size = 1.25) +
  geom_point(color = &amp;quot;red&amp;quot;, size = 2) +
  labs(title = &amp;quot;Vývoj ceny piva v čase&amp;quot;) +
  scale_y_continuous(labels = scales::dollar_format(accuracy = .01, decimal.mark = &amp;quot;,&amp;quot;,
                                                    prefix = &amp;quot;&amp;quot;, suffix = &amp;quot; Kč&amp;quot;)) +
  scale_x_date(date_breaks = &amp;quot;1 year&amp;quot;, date_labels = &amp;quot;%Y&amp;quot;) +
  theme_bw() +
  theme(axis.title = element_blank()) +
  gganimate::transition_reveal(obdobiod) # animační část...&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;https://www.jla-data.net/CZE/2020-04-21-prima-cesta-z-csu-do-vaseho-erka_files/figure-html/pivo-1.gif&#34; /&gt;&lt;!-- --&gt;&lt;/p&gt;
&lt;p&gt;Příklad s pivem je (vědomě :) spíše lehčího žánru, ale věřím že jsem na něm předvedl jednoduchost a eleganci, s jakou lze čerpat data (a metadata) z otevřených dat ČSÚ přímo do běžícho erka.&lt;/p&gt;
&lt;p&gt;Data jsou vždy čerstvá, a máme jistotu jejich kvality; nemusíme lovit pochybné excely někde po file systému.&lt;/p&gt;
&lt;p&gt;Určitou nevýhodou této techniky je nutnost aktivního internetového připojení – jsem však přesvědčen, že výhody jasně převažují.&lt;/p&gt;
</description>
  </item>
  
</channel>
  </rss>