library(lmtest)
library(car)
library(tseries)
library(dplyr)
udaje <- read.csv2("udaje/DatasetESGandFirmPerformance.csv", header=TRUE, sep=";", dec=".")
# skratenie nazvov premennych a odstranenie nealfanumerickcy znakov
library(janitor)
##
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
udaje <- udaje %>%
clean_names()
# vypiseme nove nazvy premennych
colnames(udaje)
## [1] "years" "companies"
## [3] "exchange_sector" "primary_business"
## [5] "tobin_q" "market_capitalization"
## [7] "return_on_assets" "debt_to_asset"
## [9] "firm_size" "social_disclosure_index"
## [11] "environmental_disclosure_index" "governance_disclosure_index"
## [13] "esg_index"
library(dplyr)
udaje <- udaje %>%
rename(
market_cap = market_capitalization,
ROA = return_on_assets,
DEBT = debt_to_asset,
SIZE = firm_size,
SDI = social_disclosure_index,
EDI = environmental_disclosure_index,
GDI = governance_disclosure_index,
ESG = esg_index
)
# Ak premenne DEBT, ROA, market__cap, SIZE, SDI, EDI, GDI obsahujú nečíslené znaky (napríklad tisíce oddelené čiarkou), je potrebné tieto znaky odstrániť a převést hodnoty na numerické. Môžeme použiť funkciu *gsub()* na odstranenie nežiaducich znakov a následne převést na numerické hodnoty.
udaje <- udaje %>%
mutate(
DEBT = as.numeric(gsub(",", "", DEBT)),
ROA = as.numeric(gsub(",", "", ROA)),
market_cap = as.numeric(gsub(",", "", market_cap)),
SIZE = as.numeric(gsub(",", "", SIZE)),
SDI = as.numeric(gsub(",", "", SDI)),
EDI = as.numeric(gsub(",", "", EDI)),
GDI = as.numeric(gsub(",", "", GDI))
)
# vyber len rok 2013
#udaje <- udaje %>%
# filter(years == 2022)
# regresia
model <- lm(ESG ~ ROA + SIZE + DEBT, data = udaje)
# urob summary model ale bez vypisovania rezidualov a vyrovnanych hodnot
summary(model)
##
## Call:
## lm(formula = ESG ~ ROA + SIZE + DEBT, data = udaje)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.30540 -0.08425 -0.01449 0.07011 0.55550
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.514e-01 3.707e-02 -9.479 < 2e-16 ***
## ROA -1.136e-06 1.081e-05 -0.105 0.91629
## SIZE 9.069e-02 4.963e-03 18.273 < 2e-16 ***
## DEBT -2.785e-04 1.019e-04 -2.732 0.00644 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1209 on 756 degrees of freedom
## Multiple R-squared: 0.3209, Adjusted R-squared: 0.3182
## F-statistic: 119.1 on 3 and 756 DF, p-value: < 2.2e-16
Uvažujeme lineárny regresný model, v ktorom vysvetľujeme hodnotu ESG indexu pomocou ziskovosti, veľkosti firmy a zadlženosti. ESG (Environmental, Social, Governance) predstavuje ukazovateľ, ktorý hodnotí správanie firmy z pohľadu ochrany životného prostredia, sociálnej zodpovednosti a kvality riadenia.
Model má tvar \(ESG_i = \beta_0 + \beta_1 ROA_i + \beta_2 SIZE_i + \beta_3 DEBT_i + \varepsilon_i\). Očakávame, že ziskovosť (ROA) bude mať pozitívny vplyv (\(\beta_1 > 0\)), keďže ziskovejšie firmy majú viac zdrojov na ESG aktivity. Rovnako predpokladáme pozitívny vplyv veľkosti firmy (\(\beta_2 > 0\)), pretože väčšie firmy sú viac pod verejným a regulačným tlakom a častejšie implementujú ESG štandardy. Naopak, pri zadlženosti očakávame skôr negatívny vzťah (\(\beta_3 < 0\)), keďže zadlžené firmy sú finančne obmedzené a ESG investície môžu odkladať.
Graf Residuals vs Fitted slúži na posúdenie linearity modelu a približnej konštantnosti rozptylu rezíduí. Reziduály by mali byť rozložené náhodne okolo nulovej hodnoty bez výrazného systematického vzoru. Ak sa objaví zakrivenie červenej vyhladzovacej čiary,1 môže to naznačovať nelinearitu vo vzťahu medzi závislou a vysvetľujúcimi premennými. Ak sa body rozširujú alebo zužujú v tvare lievika, môže ísť o heteroskedasticitu.
plot(model, which = 1)
Residuals vs Fitted
Reziduály sú rozložené približne okolo nulovej hodnoty, čo naznačuje, že model ako celok nemá výrazné systematické skreslenie v predikciách. Väčšina bodov sa nachádza v relatívne úzkom pásme okolo nuly, čo je priaznivý znak.
Na druhej strane, červená vyhladzovacia (LOESS) krivka má mierne zakrivený tvar – v strednej časti klesá pod nulu a následne opäť rastie. Tento priebeh naznačuje možnú nelinearitu vo vzťahu medzi vysvetľujúcimi premennými a závislou premennou, čo znamená, že lineárny model nemusí úplne presne zachytiť skutočný vzťah.
Z hľadiska rozptylu rezíduí možno pozorovať, že variancia je približne konštantná, hoci pri vyšších hodnotách fitted sa zdá byť mierne väčšia. Tento efekt však nie je výrazný, takže predpoklad homoskedasticity nie je zásadne porušený.
V grafe sa zároveň nachádza niekoľko bodov s vyššími rezíduami (napr. označené pozorovania), ktoré môžu predstavovať potenciálne odľahlé alebo vplyvné pozorovania. Tieto by bolo vhodné ďalej preskúmať, napríklad pomocou Cookovej vzdialenosti alebo testu na odľahlé hodnoty.
Celkovo možno konštatovať, že model je relatívne dobre špecifikovaný, avšak existujú náznaky miernej nelinearity a prítomnosti niekoľkých extrémnejších pozorovaní.
Q-Q graf porovnáva rozdelenie štandardizovaných rezíduí s teoretickým normálnym rozdelením. Ak body ležia približne na priamke, predpoklad normality rezíduí je približne splnený. Výraznejšie odchýlky na krajoch naznačujú možné problémy s extrémnymi hodnotami alebo s ťažšími koncami rozdelenia.
plot(model, which = 2)
Normal Q-Q plot
Q-Q graf porovnáva empirické rozdelenie štandardizovaných rezíduí s teoretickým normálnym rozdelením. V prípade splnenia predpokladu normality by mali body ležať približne na diagonálnej priamke.
V našom prípade väčšina bodov v strednej časti grafu leží pomerne blízko priamky, čo naznačuje, že pre väčšinu pozorovaní je predpoklad normality približne splnený. To je priaznivý výsledok, keďže centrálna časť rozdelenia rezíduí sa správa podobne ako normálne rozdelenie.
Na druhej strane, na pravom konci grafu (pri vysokých kvantiloch) dochádza k výraznému odchýleniu bodov nad referenčnú priamku. To znamená, že pravý chvost rozdelenia je „ťažší“, než by sme očakávali pri normálnom rozdelení, teda v dátach sa nachádzajú extrémnejšie kladné reziduály. Niektoré konkrétne pozorovania (napr. označené body) sa odchyľujú výraznejšie, čo naznačuje prítomnosť odľahlých hodnôt.
Aj na ľavej strane sú viditeľné mierne odchýlky, avšak menej výrazné ako na pravej strane. Celkovo teda možno konštatovať, že normalita rezíduí nie je úplne splnená, najmä kvôli extrémnym hodnotám v pravom chvoste rozdelenia.
Z praktického hľadiska to znamená, že inferenčné štatistické testy založené na normalite môžu byť čiastočne ovplyvnené, avšak vzhľadom na relatívne dobré správanie v strednej časti rozdelenia nemusí ísť o zásadný problém, najmä pri väčších vzorkách.
Scale-Location graf sa používa na posúdenie homoskedasticity, teda konštantnosti rozptylu rezíduí. Ak sú body rozložené približne rovnomerne a červená čiara je relatívne vodorovná, ide o priaznivý výsledok. Systematický rast alebo pokles naznačuje, že rozptyl rezíduí sa mení s úrovňou predikovaných hodnôt.
plot(model, which = 3)
Scale-Location plot
Scale-Location graf slúži na posúdenie homoskedasticity, teda konštantnosti rozptylu rezíduí v závislosti od vyrovnaných hodnôt. Na osi x sa nachádzajú fitted values a na osi y druhá odmocnina absolútnych štandardizovaných rezíduí.
V našom prípade sú body rozptýlené relatívne rovnomerne, avšak červená vyhladzovacia krivka má mierne rastúci trend. To naznačuje, že s rastúcimi fitted hodnotami sa mierne zvyšuje aj variabilita rezíduí. Ide teda o náznak slabej heteroskedasticity.
Tento efekt však nie je výrazný – nevzniká typický „lievikovitý“ tvar, ktorý by signalizoval silné porušenie predpokladu konštantného rozptylu. Väčšina bodov sa nachádza v podobnom rozsahu hodnôt, čo naznačuje, že predpoklad homoskedasticity je porušený len mierne.
V grafe sa zároveň objavujú niektoré pozorovania s vyššími hodnotami (napr. označené body), ktoré môžu predstavovať extrémnejšie reziduály, avšak nejde o systematický jav.
Celkovo možno konštatovať, že model vykazuje mierne známky heteroskedasticity, avšak nejde o závažné porušenie predpokladov lineárneho regresného modelu.
Graf Residuals vs Leverage pomáha identifikovať vplyvné pozorovania. Leverage to predstavuje vzialenosť daného pozorovania všetkých vysvetľujúcich premenných (teda vektora) od ostatných, resp. od stredného vektora všetkych pozorovaní. Títo vzdialenosť je normovaná na interval (0,1) a väčšina pozorovaní má veľmi malý leverage. Ak sa vyskytujú pozorovania s vysokým leverage, identifikujeme ich na vodorovnej osi a môžu znamenať potenciálne nebezpečenstvo v skreslení parametrov vyrovnávajúcej nadroviny (teda odhadovaných \(\beta\) koeficientov). Pozorovania s vysokou hodnotou leverage a súčasne veľkými rezíduami môžu môžu spôsobovať tento problém. Ak sa niektoré body nachádzajú blízko alebo za krivkami Cookovej vzdialenosti, je vhodné ich podrobnejšie preskúmať.
plot(model, which = 5)
Residuals vs Leverage
V našom prípade väčšina pozorovaní má veľmi nízku hodnotu leverage a je sústredená blízko ľavej časti grafu, čo je typické a naznačuje, že väčšina dát je dobre vyvážená. Tieto pozorovania zároveň nevykazujú extrémne rezíduá.
Na druhej strane sa v grafe nachádza jedno výrazné pozorovanie s veľmi vysokou hodnotou leverage (vpravo), ktoré má zároveň pomerne veľké záporné rezíduum. Takéto pozorovanie môže byť potenciálne vplyvné, pretože sa nachádza ďaleko od ostatných dát v priestore vysvetľujúcich premenných a môže významne ovplyvniť odhad regresnej priamky.
Okrem toho možno vidieť aj niekoľko bodov s mierne vyššími rezíduami (napr. označené pozorovania), avšak ich leverage nie je extrémne vysoká, takže ich celkový vplyv na model je pravdepodobne obmedzený.
Kontúry Cookovej vzdialenosti naznačujú mieru vplyvu jednotlivých pozorovaní. Žiadny bod zjavne neprekračuje najvyššie hranice (napr. hodnotu 1), čo znamená, že model nie je dramaticky ovplyvnený jedným extrémnym pozorovaním. Napriek tomu by bolo vhodné detailnejšie preskúmať pozorovanie s vysokou leverage, napríklad pomocou Cookovej vzdialenosti alebo diagnostických testov.
Celkovo možno konštatovať, že model neobsahuje výrazne problematické vplyvné pozorovania, avšak existuje jeden potenciálne rizikový bod, ktorému je vhodné venovať dodatočnú pozornosť. Hodnoty Leverage ako aj Cookove vzdialenosti súvisia úzko s tzv Hat maticou.
shapiro.test(residuals(model))
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.95075, p-value = 3.068e-15
Shapiro-Wilkov test overuje nulovú hypotézu, že reziduály pochádzajú z normálneho rozdelenia. Ak je p-hodnota menšia než zvolená hladina významnosti (napríklad 0.05), nulovú hypotézu zamietame a usudzujeme, že reziduály nie sú normálne rozdelené.
jarque.bera.test(residuals(model))
##
## Jarque Bera Test
##
## data: residuals(model)
## X-squared = 233.73, df = 2, p-value < 2.2e-16
Jarque-Bera test je ďalší test normality, ktorý je založený na šikmosti a špicatosti rezíduí. Malá p-hodnota signalizuje porušenie predpokladu normálneho rozdelenia.
# Spočítaj mi počet NA v jednotlivých stĺpcoch databázy udaje %>% summarise_all(~ sum(is.na(.)))
udaje %>% summarise_all(~ sum(is.na(.)))
## years companies exchange_sector primary_business tobin_q market_cap ROA DEBT
## 1 0 0 0 0 0 0 0 0
## SIZE SDI EDI GDI ESG
## 1 0 0 0 0 0
bptest(model)
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 13.618, df = 3, p-value = 0.003475
Breusch-Pagan test skúma nulovú hypotézu homoskedasticity, teda konštantného rozptylu rezíduí. Ak je p-hodnota malá, nulovú hypotézu zamietame a usudzujeme, že v modeli je prítomná heteroskedasticita.
bptest(model, ~ fitted(model) + I(fitted(model)^2))
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 16.133, df = 2, p-value = 0.0003138
Táto verzia testu rozširuje Breusch-Paganov prístup a umožňuje zachytiť aj zložitejšie formy heteroskedasticity.
dwtest(model)
##
## Durbin-Watson test
##
## data: model
## DW = 0.55839, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
Durbin-Watson test skúma nulovú hypotézu, že reziduály nie sú autokorelované prvého rádu. Hodnota testovej štatistiky blízka 2 naznačuje neprítomnosť autokorelácie. Hodnoty výrazne nižšie než 2 naznačujú kladnú autokoreláciu a hodnoty výrazne vyššie než 2 zápornú autokoreláciu.
bgtest(model, order = 1)
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: model
## LM test = 394.87, df = 1, p-value < 2.2e-16
Breusch-Godfrey test skúma prítomnosť autokorelácie rezíduí. Je všeobecnejší než Durbin-Watson test a umožňuje testovať aj vyššie rády autokorelácie. Ak je p-hodnota malá, nulovú hypotézu o neprítomnosti autokorelácie zamietame.
outlierTest(model)
## rstudent unadjusted p-value Bonferroni p
## 620 4.661016 3.7195e-06 0.0028268
## 40 4.378924 1.3610e-05 0.0103440
Tento test pomáha identifikovať pozorovania s mimoriadne veľkými štandardizovanými rezíduami.
cd <- cooks.distance(model)
head(sort(cd, decreasing = TRUE), 10)
## 163 744 745 570 569 568
## 2.621662738 0.036907241 0.031718401 0.020948395 0.019364764 0.018784096
## 743 20 100 70
## 0.013321052 0.013093040 0.011188341 0.009669646
Cookova vzdialenosť meria, nakoľko jednotlivé pozorovanie ovplyvňuje odhad regresných koeficientov. Väčšie hodnoty si zaslúžia dodatočnú pozornosť.
Štandardizované rezíduá sú rezíduá vydelené ich odhadovanou smerodajnou odchýlkou, vďaka čomu sú medzi sebou porovnateľné a pri splnení predpokladov modelu sa správajú približne ako hodnoty zo štandardného normálneho rozdelenia.
Leverage vyjadruje, ako veľmi sa pozorovanie líši v hodnotách vysvetľujúcich premenných od ostatných a aký potenciál má ovplyvniť odhad regresného modelu. Formálne ide o diagonálne prvky tzv. hat matice, pričom hat matica je definovaná ako \(H = X(X'X)^{-1}X'\) a platí \(\hat{y} = Hy\).
Pre i-te pozorovanie je leverage daný vzťahom \(h_i = x_i(X'X)^{-1}x_i^T\), kde \(x_i\) je riadkový vektor vysvetľujúcich premenných pre i-te pozorovanie.
Pri interpretácii diagnostických testov je vhodné kombinovať grafické a formálne prístupy. Diagnostické grafy často odhalia problém intuitívne, zatiaľ čo testy poskytujú formálnejšie štatistické rozhodnutie. Pri väčších vzorkách môžu byť testy veľmi citlivé, preto je rozumné posudzovať aj ekonomický a praktický význam zistených porušení predpokladov.
LOESS (LOcal regrESSion) krivka predstavuje lokálne vyhladený trend medzi premennými bez predpokladu konkrétneho funkčného tvaru. Slúži na vizuálnu identifikáciu systematických odchýlok od náhodného rozloženia rezíduí. Ak je približne horizontálna, model je špecifikovaný vhodne; ak sa zakrivuje, môže to naznačovať nelinearitu alebo iný problém v modeli.↩︎