---
title: "Práca s databázou – AI v európskych podnikoch"
author: "Júlia Kurčíková"
date: 10/23/2026
lang: sk
format:
html:
toc: true
toc-location: left
toc-title: Obsah
number-sections: true
theme: united
highlight-style: tango
code-fold: show
code-tools: true
editor:
markdown:
wrap: 72
---
```{r}
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
library(tidyverse)
library(knitr)
library(kableExtra)
library(broom)
```
::: {.callout-note}
## Databáza
Použitá je databáza Eurostatu
[isoc_eb_ai](https://ec.europa.eu/eurostat/databrowser/view/isoc_eb_ai/default/table?lang=en){target="_blank" rel="noopener"}.
Obsahuje podiel podnikov používajúcich umelú inteligenciu podľa krajiny,
roku a veľkosti podniku. K dispozícii sú údaje za roky **2021, 2023,
2024 a 2025**; rok 2022 v tomto module nie je dostupný.
**Otázky pre ďalšiu prácu s databázou:**
- Ako rýchlo sa AI v podnikoch šíri?
- Kde je Slovensko v porovnaní s V4 a EÚ?
- Závisí využívanie AI od veľkosti podniku?
:::
# Práca s údajmi
Tento dokument slúži ako ukážka základnej práce s databázou: vytvorenia
tabuľky, importu `.csv`, výberu a úpravy premenných, sumarizácie,
tabuliek a grafov. Výsledky sa tu vecne neinterpretujú.
## Tradičná práca s `data.frame`
Krátky príklad demonštruje vytvorenie objektu typu `data.frame`,
pridanie stĺpca, pridanie riadka, adresovanie premenných a filtrovanie
riadkov. Použité sú hodnoty krajín V4 a EÚ z databázy Eurostatu.
```{r}
# Vytvorenie tabuľky so štyrmi krajinami V4.
v4 <- data.frame(
Krajina = c("Slovensko", "Česko", "Poľsko", "Maďarsko"),
AI.2023 = c(7.04, 5.90, 3.67, 3.68),
AI.2025 = c(18.00, 17.60, 8.36, 10.37)
)
# Pridanie nového stĺpca pomocou cbind().
v4 <- cbind(v4, Narast = v4$AI.2025 - v4$AI.2023)
# Pridanie porovnávacieho riadka EÚ pomocou rbind().
v4 <- rbind(
v4,
data.frame(Krajina = "EÚ (27 krajín)", AI.2023 = 8.06,
AI.2025 = 19.95, Narast = 19.95 - 8.06)
)
v4
```
```{r}
# Adresovanie jedného stĺpca a výber krajín nad priemerom V4 v roku 2025.
v4$AI.2025
v4[v4$AI.2025 > mean(v4$AI.2025[1:4]), c("Krajina", "AI.2025")]
# Základný opis všetkých premenných tabuľky.
summary(v4)
```
## Tabuľka s `kableExtra`
Rovnaké údaje sú ďalej zobrazené vo formátovanej tabuľke s využitím
balíkov `knitr` a `kableExtra`.
```{r}
v4 %>%
kable(
digits = 1,
col.names = c("Krajina", "2023 (%)", "2025 (%)", "Nárast (p. b.)"),
caption = "Podniky využívajúce AI – krajiny V4 a EÚ"
) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE,
position = "center"
) %>%
row_spec(0, bold = TRUE, background = "#f2f2f2") %>%
row_spec(1, bold = TRUE, background = "#fde9d9") %>%
row_spec(5, italic = TRUE, color = "grey40")
```
## Import údajov z otvorenej databázy
Hlavný súbor bol stiahnutý z Eurostatu vo formáte `.csv`. Súbor
`krajiny.csv` je pomocná tabuľka, ktorá prepája kódy Eurostatu so
slovenskými názvami krajín.
```{r}
# Import pomocnej tabuľky s názvami krajín.
krajiny <- read.csv2("udaje/krajiny.csv")
# Import dát Eurostatu a náhľad na prvých šesť riadkov.
udaje <- read.csv("udaje/isoc_eb_ai.csv")
head(udaje)
```
```{r}
# Názvy stĺpcov a stručná kontrola štruktúry importovaných údajov.
colnames(udaje)
glimpse(udaje)
```
# Tidyverse – moderná práca s údajmi
Balík `dplyr` poskytuje funkcie na výber stĺpcov (`select()`), výber
riadkov (`filter()`), vytváranie premenných (`mutate()`), triedenie
(`arrange()`) a sumarizáciu (`summarise()`). Nasledujúce kroky vytvoria
pracovnú verziu databázy s kratšími názvami premenných.
```{r}
# Výber potrebných premenných, ich premenovanie a pripojenie názvov krajín.
udaje.ai <- udaje %>%
select(
geo,
Velkost = size_emp,
Ukazovatel = indic_is,
Rok = TIME_PERIOD,
Hodnota = OBS_VALUE,
Poznamka = OBS_FLAG
) %>%
left_join(krajiny, by = "geo")
head(udaje.ai)
```
## Výber a triedenie
Vybraný je hlavný ukazovateľ `E_AI_TANY`, teda podiel podnikov
používajúcich aspoň jednu technológiu AI. Kategória `GE10` označuje
podniky s najmenej 10 zamestnancami.
```{r}
# Filter vyberie ukazovateľ, veľkostnú kategóriu a dostupné hodnoty.
ai.krajiny <- udaje.ai %>%
filter(
Ukazovatel == "E_AI_TANY",
Velkost == "GE10",
!is.na(Hodnota)
) %>%
arrange(Rok, Krajina, desc(Hodnota))
head(ai.krajiny)
```
## Vytváranie novej premennej
Funkcie `mutate()` a `case_when()` sú použité na vytvorenie kategórie
`Obdobie` podľa dostupného roka.
```{r}
# Vytvorenie novej kategórie podľa roku.
ai.krajiny <- ai.krajiny %>%
mutate(
Obdobie = case_when(
Rok == 2021 ~ "2021",
Rok == 2023 ~ "2023",
Rok %in% c(2024, 2025) ~ "2024–2025",
TRUE ~ "iné"
)
)
ai.krajiny %>%
select(Krajina, Rok, Hodnota, Obdobie) %>%
head()
```
## Zoskupenie a sumarizácia
Funkcie `group_by()` a `summarise()` vytvoria základnú tabuľku opisných
štatistík pre každý dostupný rok.
```{r}
ai.stats <- ai.krajiny %>%
filter(!geo %in% c("EU27_2020", "EA")) %>%
group_by(Rok) %>%
summarise(
Pocet.krajin = n(),
Priemer = mean(Hodnota),
Sm.odch = sd(Hodnota),
Minimum = min(Hodnota),
Median = median(Hodnota),
Maximum = max(Hodnota),
.groups = "drop"
)
ai.stats %>%
kable(
digits = 2,
caption = "Základné štatistiky podielu podnikov používajúcich AI"
) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE
) %>%
column_spec(1, bold = TRUE)
```
# Grafy
## Čiarový graf
Čiarový graf je ukážkou kombinácie funkcie `ggplot()` s vrstvami
`geom_line()` a `geom_point()`. Vykreslené sú Slovensko, krajiny V4 a
agregát EÚ vo všetkých dostupných rokoch.
```{r}
udaje.ai %>%
filter(
Ukazovatel == "E_AI_TANY",
Velkost == "GE10",
geo %in% c("SK", "CZ", "PL", "HU", "EU27_2020")
) %>%
ggplot(aes(x = Rok, y = Hodnota, color = Krajina)) +
geom_line(linewidth = 1) +
geom_point(size = 2) +
scale_x_continuous(breaks = c(2021, 2023, 2024, 2025)) +
labs(
title = "Podiel podnikov používajúcich AI",
subtitle = "Podniky s 10 a viac zamestnancami",
x = "Rok", y = "% podnikov", caption = "Zdroj: Eurostat, isoc_eb_ai"
) +
theme_minimal()
```
## Stĺpcový graf
Stĺpcový graf zobrazuje hodnoty jednotlivých krajín v roku 2025.
Slovensko je odlíšené farbou pomocou podmienky v estetike `fill`.
```{r fig.height=7}
ai.krajiny %>%
filter(Rok == 2025, !geo %in% c("EU27_2020", "EA")) %>%
ggplot(aes(x = reorder(Krajina, Hodnota), y = Hodnota, fill = geo == "SK")) +
geom_col() +
coord_flip() +
scale_fill_manual(values = c("grey70", "#E95420"), guide = "none") +
labs(
title = "Podiel podnikov používajúcich AI v roku 2025",
x = NULL, y = "% podnikov", caption = "Zdroj: Eurostat, isoc_eb_ai"
) +
theme_minimal()
```
## Boxplot
Boxplot ukazuje rozdelenie hodnôt medzi krajinami v jednotlivých rokoch.
```{r}
ai.krajiny %>%
filter(!geo %in% c("EU27_2020", "EA")) %>%
ggplot(aes(x = factor(Rok), y = Hodnota)) +
geom_boxplot(fill = "lightblue", color = "darkblue") +
labs(
title = "Rozdelenie podielu podnikov používajúcich AI",
x = "Rok", y = "% podnikov"
) +
theme_minimal()
```
# Základné štatistické postupy
Nasledujúce postupy sú uvedené ako ukážka práce s databázou. Výstupy
sa v tejto fáze vecne neinterpretujú; podrobnejšia analýza môže
nasledovať na ďalších hodinách.
## Párový t-test
Pre párový t-test sú pripravené pozorovania tých istých krajín v rokoch
2023 a 2025. Funkcia `pivot_wider()` ich prevedie do formátu, v ktorom
má každý rok vlastný stĺpec.
```{r}
ai.2023.2025 <- ai.krajiny %>%
filter(Rok %in% c(2023, 2025), !geo %in% c("EU27_2020", "EA")) %>%
select(Krajina, Rok, Hodnota) %>%
pivot_wider(names_from = Rok, names_prefix = "AI.", values_from = Hodnota) %>%
drop_na()
t.test(ai.2023.2025$AI.2025, ai.2023.2025$AI.2023, paired = TRUE)
```
## ANOVA podľa veľkosti podniku
Pre ukážku funkcie `aov()` sú pripravené tri veľkostné kategórie
podnikov v roku 2025.
```{r}
ai.velkost <- udaje.ai %>%
filter(
Ukazovatel == "E_AI_TANY",
Velkost %in% c("10-49", "50-249", "GE250"),
Rok == 2025,
!geo %in% c("EU27_2020", "EA"),
!is.na(Hodnota)
) %>%
mutate(
Velkost = factor(
Velkost,
levels = c("10-49", "50-249", "GE250"),
labels = c("malé", "stredné", "veľké")
)
)
anova.velkost <- aov(Hodnota ~ Velkost, data = ai.velkost)
summary(anova.velkost)
```
## Lineárna regresia
Posledný príklad používa lineárnu regresiu. Vysvetľovanou premennou je
podiel podnikov s AI a vysvetľujúcou premennou je veľkostná kategória.
```{r}
model <- lm(Hodnota ~ Velkost, data = ai.velkost)
summary(model)
# Prehľadná tabuľka koeficientov pomocou balíka broom.
tidy(model, conf.int = TRUE) %>%
kable(digits = 3, caption = "Koeficienty lineárneho modelu") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE
)
```
# Použité zdroje
- Eurostat: [ICT usage and e-commerce in enterprises – artificial intelligence](https://ec.europa.eu/eurostat/databrowser/view/isoc_eb_ai/default/table?lang=en)
- Vladimír Gazda: [Práca s databázou](https://rpubs.com/gazdavladimir/1468825)