Econometrics in R – cvičenie 4

Prvé zoznámenie s lineárnou regresiou (Dáta V4)

Autor

Martin Peťko

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

library(broom)
library(knitr)
library(kableExtra)
library(ggplot2)

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)
Prvých šesť riadkov našej databázy V4
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_saldo
Obrázok 1: Saldo rozpočtu a verejný dlh v krajinách V4 (2013-2023).

4 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)
Jednoduchá regresia: Verejný dlh a Saldo rozpočtu
Č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)
Obrázok 2: Odhadnutá regresná priamka pre Saldo a Verejný dlh.

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)
Viacnásobná regresia: Saldo, Rast HDP a Inflácia
Č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)
Základné charakteristiky viacnásobného modelu
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)
Skutočné a predikované hodnoty verejného dlhu (% HDP)
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)
Predikcie jednoduchého regresného modelu
Zadané saldo (% HDP) Predikcia verejného dlhu (% HDP)
-7 67.07
0 45.98
2 39.96

9 Odpovede na cvičenia

  1. 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_GROWTH a INFLATION.
  2. Odhad jednoduchého modelu s GDP_GROWTH: Na cvičení by sa vykonal rovnako cez lm(DEBT_TO_GDP ~ GDP_GROWTH, data = udaje).
  3. 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.
  4. Predikcia: Vypočítaná v tabuľke vyššie. Ak do rovnice 48.432 - 1.171 * DEFICIT_SURPLUS dosadíme 0, dostaneme presne 48.43.
  5. 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.
  6. 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.