Jedným z ďalších závažných porušení predpokladov klasického lineárneho regresného modelu je multikolinearita – situácia, keď sú vysvetľujúce premenné silne lineárne závislé. V našom prípade je to mimoriadne relevantné, keďže pracujeme s HDP veľkých čínskych provincií, ktoré: rastú podobným tempom, reagujú na rovnaké makroekonomické impulzy, sú súčasťou jednej integrovanej ekonomiky.
Je preto veľmi pravdepodobné, že medzi premennými Beijing, Shanghai, Jiangsu existuje silná korelácia.
V kontexte našich dát má multikolinearita nasledovné dôsledky: regresné koeficienty sú nestabilné, štandardné chyby sú nadhodnotené, p-hodnoty sú menej spoľahlivé, vplyvy jednotlivých provincií sa môžu „prekrývať“, model má vysoké R², ale nízku interpretačnú hodnotu pre jednotlivé koeficienty.
chinaGDP <- read.csv2("Chinas GDP in Province En.csv", header = TRUE, sep = ",", dec = ".")
rownames(chinaGDP) <- chinaGDP[,1]
chinaGDP <- chinaGDP[,-1]
# zoradenie
chinaGDP <- chinaGDP[order(as.numeric(rownames(chinaGDP))), ]
head(chinaGDP)regData <- data.frame(
Guangdong = chinaGDP$Guangdong,
Beijing = chinaGDP$Beijing,
Shanghai = chinaGDP$Shanghai,
Jiangsu = chinaGDP$Jiangsu
)
summary(regData)## Guangdong Beijing Shanghai Jiangsu
## Min. : 2448 Min. : 710.2 Min. : 1114 Min. : 2136
## 1st Qu.: 9290 1st Qu.: 2759.8 1st Qu.: 4222 1st Qu.: 7698
## Median : 25961 Median : 8387.0 Median :10599 Median : 21241
## Mean : 38963 Mean :12719.2 Mean :14671 Mean : 35371
## 3rd Qu.: 62503 3rd Qu.:21134.6 3rd Qu.:23204 3rd Qu.: 59349
## Max. :110761 Max. :36102.6 Max. :38701 Max. :102719
Guangdong je v sledovanom období jednoznačne najsilnejšou ekonomikou, zatiaľ čo Beijing a Shanghai vykazujú podobný rozsah HDP. Jiangsu sa postupne približuje výkonu Guangdongu, čo naznačuje konvergenciu najbohatších regiónov.
## Guangdong Beijing Shanghai Jiangsu
## Guangdong 1.0000000 0.9997788 0.9990354 0.9991969
## Beijing 0.9997788 1.0000000 0.9992225 0.9991148
## Shanghai 0.9990354 0.9992225 1.0000000 0.9974993
## Jiangsu 0.9991969 0.9991148 0.9974993 1.0000000
Korelácie medzi HDP provincií sú extrémne vysoké (takmer 1), čo indikuje, že ekonomiky regiónov sa pohybujú takmer identicky v čase. Ide o učebnicový príklad skoro dokonalej multikolinearity.
Použijeme pôvodný statický model:
##
## Call:
## lm(formula = Guangdong ~ Beijing + Shanghai + Jiangsu, data = regData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1652.60 -216.40 87.11 287.86 1468.64
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 329.7463 423.8004 0.778 0.44383
## Beijing 1.8140 0.5669 3.200 0.00372 **
## Shanghai 0.4392 0.3206 1.370 0.18291
## Jiangsu 0.2578 0.1109 2.324 0.02854 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 701 on 25 degrees of freedom
## Multiple R-squared: 0.9996, Adjusted R-squared: 0.9996
## F-statistic: 2.294e+04 on 3 and 25 DF, p-value: < 2.2e-16
Aj napriek extrémnej sile korelácií niektoré koeficienty vychádzajú ako štatisticky významné, iné nie. Tento rozpor nie je ekonomický, ale matematický dôsledok multikolinearity.
Najpoužívanejší ukazovateľ multikolinearity je Variance Inflation Factor (VIF):
## Loading required package: carData
## Beijing Shanghai Jiangsu
## 2440.2175 864.4868 759.2948
Hodnoty VIF vyššie ako 10 indikujú vážnu multikolinearitu. V mojom prípade ide o hodnoty rádovo v stovkách až tisíckach, čo znamená extrémne silnú multikolinearitu. To v praxi znamená: regresné koeficienty nemajú stabilný význam, malá zmena dát → veľká zmena koeficientov, znamienka sa môžu meniť, významnosť prestáva mať ekonomický význam.
Multikolinearita v tomto modeli nie je štatistická chyba, ale dôsledok reality. Všetky provincie: reagujú na rovnaké reformy, sú napojené na rovnaké obchodné toky, majú podobnú štruktúru rastu, sledujú spoločný trend čínskej ekonomiky.
Tento model nemožno interpretovať kauzálne. Môžeme ho používať len ako: deskriptívny model previazanosti regiónov, ilustráciu systémového rastu, nie ako dôkaz „kto ovplyvňuje koho“.
Multikolinearita v modeli HDP provincií Číny dosahuje extrémnu úroveň, čo poukazuje na vysokú mieru integrácie ekonomiky. Namiesto izolovaných efektov jednotlivých regiónov pozorujeme systémový rast. V takomto prostredí nie je vhodné interpretovať regresné koeficienty ako kauzálne účinky, ale ako prejav spoločného trendu ekonomického rozvoja.
##
## Call:
## lm(formula = Guangdong ~ Beijing + Shanghai + Jiangsu, data = regData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1652.60 -216.40 87.11 287.86 1468.64
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 329.7463 423.8004 0.778 0.44383
## Beijing 1.8140 0.5669 3.200 0.00372 **
## Shanghai 0.4392 0.3206 1.370 0.18291
## Jiangsu 0.2578 0.1109 2.324 0.02854 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 701 on 25 degrees of freedom
## Multiple R-squared: 0.9996, Adjusted R-squared: 0.9996
## F-statistic: 2.294e+04 on 3 and 25 DF, p-value: < 2.2e-16
Vo výsledkoch regresnej analýzy pozorujeme: extrémne vysokú hodnotu R2=0.9996 štatistickú významnosť Beijing a Jiangsu, štatistickú nevýznamnosť Shanghai, vysokú presnosť modelu, ale nízku interpretačnú hodnotu koeficientov.
Napriek veľmi vysokej vysvetľovacej schopnosti modelu nemožno jednotlivé koeficienty interpretovať ako kauzálne vplyvy. Ide o prejav spoločného trendu vývoja regionálnej ekonomiky.
Rádový rozdiel koeficientov medzi jednotlivými provinciami nie je dôsledkom ekonomického významu, ale matematickým dôsledkom silnej korelácie medzi vysvetľujúcimi premennými.
## Beijing Shanghai Jiangsu
## Beijing 1.000 0.999 0.999
## Shanghai 0.999 1.000 0.997
## Jiangsu 0.999 0.997 1.000
Hodnoty korelácií medzi vysvetľujúcimi premennými sú vyššie než 0.99, čo jednoznačne potvrdzuje extrémne silnú multikolinearitu. Vzhľadom na silnú ekonomickú previaznosť regiónov nie je možné vyradiť jednu provinciu len na základe korelácie, nakoľko by stratila ekonomický zmysel regresná analýza.
Z grafov je zrejmý takmer deterministický vzťah medzi HDP jednotlivých regiónov. Body tvoria takmer priamky, čo je charakteristickým znakom silnej lineárnej závislosti.
Korelačná analýza potvrdila extrémnu úroveň multikolinearity medzi vysvetľujúcimi premennými. Výsledný regresný model preto nemožno interpretovať ako kauzálny model, ale ako opis silnej regionálnej previazanosti čínskej ekonomiky.
## Beijing Shanghai Jiangsu
## 2440.2175 864.4868 759.2948
Hodnoty Variance Inflation Factor pre všetky vysvetľujúce premenné výrazne prekračujú kritické hranice. Výsledky jednoznačne potvrdzujú extrémnu multikolinearitu v modeli. Tieto výsledky odôvodňujú použitie dynamických modelov a robustných štandardných chýb a zároveň vylučujú interpretáciu modelu ako príčinného mechanizmu.
Takto vysoké VIF sú v praxi zriedkavé a poukazujú na takmer deterministickú koreláciu regresorov. Ide o vhodnú ilustráciu systémovej regionalizácie ekonomiky.
X <- model.matrix(model)[, -1]
XtX <- t(X) %*% X
eig <- eigen(XtX)
condition_number <- sqrt(max(eig$values) / min(eig$values))
condition_number## [1] 190.7865
Vypočítaná hodnota condition number je výrazne vyššia než hranica 100, čo indikuje extrémnu multikolinearitu v regresnom modeli. Spolu s výsledkami korelačnej matice a VIF ide o jednoznačný dôkaz, že regresory sú takmer lineárne závislé. Regresný model preto nemožno interpretovať ako súbor nezávislých vplyvov, ale ako opis jedného spoločného ekonomického trendu.
Jednou z najjednoduchších možností, ako znížiť multikolinearitu, je odstránenie jednej z vysoko korelovaných premenných. Na základe VIF vieme, že najviac problémové sú: Beijing, Shanghai, Jiangsu Skúsime preto postupne vynechať jednu provinciu a porovnávame zmeny v kvalite modelu.
##
## Call:
## lm(formula = Guangdong ~ Beijing + Jiangsu, data = regData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1791.5 -340.7 184.2 390.7 1278.5
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 832.26725 215.76154 3.857 0.000677 ***
## Beijing 2.49472 0.27736 8.995 1.84e-09 ***
## Jiangsu 0.18092 0.09728 1.860 0.074262 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 712.7 on 26 degrees of freedom
## Multiple R-squared: 0.9996, Adjusted R-squared: 0.9996
## F-statistic: 3.328e+04 on 2 and 26 DF, p-value: < 2.2e-16
## Beijing Jiangsu
## 565.0882 565.0882
##
## Call:
## lm(formula = Guangdong ~ Shanghai + Jiangsu, data = regData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1540.3 -425.9 42.9 335.0 2231.0
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -563.0788 371.3768 -1.516 0.142
## Shanghai 1.3384 0.1796 7.452 6.52e-08 ***
## Jiangsu 0.5623 0.0663 8.481 5.82e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 816.1 on 26 degrees of freedom
## Multiple R-squared: 0.9995, Adjusted R-squared: 0.9994
## F-statistic: 2.538e+04 on 2 and 26 DF, p-value: < 2.2e-16
## Shanghai Jiangsu
## 200.1917 200.1917
##
## Call:
## lm(formula = Guangdong ~ Beijing + Shanghai, data = regData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1770.37 -377.15 80.65 538.69 1447.36
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 595.76410 441.23736 1.350 0.189
## Beijing 2.94452 0.31475 9.355 8.34e-10 ***
## Shanghai 0.06235 0.29906 0.209 0.836
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 758 on 26 degrees of freedom
## Multiple R-squared: 0.9996, Adjusted R-squared: 0.9995
## F-statistic: 2.942e+04 on 2 and 26 DF, p-value: < 2.2e-16
## Beijing Shanghai
## 643.3751 643.3751
Zo zníženého modelu sa multikolinearita síce mierne znížila, avšak za cenu straty ekonomickej informácie. Keďže každá provincia reprezentuje jednu kľúčovú oblasť čínskej ekonomiky, vynechanie ktoréhokoľvek regiónu znamená aj stratu ekonomickej interpretácie.
Vynechávanie premenných nie je vhodné riešenie, pretože nedegraduje len multikolinearitu, ale aj ekonomický obsah modelu.
regData_scaled <- as.data.frame(scale(regData))
model_scaled <- lm(Guangdong ~ Beijing + Shanghai + Jiangsu,
data = regData_scaled)
summary(model_scaled)##
## Call:
## lm(formula = Guangdong ~ Beijing + Shanghai + Jiangsu, data = regData_scaled)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.047548 -0.006226 0.002506 0.008282 0.042255
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.110e-17 3.745e-03 0.000 1.00000
## Beijing 6.025e-01 1.883e-01 3.200 0.00372 **
## Shanghai 1.535e-01 1.121e-01 1.370 0.18291
## Jiangsu 2.441e-01 1.050e-01 2.324 0.02854 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02017 on 25 degrees of freedom
## Multiple R-squared: 0.9996, Adjusted R-squared: 0.9996
## F-statistic: 2.294e+04 on 3 and 25 DF, p-value: < 2.2e-16
## Beijing Shanghai Jiangsu
## 2440.2175 864.4868 759.2948
X <- model.matrix(model_scaled)[, -1]
XtX <- t(X) %*% X
eig <- eigen(XtX)
condition_number <- sqrt(max(eig$values) / min(eig$values))
condition_number## [1] 104.7951
Škálovanie výrazne zlepšilo Condition Number, avšak hodnoty VIF ostali vysoké. To znamená, že aj keď sa numerická stabilita modelu mierne zlepšila, základný problém multikolinearity medzi regiónmi zostáva.
Koeficienty už nemajú prirodzenú ekonomickú interpretáciu v pôvodných jednotkách (mld. jüanov).
regData$Beijing_1000 <- regData$Beijing / 1000
regData$Shanghai_1000 <- regData$Shanghai / 1000
regData$Jiangsu_1000 <- regData$Jiangsu / 1000
regData$Guangdong_1000 <- regData$Guangdong / 1000model_1000 <- lm(Guangdong_1000 ~ Beijing_1000 + Shanghai_1000 + Jiangsu_1000,
data = regData)
summary(model_1000)##
## Call:
## lm(formula = Guangdong_1000 ~ Beijing_1000 + Shanghai_1000 +
## Jiangsu_1000, data = regData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.65260 -0.21640 0.08711 0.28786 1.46864
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.3297 0.4238 0.778 0.44383
## Beijing_1000 1.8140 0.5669 3.200 0.00372 **
## Shanghai_1000 0.4392 0.3206 1.370 0.18291
## Jiangsu_1000 0.2578 0.1109 2.324 0.02854 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.701 on 25 degrees of freedom
## Multiple R-squared: 0.9996, Adjusted R-squared: 0.9996
## F-statistic: 2.294e+04 on 3 and 25 DF, p-value: < 2.2e-16
## Beijing_1000 Shanghai_1000 Jiangsu_1000
## 2440.2175 864.4868 759.2948
X <- model.matrix(model_1000)[, -1]
XtX <- t(X) %*% X
eig <- eigen(XtX)
condition_number <- sqrt(max(eig$values) / min(eig$values))
condition_number## [1] 190.7865
Prevod jednotiek nemení korelácie medzi premennými, ale zlepšuje numerickú stabilitu výpočtu. Koeficienty sú porovnateľné v rádoch veľkosti a model je prehľadnejší z hľadiska interpretácie.
Multikolinearitu v modeli HDP provincií Číny nebolo možné odstrániť bez straty ekonomického významu. Dôvodom je, že ide o štrukturálnu vlastnosť dát – všetky regióny rastú spoločne. Najvhodnejším riešením sa ukázala dynamizácia modelu a použitie robustných štandardných chýb.
Škálovanie a prevod jednotiek zlepšili numerickú stabilitu, ale neodstránili hlavnú príčinu – spoločný trend regionálneho rastu.