# Načítanie balíčkov a dát
library(readr)
library(dplyr)
library(ggplot2)
library(lmtest)
library(sandwich)
library(car)
library(tseries)
firmy <- read_csv("dataEKONOMETRIA.csv")
glimpse(firmy)
Rows: 53
Columns: 9
$ Nazov <chr> "Accenture, s.r.o.", "Beiersdorf Slovakia, s.r.o.", "Be…
$ Kategoria <dbl> 3, 1, 4, 5, 3, 4, 4, 3, 4, 4, 2, 4, 3, 4, 4, 3, 3, 3, 3…
$ Forma <chr> "sro", "sro", "sro", "sro", "as", "sro", "as", "sro", "…
$ ROE <dbl> 0.270192860, 0.293773272, 0.664287656, 0.095621306, 0.1…
$ ROA <dbl> 0.078790333, 0.080062193, 0.055303738, 0.036313948, 0.0…
$ EBIT <dbl> 1250080, 1072061, 12586000, 19677000, 8126000, 9582736,…
$ EBITDAmarza <dbl> 0.13899269, 0.03386505, 0.05668215, 0.08028712, 0.00000…
$ M <dbl> 1, 2, 6, 5, 6, 4, 7, 0, 10, 1, 6, 4, 8, 5, 3, 11, 2, 1,…
$ Z <dbl> 0, 1, 0, 3, 2, 0, 4, 2, 7, 0, 0, 0, 1, 2, 0, 2, 0, 1, 1…
summary(firmy)
Nazov Kategoria Forma ROE
Length:53 Min. :1.000 Length:53 Min. :-1.84304
Class :character 1st Qu.:2.000 Class :character 1st Qu.: 0.08053
Mode :character Median :3.000 Mode :character Median : 0.12639
Mean :3.057 Mean : 0.20327
3rd Qu.:4.000 3rd Qu.: 0.31271
Max. :5.000 Max. : 0.99781
ROA EBIT EBITDAmarza M
Min. :-0.16527 Min. : -790635 Min. :-0.04082 Min. : 0
1st Qu.: 0.02724 1st Qu.: 2008948 1st Qu.: 0.03528 1st Qu.: 2
Median : 0.06000 Median : 6643237 Median : 0.05559 Median : 4
Mean : 0.09227 Mean : 77168704 Mean : 0.11727 Mean : 6
3rd Qu.: 0.11555 3rd Qu.: 30844065 3rd Qu.: 0.13260 3rd Qu.: 9
Max. : 0.70448 Max. :932605000 Max. : 0.83243 Max. :23
Z
Min. :0.000
1st Qu.:0.000
Median :1.000
Mean :1.717
3rd Qu.:3.000
Max. :7.000
# Úprava údajov a vytvorenie odvodených premenných
firmy <- firmy %>%
mutate(
EBIT_num = as.numeric(gsub(",", "", EBIT)),
pocet_clenov = M + Z,
podiel_zien = Z / pocet_clenov,
podiel_muzov = M / pocet_clenov,
Kategoria = factor(Kategoria),
Forma = factor(Forma)
)
head(firmy)
NA
# Odhad základného regresného modelu pre ROE
model7_1 <- lm(ROE ~ podiel_zien + ROA + EBITDAmarza, data = firmy)
summary(model7_1)
Call:
lm(formula = ROE ~ podiel_zien + ROA + EBITDAmarza, data = firmy)
Residuals:
Min 1Q Median 3Q Max
-2.25674 -0.07073 -0.00477 0.05133 0.82942
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.05891 0.08947 0.658 0.5133
podiel_zien 0.21318 0.28974 0.736 0.4654
ROA 1.55811 0.50071 3.112 0.0031 **
EBITDAmarza -0.36215 0.41051 -0.882 0.3820
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4214 on 49 degrees of freedom
Multiple R-squared: 0.2117, Adjusted R-squared: 0.1634
F-statistic: 4.385 on 3 and 49 DF, p-value: 0.008219
V rozšírenom modeli pridáme do vysvetľujúcich premenných aj kategóriu a právnu formu podnikov.
# Rozšírený model s kategóriou a formou
model7_2 <- lm(ROE ~ podiel_zien + ROA + EBITDAmarza + Kategoria + Forma,
data = firmy)
summary(model7_2)
Call:
lm(formula = ROE ~ podiel_zien + ROA + EBITDAmarza + Kategoria +
Forma, data = firmy)
Residuals:
Min 1Q Median 3Q Max
-2.15800 -0.10117 -0.03845 0.10002 0.89147
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.233991 0.275110 -0.851 0.39963
podiel_zien 0.255261 0.301150 0.848 0.40124
ROA 1.812357 0.536228 3.380 0.00153 **
EBITDAmarza -0.550542 0.445212 -1.237 0.22280
Kategoria2 0.158131 0.249659 0.633 0.52976
Kategoria3 0.299437 0.245102 1.222 0.22833
Kategoria4 0.397898 0.254715 1.562 0.12542
Kategoria5 0.226616 0.380624 0.595 0.55464
Formasro 0.008296 0.142221 0.058 0.95375
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.4272 on 44 degrees of freedom
Multiple R-squared: 0.2726, Adjusted R-squared: 0.1403
F-statistic: 2.061 on 8 and 44 DF, p-value: 0.06081
# Porovnanie modelov pomocou ANOVA a AIC
anova(model7_1, model7_2)
Analysis of Variance Table
Model 1: ROE ~ podiel_zien + ROA + EBITDAmarza
Model 2: ROE ~ podiel_zien + ROA + EBITDAmarza + Kategoria + Forma
Res.Df RSS Df Sum of Sq F Pr(>F)
1 49 8.7017
2 44 8.0293 5 0.67244 0.737 0.5998
AIC(model7_1, model7_2)
# Posúdenie multikolinearity pomocou VIF
vif(model7_2)
GVIF Df GVIF^(1/(2*Df))
podiel_zien 1.183996 1 1.088116
ROA 1.432284 1 1.196781
EBITDAmarza 1.322205 1 1.149872
Kategoria 1.399007 4 1.042864
Forma 1.279913 1 1.131332
Hodnoty VIF pre všetky vysvetľujúce premenné sa pohybujú v intervale približne 1.04 až 1.43, čo sú veľmi nízke hodnoty. Bežné hranice pre posúdenie multikolinearity sú 5 (mierna kolinearita) a 10 (vážna kolinearita).
Na základe výsledkov môžeme konštatovať, že v rozšírenom modeli nie je prítomná multikolinearita medzi vysvetľujúcimi premennými. Premenné nie sú vzájomne silne závislé a neovplyvňujú negatívne stabilitu odhadu regresných koeficientov.
# Diagnostické grafy pre model7_1
par(mfrow = c(2, 2))
plot(model7_1)
par(mfrow = c(1, 1))
# Testy normality rezíduí
shapiro.test(residuals(model7_1))
Shapiro-Wilk normality test
data: residuals(model7_1)
W = 0.65623, p-value = 7.067e-10
jarque.bera.test(residuals(model7_1))
Jarque Bera Test
data: residuals(model7_1)
X-squared = 661.83, df = 2, p-value < 2.2e-16
# Test heteroskedasticity rezíduí (Breusch–Paganov test)
bptest(model7_1)
studentized Breusch-Pagan test
data: model7_1
BP = 4.9401, df = 3, p-value = 0.1762
# Koeficienty s robustnými smerodajnými chybami (Whiteova korekcia)
coeftest(model7_1, vcov = vcovHC(model7_1, type = "HC1"))
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.058906 0.079550 0.7405 0.46254
podiel_zien 0.213180 0.385813 0.5525 0.58308
ROA 1.558106 0.738731 2.1092 0.04006 *
EBITDAmarza -0.362146 0.227874 -1.5892 0.11844
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# Durbin–Watsonov test autokorelácie rezíduí
durbinWatsonTest(model7_1)
lag Autocorrelation D-W Statistic p-value
1 0.3252467 1.347163 0.018
Alternative hypothesis: rho != 0
# Vplyvné a odľahlé pozorovania podľa Cookovej vzdialenosti a páky
influencePlot(model7_1, main = "Vplyvné a odľahlé pozorovania")
cooks <- cooks.distance(model7_1)
vplyvne <- which(cooks > 4 * mean(cooks, na.rm = TRUE))
firmy[vplyvne, ]
Na základe výsledkov regresnej analýzy možno zhrnúť, že v modeli7_1 s ukazovateľom ROE ako závislou premennou:
Pri porovnaní modelov pomocou informačného kritéria AIC vychádza lepšie jednoduchší model model7_1 (AIC = 64.65) v porovnaní s rozšíreným model7_2 (AIC = 70.39). Zaradenie kategórie a právnej formy podnikov preto neprinieslo zlepšenie kvality modelu.
Výsledky testov diagnostiky ukázali, že:
Celkovo možno konštatovať, že najvhodnejším z analyzovaných modelov je jednoduchší model7_1, pričom kľúčovým vysvetľujúcim faktorom ROE je rentabilita aktív (ROA). Pri interpretácii výsledkov je však potrebné brať do úvahy zistené porušenia niektorých predpokladov lineárneho regresného modelu (najmä normalita a nezávislosť rezíduí). ## Test správnej špecifikácie modelu (RESET test)
resettest(model7_1)
RESET test
data: model7_1
RESET = 0.83936, df1 = 2, df2 = 47, p-value = 0.4384
RESET test skúma, či je model správne špecifikovaný. Ak je p-hodnota nízka, model obsahuje nelinearity alebo chýbajúce premenné. Na základe výsledkov môžeme vyhodnotiť, či je model7_1 správne špecifikovaný.
library(MASS)
boxcox(model7_1, lambda = seq(-2, 2, 0.1))
Error in boxcox.default(model7_1, lambda = seq(-2, 2, 0.1)) :
response variable must be positive
Box–Cox transformáciu nie je možné použiť, pretože závislá premenná ROE obsahuje aj záporné hodnoty. Box–Cox metóda vyžaduje striktne kladné hodnoty závislej premennej, preto výsledok nemožno vypočítať.
Z tohto dôvodu Box–Cox transformáciu v analýze nepoužijeme.
summary(firmy$ROE)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-1.84304 0.08053 0.12639 0.20327 0.31271 0.99781
resettest(model7_1)
RESET test
data: model7_1
RESET = 0.83936, df1 = 2, df2 = 47, p-value = 0.4384
V tomto cvičení sme analyzovali vplyv podielu žien vo vedení, ukazovateľa ROA a EBITDA marže na rentabilitu vlastného kapitálu (ROE) pre vybraný súbor 53 podnikov.
Na základe výsledkov regresného modelu môžeme zhrnúť nasledovné:
Pri porovnaní modelov pomocou AIC bol za vhodnejší označený jednoduchší model model7_1, keďže rozšírený model (s kategóriou a právnou formou podnikov) neviedol k zlepšeniu vysvetľovacej schopnosti.
Diagnostika modelu ukázala, že: - multikolinearita nie je prítomná (VIF < 2), - RESET test nepotvrdil chybnú špecifikáciu modelu, takže model je z hľadiska funkčnej formy nastavený správne, - heteroskedasticita nebola preukázaná, - Box–Cox transformáciu nebolo možné použiť, keďže premenná ROE obsahuje aj záporné hodnoty.
Celkovo možno konštatovať, že najvhodnejším modelom pre dané dáta je jednoduchý model7_1, pričom kľúčovým faktorom ovplyvňujúcim ROE je ukazovateľ ROA. Model je štatisticky prijateľný, aj keď vysvetľuje iba časť variability ROE, čo je typické pri finančných ukazovateľoch ovplyvňovaných širokým spektrom faktorov.