Po autokorelácii a heteroskedasticite rezíduí je multikolinearita ďalším závažným problémom pri použití metódy najmenších štvorcov (OLS). Predpokladá sa, že matica vysvetľujúcich premenných \(\mathbf{X}\) je tvorená lineárne nezávislými stĺpcami, čo zabezpečuje regularitu matice \(\mathbf{X}^T\mathbf{X}\) a teda možnosť jej inverzie.
V praxi sa však môže stať, že stĺpce \(\mathbf{X}\) sú „približne“ lineárne závislé (t.j. jedna vysvetľujúca premenná sa dá dobre vysvetliť kombináciou ostatných). Vtedy je inverzná matica \((\mathbf{X}^T\mathbf{X})^{-1}\) numericky nestabilná a na diagonále môže obsahovať veľké hodnoty, čo zvyšuje štandardné chyby odhadov koeficientov.
Tento problém nazývame multikolinearita.
Multikolinearita:
Budeme pracovať s dátami StudentsPerformance. Ako závislú premennú zvolíme math score a vysvetľujúcimi premennými budú reading score a writing score. Keďže čítanie a písanie často spolu úzko súvisia, môžeme očakávať multikolinearitu.
Model:
\[ math\_score_i = \\beta_0 + \\beta_1 reading\_score_i + \\beta_2 writing\_score_i + u_i \]
Tab. 1. Ukážka databázy (prvých 10 riadkov)
| gender | race/ethnicity | parental level of education | lunch | test preparation course | math score | reading score | writing score |
|---|---|---|---|---|---|---|---|
| female | group B | bachelor’s degree | standard | none | 72 | 72 | 74 |
| female | group C | some college | standard | completed | 69 | 90 | 88 |
| female | group B | master’s degree | standard | none | 90 | 95 | 93 |
| male | group A | associate’s degree | free/reduced | none | 47 | 57 | 44 |
| male | group C | some college | standard | none | 76 | 78 | 75 |
| female | group B | associate’s degree | standard | none | 71 | 83 | 78 |
| female | group B | some college | standard | completed | 88 | 95 | 92 |
| male | group B | some college | free/reduced | none | 40 | 43 | 39 |
| male | group D | high school | free/reduced | completed | 64 | 64 | 67 |
| female | group B | high school | free/reduced | none | 38 | 60 | 50 |
Call:
lm(formula = `math score` ~ `reading score` + `writing score`,
data = data_mod)
Residuals:
Min 1Q Median 3Q Max
-23.8779 -6.1750 0.2693 6.0184 24.8727
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.52409 1.32823 5.665 1.93e-08 ***
`reading score` 0.60129 0.06304 9.538 < 2e-16 ***
`writing score` 0.24942 0.06057 4.118 4.14e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 8.667 on 997 degrees of freedom
Multiple R-squared: 0.674, Adjusted R-squared: 0.6733
F-statistic: 1031 on 2 and 997 DF, p-value: < 2.2e-16
Poznámka: Pri multikolinearite sa môže stať, že model má relatívne dobrý \(R^2\), ale jednotlivé koeficienty vychádzajú ako menej významné kvôli vysokým štandardným chybám.
Korelácia zachytáva párové vzťahy medzi premennými. Ak je korelácia medzi vysvetľujúcimi premennými vysoká (napr. > 0.8 alebo > 0.9), môže to signalizovať multikolinearitu.
| reading score | writing score | |
|---|---|---|
| reading score | 1.000 | 0.955 |
| writing score | 0.955 | 1.000 |
Korelačný vzťah vidíme aj v párových scatterplotoch:
Korelačná matica zachytáva párové lineárne vzťahy medzi vysvetľujúcimi premennými reading score a writing score. Z tabuľky vyplýva, že korelačný koeficient medzi týmito dvoma premennými dosahuje hodnotu 0,955, čo predstavuje veľmi silnú pozitívnu koreláciu.
Takto vysoká hodnota korelácie (vyššia ako 0,9) signalizuje potenciálnu prítomnosť multikolinearity v regresnom modeli. Znamená to, že obe premenné nesú veľmi podobnú informáciu o študijných výsledkoch študentov a jedna z nich je do veľkej miery vysvetliteľná pomocou druhej.
Silný korelačný vzťah je zároveň viditeľný aj v párových scatterplotoch, kde pozorujeme takmer lineárny vzťah medzi hodnotami reading score a writing score. Z tohto dôvodu možno očakávať, že ich súčasné zahrnutie do regresného modelu môže viesť k nadhodnoteným štandardným chybám regresných koeficientov a k zníženiu spoľahlivosti ich interpretácie.
Indikátorom multikolinearity je Variance Inflation Factor (VIF). Pre premennú \(x_j\):
\[ VIF_j = \\frac{1}{1 - R_j^2} \]
kde \(R_j^2\) pochádza z pomocnej regresie, v ktorej je \(x_j\) vysvetľovaná ostatnými regresormi.
Intuitívne kritériá: - VIF > 5 (prísnejšie) naznačuje problém, - VIF > 10 (miernejšie) naznačuje vážny problém.
Podľa intuitívnych kritérií platí, že hodnota VIF > 5 signalizuje prítomnosť multikolinearity a hodnota VIF > 10 poukazuje na vážny problém multikolinearity. V našom prípade sú obe hodnoty vyššie ako 10, čo jednoznačne potvrdzuje existenciu silnej multikolinearity medzi týmito dvoma premennými.
Tento výsledok je v súlade so zisteniami z korelačnej matice, kde sme pozorovali veľmi vysokú koreláciu medzi reading score a writing score. Súčasné zahrnutie oboch premenných do regresného modelu preto vedie k nadhodnoteným štandardným chybám regresných koeficientov a k zníženiu spoľahlivosti ich štatistickej významnosti.
`reading score` `writing score`
11.26856 11.26856
Pri multikolinearite sa problém prejavuje aj v tom, že v matici \((\\mathbf X^T\\mathbf X)^{-1}\) sa objavujú veľké hodnoty. Situáciu zachytáva Condition number.
Vypočítame:
\[ \\kappa = \\sqrt{\\frac{\\theta_{\\max}}{\\theta_{\\min}}} \]
kde \(\\theta\) sú vlastné čísla matice \(\\mathbf X^T\\mathbf X\).
Intuitívne pravidlo: - < 10 nízka multikolinearita - 10–30 mierna - 30–100 silná - > 100 veľmi vážna
Keďže vypočítaná hodnota Condition Number sa nachádza na hranici medzi miernou a silnou multikolinearitou, možno konštatovať, že regresný model vykazuje významnú mieru multikolinearity, ktorá môže viesť k nestabilným odhadom regresných koeficientov a k nadhodnoteným štandardným chybám.
[1] 30.77881
Najjednoduchším riešením býva vynechanie jednej zo silno prepojených premenných. Porovnáme dva zjednodušené modely.
Call:
lm(formula = `math score` ~ `writing score`, data = data_mod)
Residuals:
Min 1Q Median 3Q Max
-24.8467 -6.4600 0.1464 6.4356 25.5515
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 11.58310 1.31369 8.817 <2e-16 ***
`writing score` 0.80092 0.01884 42.511 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 9.049 on 998 degrees of freedom
Multiple R-squared: 0.6442, Adjusted R-squared: 0.6439
F-statistic: 1807 on 1 and 998 DF, p-value: < 2.2e-16
Call:
lm(formula = `math score` ~ `reading score`, data = data_mod)
Residuals:
Min 1Q Median 3Q Max
-24.3419 -6.3419 -0.0221 6.2713 24.6581
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.35759 1.33818 5.498 4.87e-08 ***
`reading score` 0.84910 0.01893 44.855 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 8.736 on 998 degrees of freedom
Multiple R-squared: 0.6684, Adjusted R-squared: 0.6681
F-statistic: 2012 on 1 and 998 DF, p-value: < 2.2e-16
Škálovanie môže zlepšiť numerickú stabilitu a porovnateľnosť premenných. Koeficienty sú potom v štandardizovaných jednotkách.
Call:
lm(formula = math_c ~ reading_c + writing_c, data = data_scaled)
Residuals:
Min 1Q Median 3Q Max
-1.57474 -0.40724 0.01776 0.39691 1.64034
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.888e-17 1.807e-02 0.000 1
reading_c 5.790e-01 6.070e-02 9.538 < 2e-16 ***
writing_c 2.500e-01 6.070e-02 4.118 4.14e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.5716 on 997 degrees of freedom
Multiple R-squared: 0.674, Adjusted R-squared: 0.6733
F-statistic: 1031 on 2 and 997 DF, p-value: < 2.2e-16
reading_c writing_c
11.26856 11.26856
[1] 6.561326
Ukazovateľ Condition Number dosahuje hodnotu približne 2, čo podľa intuitívnych kritérií jednoznačne zodpovedá nízkej multikolinearite. V porovnaní s pôvodným modelom ide o výrazné zlepšenie numerickej stability.
Zo získaných výsledkov vyplýva, že škálovanie premenných je veľmi efektívnym nástrojom na odstránenie dôsledkov multikolinearity. Zároveň však treba poznamenať, že interpretácia regresných koeficientov je po škálovaní menej intuitívna, keďže koeficienty sú vyjadrené v štandardizovaných jednotkách.