# Načítanie balíkov
library(dplyr)
library(ggplot2)
library(broom)
library(gt)
library(corrplot)
# Načítanie dát
data("USArrests")
head(USArrests)
# Príprava dát
USArrests$UrbanGroup <- ifelse(USArrests$UrbanPop > median(USArrests$UrbanPop),
"HighUrban", "LowUrban")
# Korelačná tabuľka
cor_matrix <- round(cor(USArrests[,1:4]), 2)
# Korelačná tabuľka (bielo-červený štýl)
cor_matrix %>%
as.data.frame() %>%
tibble::rownames_to_column("Variable") %>%
gt() %>%
tab_header(title = "Korelačná matica datasetu USArrests") %>%
data_color(
columns = -Variable,
colors = scales::col_numeric(
palette = c("white", "red"),
domain = c(0, 1)
)
) %>%
tab_style(style = cell_text(weight = "bold"), locations = cells_column_labels())
| Korelačná matica datasetu USArrests |
| Variable |
Murder |
Assault |
UrbanPop |
Rape |
| Murder |
1.00 |
0.80 |
0.07 |
0.56 |
| Assault |
0.80 |
1.00 |
0.26 |
0.67 |
| UrbanPop |
0.07 |
0.26 |
1.00 |
0.41 |
| Rape |
0.56 |
0.67 |
0.41 |
1.00 |
# Voliteľná vizualizácia
corrplot(cor_matrix, method = "color", addCoef.col = "black",
tl.col = "black", tl.srt = 45,
col = colorRampPalette(c("white","red"))(200),
title = "Korelácie medzi premennými",
mar = c(0,0,2,0))

# T-test: Murder ~ UrbanGroup
t_test_result <- t.test(Murder ~ UrbanGroup, data = USArrests)
t_table <- broom::tidy(t_test_result)
t_table %>%
gt() %>%
tab_header(title = "T-test: Porovnanie vrážd podľa urbanizácie") %>%
fmt_number(columns = where(is.numeric), decimals = 3) %>%
data_color(
columns = c(statistic, estimate1, estimate2),
colors = scales::col_numeric(
palette = c("white", "red"),
domain = range(t_table$statistic, na.rm = TRUE)
)
)
| T-test: Porovnanie vrážd podľa urbanizácie |
| estimate |
estimate1 |
estimate2 |
statistic |
p.value |
parameter |
conf.low |
conf.high |
method |
alternative |
| 0.456 |
8.025 |
7.569 |
0.372 |
0.712 |
44.071 |
−2.013 |
2.925 |
Welch Two Sample t-test |
two.sided |
# ANOVA: Rape ~ UrbanGroup
anova_result <- aov(Rape ~ UrbanGroup, data = USArrests)
anova_table <- broom::tidy(anova_result)
anova_table %>%
gt() %>%
tab_header(title = "ANOVA: Porovnanie miery znásilnení podľa urbanizácie") %>%
fmt_number(columns = where(is.numeric), decimals = 3) %>%
data_color(
columns = c(sumsq, meansq, statistic),
colors = scales::col_numeric(
palette = c("white", "red"),
domain = range(anova_table$statistic, na.rm = TRUE)
)
)
| ANOVA: Porovnanie miery znásilnení podľa urbanizácie |
| term |
df |
sumsq |
meansq |
statistic |
p.value |
| UrbanGroup |
1.000 |
844.017 |
844.017 |
11.727 |
0.001 |
| Residuals |
48.000 |
3,454.712 |
71.973 |
NA |
NA |
# Lineárna regresia
lm_result <- lm(Murder ~ UrbanPop + Assault + Rape, data = USArrests)
lm_table <- broom::tidy(lm_result)
lm_table %>%
gt() %>%
tab_header(title = "Lineárna regresia: Predikcia miery vrážd") %>%
fmt_number(columns = where(is.numeric), decimals = 3) %>%
data_color(
columns = c(estimate, statistic),
colors = scales::col_numeric(
palette = c("white", "red"),
domain = range(lm_table$statistic, na.rm = TRUE)
)
)
| Lineárna regresia: Predikcia miery vrážd |
| term |
estimate |
std.error |
statistic |
p.value |
| (Intercept) |
3.277 |
1.738 |
1.885 |
0.066 |
| UrbanPop |
−0.055 |
0.028 |
−1.962 |
0.056 |
| Assault |
0.040 |
0.006 |
6.729 |
0.000 |
| Rape |
0.061 |
0.056 |
1.102 |
0.276 |
summary_info <- broom::glance(lm_result)
summary_info %>%
gt() %>%
tab_header(title = "Zhrnutie regresného modelu") %>%
fmt_number(columns = where(is.numeric), decimals = 3) %>%
data_color(
columns = everything(),
colors = scales::col_numeric(
palette = c("white", "red"),
domain = range(summary_info$r.squared, na.rm = TRUE)
)
)
| Zhrnutie regresného modelu |
| r.squared |
adj.r.squared |
sigma |
statistic |
p.value |
df |
logLik |
AIC |
BIC |
deviance |
df.residual |
nobs |
| 0.672 |
0.651 |
2.574 |
31.424 |
0.000 |
3.000 |
−116.140 |
242.281 |
251.841 |
304.832 |
46.000 |
50.000 |
# Boxplot pre ANOVA
ggplot(USArrests, aes(x = UrbanGroup, y = Rape, fill = UrbanGroup)) +
geom_boxplot(color = "black") +
scale_fill_manual(values = c("white", "red")) +
theme_minimal(base_size = 14) +
labs(title = "Boxplot: Miera znásilnení podľa urbanizácie",
x = "Urbanizačná skupina", y = "Rape")

# Scatterplot pre regresiu
ggplot(USArrests, aes(x = Assault, y = Murder, color = UrbanPop)) +
geom_point(size = 3) +
scale_color_gradient(low = "white", high = "red") +
theme_minimal(base_size = 14) +
labs(title = "Scatterplot: Vzťah medzi lúpežami, vraždami a urbanizáciou",
x = "Assault", y = "Murder")

Závery testov z datasetu:
Korelácie Murder ↔︎ Assault = 0.8 Silná väzba medzi
lúpežami a vraždami
T-test p = 0.712 Urbanizácia nemá významný vplyv na
vraždy
ANOVA p = 0.001 Urbanizácia má vplyv na mieru
znásilnení
Regresia p(modelu) = 0.000, R² = 0.67 Model je
silný, hlavný faktor: Assault
Vizualizácie Murder ~ Assault lineárny trend
Potvrdzuje závery testov
LS0tCnRpdGxlOiAiUHLDoWNhIHMgw7pkYWptaTIiCmF1dGhvcjogIlRlcsOpemlhIFJ5cMOha292w6EgcyBwb3XFvml0w61tIGRvc3R1cG7DvWNoIGvDs2RvdiBhIENIQVQgR1BUIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpgYGB7cn0KIyBOYcSNw610YW5pZSBiYWzDrWtvdgpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoYnJvb20pCmxpYnJhcnkoZ3QpCmxpYnJhcnkoY29ycnBsb3QpCgojIE5hxI3DrXRhbmllIGTDoXQKZGF0YSgiVVNBcnJlc3RzIikKaGVhZChVU0FycmVzdHMpCgojICBQcsOtcHJhdmEgZMOhdCAKVVNBcnJlc3RzJFVyYmFuR3JvdXAgPC0gaWZlbHNlKFVTQXJyZXN0cyRVcmJhblBvcCA+IG1lZGlhbihVU0FycmVzdHMkVXJiYW5Qb3ApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhpZ2hVcmJhbiIsICJMb3dVcmJhbiIpCgojIEtvcmVsYcSNbsOhIHRhYnXEvmthIApjb3JfbWF0cml4IDwtIHJvdW5kKGNvcihVU0FycmVzdHNbLDE6NF0pLCAyKQoKIyBLb3JlbGHEjW7DoSB0YWJ1xL5rYSAoYmllbG8txI1lcnZlbsO9IMWhdMO9bCkKY29yX21hdHJpeCAlPiUKICBhcy5kYXRhLmZyYW1lKCkgJT4lCiAgdGliYmxlOjpyb3duYW1lc190b19jb2x1bW4oIlZhcmlhYmxlIikgJT4lCiAgZ3QoKSAlPiUKICB0YWJfaGVhZGVyKHRpdGxlID0gIktvcmVsYcSNbsOhIG1hdGljYSBkYXRhc2V0dSBVU0FycmVzdHMiKSAlPiUKICBkYXRhX2NvbG9yKAogICAgY29sdW1ucyA9IC1WYXJpYWJsZSwKICAgIGNvbG9ycyA9IHNjYWxlczo6Y29sX251bWVyaWMoCiAgICAgIHBhbGV0dGUgPSBjKCJ3aGl0ZSIsICJyZWQiKSwKICAgICAgZG9tYWluID0gYygwLCAxKQogICAgKQogICkgJT4lCiAgdGFiX3N0eWxlKHN0eWxlID0gY2VsbF90ZXh0KHdlaWdodCA9ICJib2xkIiksIGxvY2F0aW9ucyA9IGNlbGxzX2NvbHVtbl9sYWJlbHMoKSkKCiMgVm9saXRlxL5uw6Egdml6dWFsaXrDoWNpYQpjb3JycGxvdChjb3JfbWF0cml4LCBtZXRob2QgPSAiY29sb3IiLCBhZGRDb2VmLmNvbCA9ICJibGFjayIsCiAgICAgICAgIHRsLmNvbCA9ICJibGFjayIsIHRsLnNydCA9IDQ1LAogICAgICAgICBjb2wgPSBjb2xvclJhbXBQYWxldHRlKGMoIndoaXRlIiwicmVkIikpKDIwMCksCiAgICAgICAgIHRpdGxlID0gIktvcmVsw6FjaWUgbWVkemkgcHJlbWVubsO9bWkiLAogICAgICAgICBtYXIgPSBjKDAsMCwyLDApKQoKIyAgVC10ZXN0OiBNdXJkZXIgfiBVcmJhbkdyb3VwCnRfdGVzdF9yZXN1bHQgPC0gdC50ZXN0KE11cmRlciB+IFVyYmFuR3JvdXAsIGRhdGEgPSBVU0FycmVzdHMpCnRfdGFibGUgPC0gYnJvb206OnRpZHkodF90ZXN0X3Jlc3VsdCkKCnRfdGFibGUgJT4lCiAgZ3QoKSAlPiUKICB0YWJfaGVhZGVyKHRpdGxlID0gIlQtdGVzdDogUG9yb3ZuYW5pZSB2csOhxb5kIHBvZMS+YSB1cmJhbml6w6FjaWUiKSAlPiUKICBmbXRfbnVtYmVyKGNvbHVtbnMgPSB3aGVyZShpcy5udW1lcmljKSwgZGVjaW1hbHMgPSAzKSAlPiUKICBkYXRhX2NvbG9yKAogICAgY29sdW1ucyA9IGMoc3RhdGlzdGljLCBlc3RpbWF0ZTEsIGVzdGltYXRlMiksCiAgICBjb2xvcnMgPSBzY2FsZXM6OmNvbF9udW1lcmljKAogICAgICBwYWxldHRlID0gYygid2hpdGUiLCAicmVkIiksCiAgICAgIGRvbWFpbiA9IHJhbmdlKHRfdGFibGUkc3RhdGlzdGljLCBuYS5ybSA9IFRSVUUpCiAgICApCiAgKQoKIyBBTk9WQTogUmFwZSB+IFVyYmFuR3JvdXAKYW5vdmFfcmVzdWx0IDwtIGFvdihSYXBlIH4gVXJiYW5Hcm91cCwgZGF0YSA9IFVTQXJyZXN0cykKYW5vdmFfdGFibGUgPC0gYnJvb206OnRpZHkoYW5vdmFfcmVzdWx0KQoKYW5vdmFfdGFibGUgJT4lCiAgZ3QoKSAlPiUKICB0YWJfaGVhZGVyKHRpdGxlID0gIkFOT1ZBOiBQb3Jvdm5hbmllIG1pZXJ5IHpuw6FzaWxuZW7DrSBwb2TEvmEgdXJiYW5pesOhY2llIikgJT4lCiAgZm10X251bWJlcihjb2x1bW5zID0gd2hlcmUoaXMubnVtZXJpYyksIGRlY2ltYWxzID0gMykgJT4lCiAgZGF0YV9jb2xvcigKICAgIGNvbHVtbnMgPSBjKHN1bXNxLCBtZWFuc3EsIHN0YXRpc3RpYyksCiAgICBjb2xvcnMgPSBzY2FsZXM6OmNvbF9udW1lcmljKAogICAgICBwYWxldHRlID0gYygid2hpdGUiLCAicmVkIiksCiAgICAgIGRvbWFpbiA9IHJhbmdlKGFub3ZhX3RhYmxlJHN0YXRpc3RpYywgbmEucm0gPSBUUlVFKQogICAgKQogICkKCiMgIExpbmXDoXJuYSByZWdyZXNpYQpsbV9yZXN1bHQgPC0gbG0oTXVyZGVyIH4gVXJiYW5Qb3AgKyBBc3NhdWx0ICsgUmFwZSwgZGF0YSA9IFVTQXJyZXN0cykKbG1fdGFibGUgPC0gYnJvb206OnRpZHkobG1fcmVzdWx0KQoKbG1fdGFibGUgJT4lCiAgZ3QoKSAlPiUKICB0YWJfaGVhZGVyKHRpdGxlID0gIkxpbmXDoXJuYSByZWdyZXNpYTogUHJlZGlrY2lhIG1pZXJ5IHZyw6HFvmQiKSAlPiUKICBmbXRfbnVtYmVyKGNvbHVtbnMgPSB3aGVyZShpcy5udW1lcmljKSwgZGVjaW1hbHMgPSAzKSAlPiUKICBkYXRhX2NvbG9yKAogICAgY29sdW1ucyA9IGMoZXN0aW1hdGUsIHN0YXRpc3RpYyksCiAgICBjb2xvcnMgPSBzY2FsZXM6OmNvbF9udW1lcmljKAogICAgICBwYWxldHRlID0gYygid2hpdGUiLCAicmVkIiksCiAgICAgIGRvbWFpbiA9IHJhbmdlKGxtX3RhYmxlJHN0YXRpc3RpYywgbmEucm0gPSBUUlVFKQogICAgKQogICkKCgpzdW1tYXJ5X2luZm8gPC0gYnJvb206OmdsYW5jZShsbV9yZXN1bHQpCnN1bW1hcnlfaW5mbyAlPiUKICBndCgpICU+JQogIHRhYl9oZWFkZXIodGl0bGUgPSAiWmhybnV0aWUgcmVncmVzbsOpaG8gbW9kZWx1IikgJT4lCiAgZm10X251bWJlcihjb2x1bW5zID0gd2hlcmUoaXMubnVtZXJpYyksIGRlY2ltYWxzID0gMykgJT4lCiAgZGF0YV9jb2xvcigKICAgIGNvbHVtbnMgPSBldmVyeXRoaW5nKCksCiAgICBjb2xvcnMgPSBzY2FsZXM6OmNvbF9udW1lcmljKAogICAgICBwYWxldHRlID0gYygid2hpdGUiLCAicmVkIiksCiAgICAgIGRvbWFpbiA9IHJhbmdlKHN1bW1hcnlfaW5mbyRyLnNxdWFyZWQsIG5hLnJtID0gVFJVRSkKICAgICkKICApCgojIEJveHBsb3QgcHJlIEFOT1ZBCmdncGxvdChVU0FycmVzdHMsIGFlcyh4ID0gVXJiYW5Hcm91cCwgeSA9IFJhcGUsIGZpbGwgPSBVcmJhbkdyb3VwKSkgKwogIGdlb21fYm94cGxvdChjb2xvciA9ICJibGFjayIpICsKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJ3aGl0ZSIsICJyZWQiKSkgKwogIHRoZW1lX21pbmltYWwoYmFzZV9zaXplID0gMTQpICsKICBsYWJzKHRpdGxlID0gIkJveHBsb3Q6IE1pZXJhIHpuw6FzaWxuZW7DrSBwb2TEvmEgdXJiYW5pesOhY2llIiwKICAgICAgIHggPSAiVXJiYW5pemHEjW7DoSBza3VwaW5hIiwgeSA9ICJSYXBlIikKCiMgU2NhdHRlcnBsb3QgcHJlIHJlZ3Jlc2l1CmdncGxvdChVU0FycmVzdHMsIGFlcyh4ID0gQXNzYXVsdCwgeSA9IE11cmRlciwgY29sb3IgPSBVcmJhblBvcCkpICsKICBnZW9tX3BvaW50KHNpemUgPSAzKSArCiAgc2NhbGVfY29sb3JfZ3JhZGllbnQobG93ID0gIndoaXRlIiwgaGlnaCA9ICJyZWQiKSArCiAgdGhlbWVfbWluaW1hbChiYXNlX3NpemUgPSAxNCkgKwogIGxhYnModGl0bGUgPSAiU2NhdHRlcnBsb3Q6IFZ6xaVhaCBtZWR6aSBsw7pwZcW+YW1pLCB2cmHFvmRhbWkgYSB1cmJhbml6w6FjaW91IiwKICAgICAgIHggPSAiQXNzYXVsdCIsIHkgPSAiTXVyZGVyIikKCmBgYApaw6F2ZXJ5IHRlc3RvdiB6IGRhdGFzZXR1OiAKCioqS29yZWzDoWNpZSoqCU11cmRlciDihpQgQXNzYXVsdCA9IDAuOAlTaWxuw6EgdsOkemJhIG1lZHppIGzDunBlxb5hbWkgYSB2cmHFvmRhbWkKCioqVC10ZXN0KioJcCA9IDAuNzEyCVVyYmFuaXrDoWNpYSBuZW3DoSB2w716bmFtbsO9IHZwbHl2IG5hIHZyYcW+ZHkKCioqQU5PVkEqKglwID0gMC4wMDEJVXJiYW5pesOhY2lhIG3DoSB2cGx5diBuYSBtaWVydSB6bsOhc2lsbmVuw60KCioqUmVncmVzaWEJcChtb2RlbHUpKiogPSAwLjAwMCwgUsKyID0gMC42NwlNb2RlbCBqZSBzaWxuw70sIGhsYXZuw70gZmFrdG9yOiBBc3NhdWx0CgoqKlZpenVhbGl6w6FjaWUqKglNdXJkZXIgfiBBc3NhdWx0IGxpbmXDoXJueSB0cmVuZAlQb3R2cmR6dWplIHrDoXZlcnkgdGVzdG92CgoK