population_data <- read.csv("population_data.csv")
head(population_data)
##   id Country..or.dependency. Population.2025 Yearly.Change Net.Change
## 1  1                   India      1463865525         0.89%   12929734
## 2  2                   China      1416096094        −0.23% −3,225,184
## 3  3           United States       347275807         0.54%    1849236
## 4  4               Indonesia       285721236         0.79%    2233305
## 5  5                Pakistan       255219554         1.57%    3950390
## 6  6                 Nigeria       237527782         2.08%    4848304
##   Density..P.Km.. Land.Area..Km.. Migrants..net. Fert..Rate Median.Age
## 1             492         2973190       −495,753       1.94       28.8
## 2             151         9388211       −268,126       1.02       40.1
## 3              38         9147420        1230663       1.62       38.5
## 4             158         1811570        −39,509       2.10       30.4
## 5             331          770880     −1,235,336       3.50       20.6
## 6             261          910770        −15,258       4.30       18.1
##   Urban.Pop.. World.Share
## 1       37.1%      17.78%
## 2       67.5%      17.20%
## 3       82.8%       4.22%
## 4       59.6%       3.47%
## 5       34.4%       3.10%
## 6       54.9%       2.89%
names(population_data)
##  [1] "id"                      "Country..or.dependency."
##  [3] "Population.2025"         "Yearly.Change"          
##  [5] "Net.Change"              "Density..P.Km.."        
##  [7] "Land.Area..Km.."         "Migrants..net."         
##  [9] "Fert..Rate"              "Median.Age"             
## [11] "Urban.Pop.."             "World.Share"

1. Úvod

Po autokoreácii a heteroskedasticite rezíduí je multikolinearita tretím závažným porušením predpokladov použitia metódy najmenších štvorcov. Tu sa okrem iného predpokadá, že matica \(\mathbf X\) je tvorená lineárne nezávislými riadkami a tiež stĺpcami, čo zabezpečí regularitu matice \(\mathbf X^T\mathbf X\) a teda možnosť jej inverzie. Tá sa používa pri odhadoch regresných koeficientov. V praxi sa ale môže stať, že vzniká "takmer singulárna matica \(\mathbf X^T\mathbf X\) ", t.j. matica \(\mathbf X\) je tvorená "približne" lineárne závislými stĺpcami, t.j. existuje taká ich lineárna kombinácia, v ktorej

\[ x_{il} = \alpha_0 + \alpha_1 x_{i1} + \dots + \alpha_{l-1} x_{i,(l-1)} + \alpha_{l+1} x_{i,(l+1)} + \alpha_k x_{i,k} + \nu_i \]

Tu \(\nu_i\) sú rádovo menšie čísla , než regresory \(x_{.}\), t.j. \((\forall i)(\nu_i << x_{.,i})\). V tomto prípade je inverzná matica \((\mathbf X^T\mathbf X)^{-1}\) veľmi nestabilná a obsahuje na hlavnej diagonále veľmi veľké hodnoty. Táto matica sa používa pri výpočtoch \[\hat \beta = (\mathbf X^T\mathbf X)^{-1} \mathbf X^T \mathbf y\] a tiež \[\text{std}(\beta_i) = \sqrt{\sigma^2 (\mathbf X^T \mathbf X)^{-1}_{ii}}.\] To spôsobuje nestabilitu odhadovaných regresných koeficientov a ich nadhodnotené rozptyly.

Tento problém nazývame problémom multikolinearity.


2. Dôsledky multikolinearity

Multikolinearita patrí medzi najčastejšie problémy viacnásobnej lineárnej regresie.
Je dôležité jasne rozlišovať dva fakty:

  1. Nespôsobuje skreslené (biased) odhady koeficientov
  2. Nadhodnocuje odhady štandardných odchýlok regresných koeficientov a vedie potom k falošnému neprijímaniu alternatívnej hypotézy o štatistickej významnosti jednotlivých regresorov.
  3. Odhadované regresné koeficienty sú nestabilné - pri malej zmene údajov sa sa prudko menia koeficienty ako aj ich znamienka.
  4. Interpretácia regresného modelu je z dôvodu vyššie uvedených dôvodov nespoľahlivá.

3. Východiskový model a údaje

Budeme pracovať s regresným modelom z minulých cvičení. \[ Population_{2025,i} = \beta_0 + \beta_1 Density_i + \beta_2 UrbanPop_i + \beta_3 MedianAge_i + u_i, \]

# načítanie dát – zachováme pôvodné názvy stĺpcov
udaje_raw <- read.csv("population_data.csv",
                      header = TRUE,
                      check.names = FALSE)

# vyberieme len premenné, s ktorými chceme pracovať
library(dplyr)
library(readr)

udaje <- udaje_raw %>%
  select(
    `Country (or dependency)`,
    `Population 2025`,
    `Density (P/Km²)`,
    `Urban Pop %`,
    `Median Age`
  ) %>%
  # premenovanie na jednoduchšie názvy
  rename(
    Country        = `Country (or dependency)`,
    Population2025 = `Population 2025`,
    Density        = `Density (P/Km²)`,
    UrbanPopPerc   = `Urban Pop %`,
    MedianAge      = `Median Age`
  ) %>%
  # UrbanPop prevedieme z percent (napr. 67.5 %) na podiel (0.675)
  mutate(
    UrbanPop = parse_number(UrbanPopPerc) / 100
  ) %>%
  select(-UrbanPopPerc)

# ---- imputácia chýbajúcich hodnôt mediánom ----
cols_model <- c("Population2025", "Density", "UrbanPop", "MedianAge")

column_medians <- sapply(udaje[cols_model], median, na.rm = TRUE)

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

# ---- regresný model podľa textu ----
# Population_{2025,i} = beta_0 + beta_1 Density_i + beta_2 UrbanPop_i + beta_3 MedianAge_i + u_i

model <- lm(Population2025 ~ Density + UrbanPop + MedianAge, data = udaje)
summary(model)
## 
## Call:
## lm(formula = Population2025 ~ Density + UrbanPop + MedianAge, 
##     data = udaje)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
##  -49081001  -34324675  -26453810  -10811593 1422918856 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept)  48193833   34734520   1.387    0.167
## Density         -1339       3873  -0.346    0.730
## UrbanPop    -24868470   47329102  -0.525    0.600
## MedianAge       91594    1041208   0.088    0.930
## 
## Residual standard error: 1.4e+08 on 229 degrees of freedom
## Multiple R-squared:  0.001937,   Adjusted R-squared:  -0.01114 
## F-statistic: 0.1482 on 3 and 229 DF,  p-value: 0.9308

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

model <- lm(Population2025 ~ Density + UrbanPop + MedianAge,
            data = udaje)
summary(model)
## 
## Call:
## lm(formula = Population2025 ~ Density + UrbanPop + MedianAge, 
##     data = udaje)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
##  -49081001  -34324675  -26453810  -10811593 1422918856 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept)  48193833   34734520   1.387    0.167
## Density         -1339       3873  -0.346    0.730
## UrbanPop    -24868470   47329102  -0.525    0.600
## MedianAge       91594    1041208   0.088    0.930
## 
## Residual standard error: 1.4e+08 on 229 degrees of freedom
## Multiple R-squared:  0.001937,   Adjusted R-squared:  -0.01114 
## F-statistic: 0.1482 on 3 and 229 DF,  p-value: 0.9308

Vo výsledkoch regresie pozorujeme, že odhady regresných koeficientov jednotlivých premenných sa síce líšia svojou veľkosťou, avšak ani jedna z nich nevykazuje štatistickú významnosť. Ide najmä o premenné Density, UrbanPop a MedianAge, pri ktorých sú p-hodnoty výrazne nad bežnou hladinou významnosti (0.730, 0.600 a 0.930). Z hľadiska veľkosti koeficientov vidíme, že odhadovaný vplyv UrbanPop má veľmi veľký absolútny koeficient (−24 868 470), zatiaľ čo koeficient pri Density je rádovo menší (−1339). Podobné rozdiely nachádzame aj medzi MedianAge a ostatnými premennými. Treba však zdôrazniť, že tieto rozdiely nie sú interpretable v kauzálnom zmysle, keďže koeficienty sú štatisticky nevýznamné a model ako celok nevysvetľuje variabilitu počtu obyvateľov. Hodnota R² = 0.0019 naznačuje, že model zachytáva menej než jedno promile variability závislej premennej. Z toho vyplýva, že hoci sa koeficienty líšia v rádoch veľkosti, ich informatívna hodnota je veľmi obmedzená. Tento výsledok je spôsobený tým, že zvolené vysvetľujúce premenné opisujú štruktúru populácie (podiel mestského obyvateľstva, mediánový vek či hustota), nie jej absolútnu veľkosť. Variabilita počtu obyvateľov krajín je preto modelom zachytená len minimálne.


5. Korelačná matica

Korelácia dokáže zachytiť párové vzťahy medzi premennými. Ak medzi niektorými vysvetľujúcimi premennými je vysoká korelácia (signalizujúca multikolinearitu), potom je najjednoduchšie ju zo zoznamu regresorov vylúčiť. Korelácie sa dajú aj testovať, alebo len vyčísliť a potom podľa intuitívneho pravidla vylúčiť jednu premennú, ktorá má koreláciu s inou premennou v absolútnej hodnote vyššiu ako 0.8, resp. 0.9.

xvars <- udaje[, c("Density", "UrbanPop", "MedianAge")]
round(cor(xvars), 3)
##           Density UrbanPop MedianAge
## Density     1.000    0.088     0.182
## UrbanPop    0.088    1.000     0.422
## MedianAge   0.182    0.422     1.000

Korelácie medzi vysvetľujúcimi premennými sú nízke až stredné, čo znamená, že regresný model netrpí multikolinearitou. Korelácia medzi Density a UrbanPop je veľmi nízka (0.088). → Hustota obyvateľstva prakticky nesúvisí s podielom mestského obyvateľstva. Korelácia medzi Density a MedianAge je takisto nízka (0.182). → Hustejšie osídlené krajiny nemajú systematicky vyšší alebo nižší mediánový vek. Najvyššia korelácia je medzi UrbanPop a MedianAge (0.422), čo predstavuje približne stredne silný vzťah, avšak stále je výrazne pod hranicou indikujúcej multikolinearitu (0.8–0.9). → Krajiny s vyšším podielom mestského obyvateľstva majú tendenciu mať aj vyšší mediánový vek, no tento vzťah nie je problematický. Celkovo hodnoty korelácií nenaznačujú žiadne problémy, preto môžeme všetky tri premenné ponechať v regresnom modeli.

pairs(xvars,
      main = "Scatterplotová matica – premenné Density, UrbanPop, MedianAge")


6. VIF

Indikátorom multikolinearity u premennej, ktorá multikolinearitu zapríčiňuje, je Variance Inflation Factor (VIF). Pre premennú \(x_j\) je potom

\[ VIF_j = \frac{1}{1 - R_j^2} \]

kde \(R_j^2\) pochádza z regresie:

\[ X_j = \gamma_0 + \gamma_1 X_1 + \cdots + \gamma_{j-1} X_{j-1} + \gamma_{j+1} X_{j+1} + u. \]

library(car)
vif(model)
##   Density  UrbanPop MedianAge 
##  1.034267  1.216687  1.248446

Intuitívnym kritériom, ktoré signalizuje prítomnosť multikolinearity, je podmienka VIF > 5 (prísne kritérium), alebo VIF > 10 (menej prísne kritérium). V našom prípade to nespĺňa žiadna z vysvetľujúcich veličín.


7. Condition Number

Pri existencii multikolinearity sa model prejavuje tak, že koeficient determinácie je síce vysoký a zdá sa, že model je veľmi dobrý, ale regresné koeficienty nie sú štatisticky významné - t.j. štandardné odchýlky regresných koeficientov sú veľmi veľké. Uvedomíme si to, ak sa pozrieme, ako sa počítajú - t.j. \(\text{std}(\beta_i) = \sqrt{\sigma^2 (\mathbf X^T \mathbf X)^{-1}_{ii}}\), kde rozhodujúci je \(i\)ty prvok hlavnej diagonály matice \((\mathbf X^T \mathbf X)^{-1}\). Tie prvky sú ale v prípade podobnosti vysvetľujúcich premenných mimoriadne veľké. Túto situáciu zachytáva nasledovný ukazovateľ.

Pri výpočte Condition number \(\kappa\) sa používa vzorec

\[\kappa = \frac{\theta_{\text{max}}}{\theta_{\text{min}}}\]

kde \(\theta_.\) sú vlastné čísla matice (vysvetlené nižšie). Conditional number nie je test, je to len indikátor, ktorý posudzuje mieru multikolinearity medzi premennými. Používame intuitívne pravidlo. Ak Conditional number je

V našom prípade to vypočítame nasledovne

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

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

Hodnota kondičného čísla je približne 11 433, čo predstavuje veľmi vysokú hodnotu a naznačuje výrazné problémy s číselnou stabilitou matice X′X. V tomto prípade však vysoké kondičné číslo nie je spôsobené multikolinearitou medzi vysvetľujúcimi premennými, keďže korelačná matica aj hodnoty VIF ukázali iba nízke až stredné korelácie. Dôvodom zvýšeného kondičného čísla je výrazná rozdielnosť mierok jednotlivých premenných. Premenná Density nadobúda hodnoty až v desiatkach tisíc, zatiaľ čo UrbanPop je vyjadrený ako podiel v rozsahu 0–1 a MedianAge sa pohybuje približne medzi 15 a 50 rokmi. Takéto nerovnomerné škálovanie spôsobuje numerickú nestabilitu, no nepredstavuje problém z hľadiska multikolinearity. Z tohto dôvodu môžeme konštatovať, že vysoké kondičné číslo nereflektuje nevhodnú kombináciu regresorov, ale rozdielne jednotky merania, a teda nepredstavuje dôvod na vylúčenie premenných z modelu.

Vlastné číslo štvorcovej matice \(\mathbf X^T \mathbf X\) je číslo \(\theta_j\), pre ktoré platí \((\mathbf X^T \mathbf X)\mathbf h^j = \theta_i\mathbf h^j\). \(\mathbf h^j\) je tzv vlastný vektor tejto matice. Máme toľko vlastných čísel (teda aj vlastných vektorov), koľko obsahuje matica \(\mathbf X^T \mathbf X\) riadkov (stĺpcov).

Môže sa stať, že VIF faktor nesignalizuje multikolinearitu u žiadnej z vysvetľujúcich veličín, ale sú navzájom prepojené cyklickými lineárnymi závislosťami všetky premenné. To zachytáva práve Condition Number.


8. Riešenia multikolinearity

Vynechanie premennej

Pokúsme sa vynechať postupne dve premenné, ktoré majú najvyšší VIF a porovnajme následne upravené koeficienty determinácie oboch nových modelov

# Model bez premennnej s najvyšším VIF – MedianAge
model_noMedianAge <- lm(Population2025 ~ Density + UrbanPop, data = udaje)
summary(model_noMedianAge)
## 
## Call:
## lm(formula = Population2025 ~ Density + UrbanPop, data = udaje)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
##  -47316076  -34214827  -26985966  -10518314 1423045310 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  50038440   27631321   1.811   0.0715 .
## Density         -1285       3815  -0.337   0.7366  
## UrbanPop    -23143300   42981920  -0.538   0.5908  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 139700000 on 230 degrees of freedom
## Multiple R-squared:  0.001903,   Adjusted R-squared:  -0.006776 
## F-statistic: 0.2193 on 2 and 230 DF,  p-value: 0.8032
# Model bez premennej UrbanPop
model_noUrbanPop <- lm(Population2025 ~ Density + MedianAge, data = udaje)
summary(model_noUrbanPop)
## 
## Call:
## lm(formula = Population2025 ~ Density + MedianAge, data = udaje)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
##  -37296327  -34319823  -29535849  -10240280 1428132245 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) 40295626   31264182   1.289    0.199
## Density        -1365       3866  -0.353    0.724
## MedianAge    -135095     946127  -0.143    0.887
## 
## Residual standard error: 139700000 on 230 degrees of freedom
## Multiple R-squared:  0.0007338,  Adjusted R-squared:  -0.007955 
## F-statistic: 0.08445 on 2 and 230 DF,  p-value: 0.919

Po vynechaní jednotlivých premenných sme odhadli dva zjednodušené regresné modely: (1) model so Density a UrbanPop, a (2) model so Density a MedianAge.

Výsledky ukazujú, že v oboch prípadoch ostávajú všetky koeficienty ne-signifikantné, pričom p-hodnoty sa pohybujú vysoko nad bežnými hladinami významnosti. Hodnoty R² sú v oboch modeloch veľmi nízke (okolo 0.001), dokonca nižšie než v pôvodnom modeli, a Adjusted R² zostáva záporné. F-test takisto nepotvrdzuje štatistickú významnosť ani jedného z redukovaných modelov. Z toho vyplýva, že odstránenie premenných nevedie k žiadnemu zlepšeniu kvality regresného modelu. Problémom teda nie je multikolinearita medzi vysvetľujúcimi premennými, ale skôr to, že premenné Density, UrbanPop a MedianAge nedokážu vysvetliť variabilitu počtu obyvateľov krajín v roku 2025.

Škálovanie premenných

Škálovanie môže byť veľmi efektívne, znižuje ale interpretovateľnosť modelu. Ide o úpravu premenných podľa nasledovného vzorca:

\[x^{scale} = \frac{x-M}{\sqrt{D}}\] kde \(M\) je stredná hodnota (priemer) a \(D\) je rozptyl premennej.

# centrovanie a škálovanie premenných
udaje$Density_c   <- scale(udaje$Density,   center = TRUE, scale = TRUE)
udaje$UrbanPop_c  <- scale(udaje$UrbanPop,  center = TRUE, scale = TRUE)
udaje$MedianAge_c <- scale(udaje$MedianAge, center = TRUE, scale = TRUE)

# centricky model
model_centered <- lm(Population2025 ~ Density_c + UrbanPop_c + MedianAge_c,
                     data = udaje)

summary(model_centered)
## 
## Call:
## lm(formula = Population2025 ~ Density_c + UrbanPop_c + MedianAge_c, 
##     data = udaje)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
##  -49081001  -34324675  -26453810  -10811593 1422918856 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 35320796    9169316   3.852 0.000152 ***
## Density_c   -3231367    9345172  -0.346 0.729826    
## UrbanPop_c  -5325755   10135854  -0.525 0.599788    
## MedianAge_c   903206   10267290   0.088 0.929978    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.4e+08 on 229 degrees of freedom
## Multiple R-squared:  0.001937,   Adjusted R-squared:  -0.01114 
## F-statistic: 0.1482 on 3 and 229 DF,  p-value: 0.9308
# VIF pre centricky model
vif(model_centered)
##   Density_c  UrbanPop_c MedianAge_c 
##    1.034267    1.216687    1.248446

Conditional Number je

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

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

Hodnota Condition number = 1.62 je veľmi nízka a nachádza sa hlboko pod hranicou, ktorá by naznačovala akýkoľvek problém s multikolinearitou alebo číselnou nestabilitou matice X′X. Za bežných okolností sa za problematické považujú hodnoty nad približne 30, pričom hodnoty nad 1000 signalizujú vážnu multikolinearitu. Výsledok 1.62 preto ukazuje, že po centrovaní a škálovaní premenných je model plne numericky stabilný a multikolinearita sa v ňom nevyskytuje. Tento výsledok je zároveň v súlade s veľmi nízkymi hodnotami VIF, ktoré taktiež potvrdili absenciu multikolinearity. Aj keď preškálovanie výrazne zlepšilo číselné vlastnosti modelu, nijako to nemení jeho celkovú vysvetľovaciu schopnosť, keďže zvolené premenné nedokážu zachytiť variabilitu počtu obyvateľov jednotlivých krajín.

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

Ak sa chceme vyhnúť strate interpretovateľnosti, môžeme sa pozrieť, v akých rádoch sa pohybuje vývoj jednotlivých vysvetľujúcich veličín a upraviť jednoduchým prevodom na iné jednotky tú premennú, ktorá sa výrazne odlišuje od ostatných. V našom prípade ide o premennú Density, ktorá meria hustotu obyvateľstva v počte obyvateľov na km². Hodnoty tejto premennej sú často v tisícoch až desaťtisícoch, zatiaľ čo premenné UrbanPop (podiel mestského obyvateľstva) a MedianAge (mediánový vek) majú hodnoty rádovo v jednotkách až desiatkach. Pre lepšiu porovnateľnosť preto prevedieme premennú Density delením 1000 na hustotu vyjadrenú v tisícoch obyvateľov na km². Tým získame premenné vyjadrené v rádovo porovnateľnejších jednotkách, ako je uvedené v nasledujúcej tabuľke.

udaje$Density1000 <- udaje$Density / 1000
head(udaje)
##         Country Population2025 Density MedianAge UrbanPop   Density_c
## 1         India     1463865525     492      28.8    0.371  0.00179291
## 2         China     1416096094     151      40.1    0.675 -0.13952860
## 3 United States      347275807      38      38.5    0.828 -0.18635949
## 4     Indonesia      285721236     158      30.4    0.596 -0.13662758
## 5      Pakistan      255219554     331      20.6    0.344 -0.06493074
## 6       Nigeria      237527782     261      18.1    0.549 -0.09394102
##    UrbanPop_c MedianAge_c Density1000
## 1 -1.11070343  -0.3140671       0.492
## 2  0.30881654   0.8318688       0.151
## 3  1.02324600   0.6696124       0.038
## 4 -0.06007188  -0.1518107       0.158
## 5 -1.23677922  -1.1456312       0.331
## 6 -0.27953713  -1.3991569       0.261

Potom lineárny model dosiahne výsledky

# lineárny model so škálovanou premennou Density1000
model_Density1000 <- lm(Population2025 ~ Density1000 + UrbanPop + MedianAge,
                        data = udaje)

summary(model_Density1000)
## 
## Call:
## lm(formula = Population2025 ~ Density1000 + UrbanPop + MedianAge, 
##     data = udaje)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
##  -49081001  -34324675  -26453810  -10811593 1422918856 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept)  48193833   34734520   1.387    0.167
## Density1000  -1339184    3872944  -0.346    0.730
## UrbanPop    -24868470   47329102  -0.525    0.600
## MedianAge       91594    1041208   0.088    0.930
## 
## Residual standard error: 1.4e+08 on 229 degrees of freedom
## Multiple R-squared:  0.001937,   Adjusted R-squared:  -0.01114 
## F-statistic: 0.1482 on 3 and 229 DF,  p-value: 0.9308
vif(model_Density1000)
## Density1000    UrbanPop   MedianAge 
##    1.034267    1.216687    1.248446
X <- model.matrix(model_Density1000)[, -1]
XtX <- t(X) %*% X
eig <- eigen(XtX)

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

Hodnota Condition number = 155.41 naznačuje mierne zvýšenú číselnú nestabilitu, pretože prekračuje hranicu približne 100, ktorá sa často uvádza ako orientačný limit pre dobre kondicionované modely. Napriek tomu však táto hodnota nepredstavuje problém multikolinearity, keďže ukazovatele VIF zostávajú nízke (okolo 1.0–1.25). To znamená, že vysvetľujúce premenné Density1000, UrbanPop a MedianAge si medzi sebou nezdieľajú výraznú lineárnu závislosť. Zvýšená hodnota condition number je spôsobená najmä rozdielmi v mierkach a rozptyloch jednotlivých premenných, nie ich vzájomnou koreláciou. Tento jav je v geografických a demografických dátach bežný a neovplyvňuje samotné štatistické závery modelu. Celkovo teda môžeme povedať, že aj keď je condition number relatívne vyšší, multikolinearita nie je v modeli prítomná a z hľadiska interpretácie regresie nevzniká žiadny problém.

9. Zhrnutie

V našom modeli nepredstavuje multikolinearita problém. Hodnoty VIF boli vo všetkých prípadoch nízke a ani po ďalších úpravách modelu sa nezvýšili, čo potvrdzuje, že vysvetľujúce premenné Density, UrbanPop a MedianAge medzi sebou nevykazujú silné lineárne vzťahy. Condition number v pôvodnom modeli bol vysoký najmä pre veľké rozdiely v mierkach premenných, nie z dôvodu multikolinearity. Po centrovaní a škálovaní sa jeho hodnota výrazne znížila, čo potvrdzuje, že problém bol numerický, nie štrukturálny. Vynechávanie premenných ani centrovanie nezlepšilo kvalitu regresného modelu. Hodnoty R² ostali veľmi nízke a žiadna z premenných nebola štatisticky významná. To znamená, že zvolené regresory nedokážu vysvetliť variabilitu populácie krajín v roku 2025. Aj keď multikolinearita nezavádza bias, môže zvyšovať štandardné chyby koeficientov. V našom prípade však nebola prítomná, takže nezhoršovala výsledky modelu. Hlavným dôvodom nízkej výpovednej hodnoty modelu je to, že vysvetľujúce premenné jednoducho nie sú vhodné na predikciu populácie krajín.