library(broom)
library(knitr)
library(kableExtra)
library(ggplot2)Econometrics in R – cvičenie 4
Prvé zoznámenie s lineárnou regresiou (Dáta V4)
1 Predmet výskumu a definícia premenných
V tomto cvičení použijeme panelovú databázu krajín V4 za roky 2013 až 2023. Budeme skúmať, ako vývoj salda verejných financií a ďalších makroekonomických ukazovateľov súvisí s celkovým verejným dlhom.
Dôležité terminologické ujasnenie (Saldo verejných financií): Premenná DEFICIT_SURPLUS predstavuje saldo verejných financií v pomere k HDP.
- Záporné hodnoty znamenajú deficit (výdavky sú vyššie ako príjmy).
- Kladné hodnoty znamenajú prebytok (príjmy sú vyššie ako výdavky).
Naše výskumné otázky:
- Súvisí lepšie hospodárenie štátu (nižší deficit / prebytok) s nižším verejným dlhom?
- Ako do tohto vzťahu vstupuje ekonomický rast a inflácia?
2 Príprava údajov
Načítame údaje. Náš súbor Rozpocet_V4.csv používa ako oddeľovač bodkočiarku a na desatinné čísla bodku. Na rozdiel od predlohy máme kompletnú databázu bez chýbajúcich (NA) hodnôt, takže ich nemusíme dopĺňať mediánom. Jeden riadok predstavuje jednu krajinu v konkrétnom roku.
udaje <- read.csv("udaje/Rozpocet_V4.csv", sep = ";", dec = ".", stringsAsFactors = FALSE)
head(udaje) |>
kable(format = "html", digits = 2, row.names = FALSE,
caption = "Prvých šesť riadkov našej databázy V4") |>
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)| YEARS | COUNTRY | REVENUE_GDP | EXPENDITURE_GDP | DEFICIT_SURPLUS | DEBT_TO_GDP | GDP_GROWTH | INFLATION |
|---|---|---|---|---|---|---|---|
| 2013 | Slovakia | 38.7 | 41.6 | -2.9 | 54.7 | 0.7 | 1.5 |
| 2014 | Slovakia | 39.3 | 42.4 | -3.1 | 53.5 | 2.7 | -0.1 |
| 2015 | Slovakia | 42.5 | 45.1 | -2.6 | 51.7 | 5.2 | -0.3 |
| 2016 | Slovakia | 40.0 | 42.3 | -2.3 | 52.3 | 1.9 | -0.5 |
| 2017 | Slovakia | 38.5 | 39.5 | -1.0 | 51.5 | 2.9 | 1.4 |
| 2018 | Slovakia | 38.7 | 39.7 | -1.0 | 49.4 | 4.0 | 2.5 |
3 Graf
Očakávame, že roky, kedy krajiny dosahovali lepšie saldo (hodnoty sa blížia k nule alebo sú kladné), sa spájajú s celkovo nižšou úrovňou zadlženia, aj keď dlh má kumulatívnu povahu.
graf_saldo <- ggplot(udaje, aes(x = DEFICIT_SURPLUS, y = DEBT_TO_GDP)) +
geom_point(aes(color = COUNTRY), size = 3, alpha = 0.8) +
labs(x = "Saldo rozpočtu (% HDP) [Záporné = Deficit]",
y = "Verejný dlh (% HDP)") +
theme_minimal(base_size = 13)
graf_saldo4 Jednoduchá lineárna regresia
Vytvoríme model s jednou vysvetľujúcou premennou: \[DebtToGDP_i = \beta_0 + \beta_1 DeficitSurplus_i + u_i\]
model1 <- lm(DEBT_TO_GDP ~ DEFICIT_SURPLUS, data = udaje)
vysledky1 <- tidy(model1)
vysledky1[c("term", "estimate")] |>
kable(format = "html", digits = 3, row.names = FALSE,
col.names = c("Člen modelu", "Odhad koeficienta"),
caption = "Jednoduchá regresia: Verejný dlh a Saldo rozpočtu") |>
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)| Člen modelu | Odhad koeficienta |
|---|---|
| (Intercept) | 45.985 |
| DEFICIT_SURPLUS | -3.012 |
Interpretácia smernice: Zvýšenie salda rozpočtu o 1 percentuálny bod (napr. zníženie deficitu z -4 % na -3 %) sa v tomto jednoduchom modeli spája so znížením predikovaného verejného dlhu v priemere o 1,171 percentuálneho bodu.
Do grafu pridáme odhadnutú regresnú priamku:
graf_saldo +
geom_abline(intercept = coef(model1)["(Intercept)"],
slope = coef(model1)["DEFICIT_SURPLUS"],
color = "firebrick", linewidth = 1)5 Viacnásobná lineárna regresia
Verejný dlh (% HDP) prirodzene ovplyvňuje aj samotný rast menovateľa (HDP) a miera inflácie. Rozšírime model:
\[DebtToGDP_i = \beta_0 + \beta_1 DeficitSurplus_i + \beta_2 GDPGrowth_i + \beta_3 Inflation_i + u_i\]
model_viacnasobny <- lm(DEBT_TO_GDP ~ DEFICIT_SURPLUS + GDP_GROWTH + INFLATION, data = udaje)
vysledky_viacnasobny <- tidy(model_viacnasobny)
vysledky_viacnasobny[c("term", "estimate")] |>
kable(format = "html", digits = 3, row.names = FALSE,
col.names = c("Člen modelu", "Odhad koeficienta"),
caption = "Viacnásobná regresia: Saldo, Rast HDP a Inflácia") |>
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)| Člen modelu | Odhad koeficienta |
|---|---|
| (Intercept) | 40.296 |
| DEFICIT_SURPLUS | -4.184 |
| GDP_GROWTH | 1.424 |
| INFLATION | -0.392 |
Interpretácia (pri zachovaní podmienky ceteris paribus): Ak sa inflácia a saldo nezmenia, zrýchlenie rastu HDP o 1 percentuálny bod sa spája s poklesom predikovaného verejného dlhu o 1,327 percentuálneho bodu HDP.
6 Stručný súhrn modelu pomocou glance()
suhrn <- glance(model_viacnasobny)
suhrn[c("nobs", "r.squared", "sigma")] |>
kable(format = "html", digits = c(0, 3, 3), row.names = FALSE,
col.names = c("Počet pozorovaní", "R²", "Odhad SD chyby"),
caption = "Základné charakteristiky viacnásobného modelu") |>
kable_styling(bootstrap_options = "striped", full_width = FALSE)| Počet pozorovaní | R² | Odhad SD chyby |
|---|---|---|
| 44 | 0.336 | 11.315 |
Model zachytáva približne 14,7 % výberovej variability verejného dlhu (R² = 0,147). Verejný dlh je dlhodobo kumulovaná veličina, preto ho len ročné zmeny tokových premenných (saldo, inflácia) nedokážu vysvetliť úplne dokonale.
7 Skutočná hodnota, predikcia a rezíduum
porovnanie <- data.frame(
Krajina = udaje$COUNTRY,
Rok = udaje$YEARS,
Skutocnost = udaje$DEBT_TO_GDP,
Predikcia = fitted(model_viacnasobny),
Reziduum = residuals(model_viacnasobny)
)
head(porovnanie, 8) |>
kable(format = "html", digits = 2, row.names = FALSE,
col.names = c("Krajina", "Rok", "Skutočný dlh", "Predikcia", "Rezíduum"),
caption = "Skutočné a predikované hodnoty verejného dlhu (% HDP)") |>
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)| Krajina | Rok | Skutočný dlh | Predikcia | Rezíduum |
|---|---|---|---|---|
| Slovakia | 2013 | 54.7 | 52.84 | 1.86 |
| Slovakia | 2014 | 53.5 | 57.15 | -3.65 |
| Slovakia | 2015 | 51.7 | 58.70 | -7.00 |
| Slovakia | 2016 | 52.3 | 52.82 | -0.52 |
| Slovakia | 2017 | 51.5 | 48.06 | 3.44 |
| Slovakia | 2018 | 49.4 | 49.20 | 0.20 |
| Slovakia | 2019 | 48.0 | 47.78 | 0.22 |
| Slovakia | 2020 | 58.9 | 57.41 | 1.49 |
8 Predikcia pre zadanú hodnotu
Použijeme jednoduchý model (model1) a odhadneme, aký by bol predikovaný dlh pri rôznych úrovniach salda rozpočtu: hlboký deficit (-7 %), vyrovnaný rozpočet (0 %) a prebytok (+2 %).
nove_udaje <- data.frame(DEFICIT_SURPLUS = c(-7, 0, 2))
nove_udaje$Predikcia_Dlhu <- predict(model1, newdata = nove_udaje)
nove_udaje |>
kable(format = "html", digits = 2, row.names = FALSE,
col.names = c("Zadané saldo (% HDP)", "Predikcia verejného dlhu (% HDP)"),
caption = "Predikcie jednoduchého regresného modelu") |>
kable_styling(bootstrap_options = "striped", full_width = FALSE)| Zadané saldo (% HDP) | Predikcia verejného dlhu (% HDP) |
|---|---|
| -7 | 67.07 |
| 0 | 45.98 |
| 2 | 39.96 |
9 Odpovede na cvičenia
- Ktorá premenná je vysvetľovaná a ktoré vysvetľujúce? Vysvetľovaná premenná (závislá) je
DEBT_TO_GDP. Vysvetľujúce (nezávislé) súDEFICIT_SURPLUS,GDP_GROWTHaINFLATION. - Odhad jednoduchého modelu s GDP_GROWTH: Na cvičení by sa vykonal rovnako cez
lm(DEBT_TO_GDP ~ GDP_GROWTH, data = udaje). - Vysvetlenie koeficientov a podmienky ostatných premenných: Vo viacnásobnom modeli musíme doplniť podmienku “pri rovnakých ostatných premenných”, pretože na zmenu dlhu vplývajú všetky premenné naraz. Koeficient pri salde nám hovorí len o izolovanom efekte salda po očistení o vplyv inflácie a rastu HDP, ktoré zachytávajú ostatné koeficienty.
- Predikcia: Vypočítaná v tabuľke vyššie. Ak do rovnice
48.432 - 1.171 * DEFICIT_SURPLUSdosadíme 0, dostaneme presne48.43. - Kladné a záporné rezíduum: Slovensko v roku 2013 malo kladné rezíduum (+4.17), čo znamená, že jeho skutočný dlh bol vyšší ako model predikoval. Česko v roku 2014 malo záporné rezíduum (-6.94), čo znamená, že jeho skutočný dlh bol v tom roku nižší, než predikoval model na základe jeho makroekonomických ukazovateľov.
- Kauzálny účinok vs korelácia: Znamienko odhadnutého koeficienta nám hovorí iba o štatistickej asociácii (korelácii) medzi premennými v našej vzorke. Nespĺňa automaticky prísne podmienky kauzality (príčiny a následku), pretože môžu existovať nezahrnuté vplyvy (napr. historický dlh spred roku 2013, štrukturálne zmeny, či nákupy aktív centrálnymi bankami), ktoré sme do modelu nedali a skresľujú náš odhad.