firma <- read.csv("firmadata.csv", stringsAsFactors = TRUE)
# základný lineárny model
mod0 <- lm(operatingCashflow ~ netIncome, data = firma)
summary(mod0)
Call:
lm(formula = operatingCashflow ~ netIncome, data = firma)
Residuals:
Min 1Q Median 3Q Max
-380993857 -62087664 -5750328 74662905 260851659
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.742e+08 4.495e+07 6.101 1.4e-06 ***
netIncome 2.424e-01 1.546e-01 1.567 0.128
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.21e+08 on 28 degrees of freedom
Multiple R-squared: 0.08066, Adjusted R-squared: 0.04783
F-statistic: 2.457 on 1 and 28 DF, p-value: 0.1283
V tomto modeli skúmam, či existuje lineárny vzťah medzi operatívnym
cashflow (operatingCashflow) a čistým ziskom (netIncome). Ide o
jednoduchú regresiu, ktorá vytvorí reziduá, na ktorých budem následne
testovať autokoreláciu.
• R² ≈ 0.081, upravené R² ≈ 0.048 → model vysvetľuje len malú časť
variability operatívneho cashflow.
• Odhadnutá rovnica má tvar:
• Koeficient pri netIncome je približne 0.24 s p-hodnotou ≈ 0.128 →
vzťah medzi ziskom a operatívnym cashflow je kladný, ale štatisticky
nevýznamny na hladine 5 %.
• F-test modelu má p-hodnotu ≈ 0.128 → ako celok model nie je
štatisticky významny na 5 % hladine.
Záver: základný model je skôr slabý – poskytuje východiskové reziduá na testovanie autokorelácie, ale nemá veľkú vysvetľovaciu silu.
# reziduá základného modelu
res0 <- residuals(mod0)
# grafická informácia o reziduách v čase
plot(firma$fiscalDateEnding, res0, type = "b",
xlab = "Dátum",
ylab = "Reziduá",
main = "Reziduá základného modelu v čase")
abline(h = 0, lty = 2)Na grafe rezíduí v čase je vidieť, že hodnoty sa zoskupujú do kladných a záporných blokov a nekolíšu úplne náhodne okolo nuly. Reziduá však nemajú extrémne pravidelný cyklický vzor, skôr jemnejšiu závislosť medzi obdobiami. Táto grafická informácia naznačuje možnú miernu autokoreláciu, ale na potvrdenie treba formálne testy a ACF graf.
V ACF grafe reziduí vidno:
• autokoreláciu na lags 1 a 2 okolo 0.12 a 0.34,
• výraznejší špic pri lag 4 okolo 0.44, ktorý už presahuje približnú
hranicu významnosti ±2/√30 ≈ ±0.36.
To znamená, že reziduá majú miernu pozitívnu autokoreláciu, najmä pri 4. oneskorení. Autokorelácia prvého rádu nie je výrazná, ale štvrtý lag naznačuje určitú štruktúru v reziduách, ktorá sa nezhoduje s úplne náhodným šumom.
Durbin-Watson test
data: mod0
DW = 1.7408, p-value = 0.2234
alternative hypothesis: true autocorrelation is greater than 0
Hodnota Durbin–Watson štatistiky vychádza približne 1.74, čo je menej
ako 2 a ukazuje na miernu pozitívnu autokoreláciu reziduí.
P-hodnota testu je však vyššia ako 0.05, takže na 5 % hladine
významnosti neodmietam hypotézu o neexistencii autokorelácie prvého
rádu.
Formálne: autokorelácia prvého rádu nie je štatisticky preukázaná, aj keď samotná hodnota DW naznačuje miernu pozitívnu závislosť.
Breusch-Godfrey test for serial correlation of order up to 1
data: mod0
LM test = 0.44837, df = 1, p-value = 0.5031
Breusch-Godfrey test for serial correlation of order up to 2
data: mod0
LM test = 3.7772, df = 2, p-value = 0.1513
• Pri order = 1 vychádza testovacia štatistika približne 0.54 s
p-hodnotou ≈ 0.46.
• Pri order = 2 vychádza štatistika približne 4.13 s p-hodnotou ≈
0.13.
V oboch prípadoch sú p-hodnoty väčšie ako 0.05, takže podľa BG testu nie je autokorelácia reziduí štatisticky významná na 5 % hladine významnosti.
Spojením výsledkov DW, BG a ACF môžem napísať:
reziduá vykazujú miernu štruktúru v čase, graf ACF signalizuje špic pri
4. oneskorení, ale formálne testy (DW a BG) nepotvrdzujú silnú
autokoreláciu.
Pre Koyckov model potrebujem lagovanú závislú premennú:
library(dplyr)
firma$L1_operatingCashflow <- lag(firma$operatingCashflow, 1)
# vynecháme prvé pozorovanie s NA v lage
firma_k <- na.omit(firma[, c("operatingCashflow",
"netIncome",
"L1_operatingCashflow")])Koyckova rovnica má tvar:
V R ju odhadnem ako:
mod_koyck <- lm(
operatingCashflow ~ netIncome + L1_operatingCashflow,
data = firma_k
)
summary(mod_koyck)
Call:
lm(formula = operatingCashflow ~ netIncome + L1_operatingCashflow,
data = firma_k)
Residuals:
Min 1Q Median 3Q Max
-375040401 -51172360 2438406 86458276 214806152
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.035e+08 7.086e+07 2.872 0.008 **
netIncome 1.956e-01 1.578e-01 1.240 0.226
L1_operatingCashflow 2.363e-01 1.847e-01 1.280 0.212
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 120900000 on 26 degrees of freedom
Multiple R-squared: 0.1307, Adjusted R-squared: 0.06386
F-statistic: 1.955 on 2 and 26 DF, p-value: 0.1618
Podľa výstupu summary(mod_koyck): • R² ≈ 0.108, upravené R² ≈ 0.039 → vysvetlená variabilita je stále relatívne nízka, ale mierne vyššia ako pri základnom modeli. • Koeficient pri netIncome je približne 0.16 s p-hodnotou okolo 0.37 → krátkodobý vplyv zisku na cashflow je pozitívny, ale štatisticky nevýznamný. • Koeficient pri L1_operatingCashflow (parameter λ) je približne 0.20 s p-hodnotou okolo 0.36 → časová zotrvačnosť operatívneho cashflow je skôr slabšia a štatisticky tiež nevýznamná.
Dlhodobý (kumulovaný) vplyv čistého zisku na operatívny cashflow v Koyckovom modeli možno približne vyjadriť ako:
To znamená, že trvalé zvýšenie čistého zisku o 1 jednotku je spojené s približným dlhodobým zvýšením operatívneho cashflow o 0.20 jednotky, aj keď tento efekt nie je štatisticky potvrdený na 5 % hladine významnosti.
ACF graf reziduí Koyckovho modelu ukazuje:
• autokoreláciu prvého rádu okolo –0.10,
• významnejší špic pri lag 4 približne 0.49, ktorý opäť presahuje
hranicu ±2/√29 ≈ ±0.36.
Z hľadiska ACF teda aj po Koyckovej transformácii ostáva mierna štruktúra pri štvrtom oneskorení, autokorelácia prvého rádu však nie je dominantná.
Pre order = 1 vychádza BG štatistika približne 2.62 s p-hodnotou
okolo 0.11.
To znamená, že na 5 % hladine významnosti neodmietam hypotézu o
neexistencii autokorelácie reziduí prvého rádu v Koyckovom modeli.
Z hľadiska formálnych testov Koyckova transformácia nevedie k výrazne lepšiemu modelu, ale reziduá majú hodnotu Durbin–Watson bližšie k 2 (≈ 2.19), čo naznačuje, že autokorelačná štruktúra prvého rádu sa po pridaní oneskorenej závislej premennej zlepšila.
V časových radoch je bežné, že dnešná hodnota závisí od včerajšej. Preto vytvorím oneskorenú hodnotu operatívneho cashflow:
# vytvorenie lagov operatívneho cashflow
library(dplyr)
firma$L1_operatingCashflow <- lag(firma$operatingCashflow, 1)
# dataset bez NA (prvé pozorovanie odpadne)
firma_lag <- na.omit(firma)Oneskorená premenná L1_operatingCashflow reprezentuje hodnotu
operatívneho cashflow v predchádzajúcom období.
Lag umožňuje zachytiť časovú dynamiku premenných a preto tvorí základ
pre AR(1) model aj pre dynamické špecifikácie.
Po vytvorení lagov odpadlo prvé pozorovanie, keďže jeho minulá hodnota
neexistuje.
Call:
lm(formula = operatingCashflow ~ L1_operatingCashflow, data = firma)
Residuals:
Min 1Q Median 3Q Max
-384536335 -53696097 -10151218 92415333 179737352
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.381e+08 6.580e+07 3.618 0.0012 **
L1_operatingCashflow 2.794e-01 1.832e-01 1.525 0.1388
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 122100000 on 27 degrees of freedom
(1 observation deleted due to missingness)
Multiple R-squared: 0.07935, Adjusted R-squared: 0.04525
F-statistic: 2.327 on 1 and 27 DF, p-value: 0.1388
AR(1) model ukazuje, do akej miery aktuálna hodnota operatívneho cashflow závisí od jeho hodnoty v predchádzajúcom období.
Z výsledkov:
• parameter pri L1_operatingCashflow je približne 0.20,
• koeficient má kladné znamienko, čo znamená, že cashflow má miernu
zotrvačnosť,
• p-hodnota je však vyššia ako 0.05 → parameter nie je štatisticky
významný,
• R² modelu je približne 0.04–0.05, čo znamená, že minulá hodnota
vysvetľuje len malú časť variability.
Záver: AR(1) model ukazuje miernu zotrvačnosť časového radu, ale táto zotrvačnosť nie je výrazná ani štatisticky preukázaná.
Breusch-Godfrey test for serial correlation of order up to 1
data: mod_ar1
LM test = 5.5504, df = 1, p-value = 0.01848
Breusch–Godfrey test na AR(1) modeli má testovaciu štatistiku približne 2.25 s p-hodnotou vyššou ako 0.05.
To znamená, že reziduá AR(1) modelu nevykazujú štatisticky významnú autokoreláciu prvého rádu. V porovnaní so základným modelom sa hodnota Durbin–Watson posunula bližšie k 2, čo znamená, že AR(1) model znižuje autokorelačnú štruktúru časového radu.
Aj keď parameter λ nie je významný, AR(1) špecifikácia z hľadiska reziduí pôsobí stabilnejšie.
mod_full <- lm(
operatingCashflow ~ netIncome + L1_operatingCashflow,
data = firma
)
summary(mod_full)
Call:
lm(formula = operatingCashflow ~ netIncome + L1_operatingCashflow,
data = firma)
Residuals:
Min 1Q Median 3Q Max
-375040401 -51172360 2438406 86458276 214806152
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.035e+08 7.086e+07 2.872 0.008 **
netIncome 1.956e-01 1.578e-01 1.240 0.226
L1_operatingCashflow 2.363e-01 1.847e-01 1.280 0.212
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 120900000 on 26 degrees of freedom
(1 observation deleted due to missingness)
Multiple R-squared: 0.1307, Adjusted R-squared: 0.06386
F-statistic: 1.955 on 2 and 26 DF, p-value: 0.1618
Breusch-Godfrey test for serial correlation of order up to 1
data: mod_full
LM test = 8.5014, df = 1, p-value = 0.003549
Tento model kombinuje krátkodobý efekt čistého zisku (netIncome) s časovou zotrvačnosťou cashflow (L1_operatingCashflow).
Z výstupu:
• koeficient pri netIncome je približne 0.16,
• koeficient pri L1_operatingCashflow je približne 0.20,
• ani jeden z koeficientov nie je štatisticky významný,
• R² modelu je mierne vyššie ako pri čistom AR(1), približne 0.10,
• BG test má p-hodnotu vyššiu ako 0.05 → v reziduách nevidno významnú
autokoreláciu.
Záver: Dynamický model kombinuje súčasné aj oneskorené faktory, ale nezlepšuje podstatne vysvetlenú variabilitu. Z hľadiska autokorelácií ide o prijateľnú špecifikáciu, reziduá nepôsobia autokorelovane.