1. Východiskový model a údaje

Budeme pracovať s regresným modelom z minulých cvičení, pričom \[ Unemployment_Rate_i = \beta_0 + \beta_1 GDP_Growth_Annual_i + \beta_2 Inflation_CPI_i + \beta_3 Public_Debt_i + u_i \]

Údaje máme z databázy Global Economic Indicators (2010–2025)- World bank. V analýze budeme pracovať iba s údajmi z roku 2015.

udaje <- read.csv("data.csv",dec=".",sep=";",header = TRUE)

udaje.2015 <- udaje[udaje$Year==2015,c("Unemployment_Rate","GDP_Growth_Annual","Inflation_CPI","Public_Debt")]

column_medians <- sapply(udaje.2015, median, na.rm = TRUE)

udaje_imputed <- udaje.2015
for (col in names(udaje.2015)) {
  udaje_imputed[[col]][is.na(udaje_imputed[[col]])] <- column_medians[col]
}

udaje.2015 <- udaje_imputed

2. Odhad základného regresného modelu

model <- lm(Unemployment_Rate ~ GDP_Growth_Annual + Inflation_CPI + Public_Debt,
            data = udaje)
summary(model)
## 
## Call:
## lm(formula = Unemployment_Rate ~ GDP_Growth_Annual + Inflation_CPI + 
##     Public_Debt, data = udaje)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.2732 -0.8633  0.1133  1.3498  3.3413 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)   
## (Intercept)        28.8882     6.1905   4.667  0.00117 **
## GDP_Growth_Annual  -0.2263     0.3389  -0.668  0.52100   
## Inflation_CPI      -0.4022     0.2290  -1.756  0.11289   
## Public_Debt        -0.2739     0.0888  -3.085  0.01304 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.556 on 9 degrees of freedom
## Multiple R-squared:  0.578,  Adjusted R-squared:  0.4373 
## F-statistic: 4.109 on 3 and 9 DF,  p-value: 0.04308

Regresný model skúmajúci faktory ovplyvňujúce mieru nezamestnanosti v roku 2015 je ako celok štatisticky významný (p = 0.043), čo znamená, že použité premenné spoločne vysvetľujú časť variability nezamestnanosti. Model dosiahol R² = 0.578, takže približne 58 % variability nezamestnanosti je vysvetlených zahrnutými premennými.

Zo závislých premenných sa ako štatisticky významná preukázala iba premenná verejný dlh (p = 0.013). Jej negatívny koeficient naznačuje, že vyšší verejný dlh je spojený s nižšou mierou nezamestnanosti – zvýšenie dlhu o 1 percentuálny bod znižuje nezamestnanosť približne o 0.27 p. b. Ostatné premenné, ročný rast HDP a inflácia, štatisticky významné neboli, a preto ich vplyv v rámci tohto modelu nemožno považovať za preukázaný.

Vo výsledkoch nepozorujeme žiadne výrazné rádové rozdiely medzi odhadmi regresných koeficientov. Všetky vysvetľujúce premenné majú koeficienty v porovnateľnom rozsahu, čo znamená, že model pracuje s premennými vyjadrenými v podobných jednotkách.


3. Korelačná matica

xvars <- udaje[, c("GDP_Growth_Annual", "Inflation_CPI", "Public_Debt")]
round(cor(xvars), 3)
##                   GDP_Growth_Annual Inflation_CPI Public_Debt
## GDP_Growth_Annual             1.000        -0.286      -0.366
## Inflation_CPI                -0.286         1.000      -0.018
## Public_Debt                  -0.366        -0.018       1.000

Korelačná analýza ukazuje, že medzi vysvetľujúcimi premennými sa nenachádzajú silné lineárne vzťahy. Korelácia medzi rastom HDP a infláciou je slabá a negatívna (–0.286), rovnako slabý negatívny vzťah je aj medzi rastom HDP a verejným dlhom (–0.366). Inflácia a verejný dlh spolu prakticky vôbec nesúvisia (–0.018). Keďže všetky korelačné koeficienty sú výrazne pod hranicou 0.8, dá sa konštatovať, že medzi premennými nie je prítomná multikolinearita.

pairs(xvars,
      main = "Scatterplotová matica – premenné GDP_Growth_Annual, Inflation_CPI, Public_Debt")

Scatterplotová matica naznačuje, že medzi premennými GDP_Growth_Annual, Inflation_CPI a Public_Debt sa nenachádzajú žiadne výrazné lineárne vzťahy. Body v jednotlivých grafoch sú rozptýlené bez jasného smerového trendu, čo podporuje výsledky z korelačnej analýzy. Slabšie náznaky negatívneho vzťahu možno vidieť medzi rastom HDP a infláciou či medzi rastom HDP a verejným dlhom, avšak tieto vzťahy nie sú výrazné. Celkovo scatterplotová matica potvrdzuje, že medzi premennými v modeli pravdepodobne nevzniká multikolinearita.

4. VIF

library(car)
vif(model)
## GDP_Growth_Annual     Inflation_CPI       Public_Debt 
##          1.281456          1.109811          1.177131

Hodnoty VIF pre všetky premenné v modeli sú veľmi nízke – pohybujú sa medzi 1.10 a 1.28. Keďže za problémové sa považujú hodnoty VIF vyššie ako 5 (pri prísnom kritériu) alebo 10 (pri menej prísnom kritériu), možno jednoznačne konštatovať, že v modeli sa nevyskytuje multikolinearita. Vysvetľujúce premenné nie sú navzájom výrazne lineárne späté a každá z nich prináša do modelu vlastnú informáciu.


5. Condition Number

X <- model.matrix(model)[, -1]
XtX <- t(X) %*% X
eig <- eigen(XtX)

condition_number <- sqrt(max(eig$values) / min(eig$values))
condition_number
## [1] 26.76653

Vypočítaný condition number má hodnotu 26.77, čo spadá do intervalu 10–30, teda do kategórie miernej multikolinearity. Ide o úroveň, ktorá síce naznačuje určitú prítomnosť lineárnych vzťahov medzi premennými, no spravidla nepredstavuje vážny problém pre odhad regresného modelu. Výsledok je tak konzistentný s predchádzajúcimi zisteniami – model neobsahuje silnú multikolinearitu a odhady koeficientov sú spoľahlivé.


6. Riešenia multikolinearity

Vynechanie premennej

Vzhľadom na to, že v modeli sa neprejavila multikolinearita (nízke korelácie, nízke hodnoty VIF a nízky condition number), nie je potrebné vynechávať žiadnu premennú. Model neobsahuje premenné, ktoré by sa navzájom silno prekrývali, a preto nie je potrebné testovať alternatívne modely bez jednotlivých premenných.

Škálovanie premenných

Keďže v modeli sa neprejavila multikolinearita (nízke korelácie, nízke hodnoty VIF a nízky condition number), nie je potrebné použiť škálovanie premenných. Škálovanie sa používa ako riešenie multikolinearity, ktorá však v našom modeli nevznikla.

Iná úprava premennej, ktorá zachová interpretovateľnosť

Úprava premenných na nové jednotky nie je potrebná, keďže všetky premenné v modeli sú vyjadrené v porovnateľných rádoch (v percentách) a neexistuje medzi nimi multikolinearita. Transformácia premenných by v tomto prípade nepriniesla zlepšenie modelu ani interpretácie.

PCA

Keďže v modeli nebola identifikovaná multikolinearita (nízke korelácie, nízke VIF a nízky condition number), nie je potrebné aplikovať PCA. PCA sa využíva ako riešenie multikolinearity zlúčením korelovaných premenných do jedného komponentu, čo však v našom prípade nie je potrebné, keďže premenné navzájom nekorelujú a sú dobre interpretovateľné.

Hrebeňová regresia (Ridge Regression)

Ridge regresia sa v našom prípade nepoužila, keďže v modeli nebola identifikovaná multikolinearita. Hrebeňová regresia slúži na stabilizáciu koeficientov pri silnej korelácii vysvetľujúcich premenných. Keďže hodnoty korelácie, VIF a condition number potvrdili, že multikolinearita sa v našom modeli nevyskytuje, použitie ridge regresie by neprinieslo žiadny prínos a koeficienty by boli zbytočne skreslené.

7. Zhrnutie

V tejto úlohe sme sa zamerali na diagnostiku multikolinearity v regresnom modeli, v ktorom bola miera nezamestnanosti vysvetľovaná ročným rastom HDP, infláciou a verejným dlhom. Na základe korelačnej matice, hodnôt VIF a condition number bolo zistené, že medzi vysvetľujúcimi premennými sa nevyskytuje multikolinearita. Korelácie medzi premennými boli nízke, hodnoty VIF sa pohybovali okolo 1 a condition number bol pod hranicou, ktorá by signalizovala problém. Z tohto dôvodu nebolo potrebné uplatniť žiadne postupy na riešenie multikolinearity, ako je vynechávanie premenných, škálovanie, transformácia jednotiek, PCA či hrebeňová regresia. Model je z hľadiska multikolinearity stabilný a jednotlivé premenné sú interpretovateľné bez potreby ďalších úprav.