library(zoo)
library(tseries)
library(lmtest)
library(sandwich)
library(car)
data_original <- read.csv("World Happiness Report 2005-2021.csv")
data_slovakia_clean <- data_original[data_original$`Country name` == "Slovakia", ]
colnames(udaje_original)
[1] "Country.name" "Year"
[3] "Life.Ladder" "Log.GDP.per.capita"
[5] "Social.support" "Healthy.life.expectancy.at.birth"
[7] "Freedom.to.make.life.choices" "Generosity"
[9] "Perceptions.of.corruption" "Positive.affect"
[11] "Negative.affect" "Confidence.in.national.government"
library(lmtest)
library(car)
library(dplyr)
udaje_original <- read.csv("World Happiness Report 2005-2021.csv")
# Filtrovanie dát len pre Slovensko
data_slovakia_clean <- udaje_original[udaje_original$Country.name == "Slovakia", ]
data_slovakia_clean <- data_slovakia_clean %>%
rename(
# VYSVETĽOVANÁ PREMENNÁ
Confidence = Confidence.in.national.government,
# VYSVETĽUJÚCE PREMENNÉ
Corruption = Perceptions.of.corruption,
Freedom = Freedom.to.make.life.choices,
Support = Social.support
)
# Odstránenie riadkov s NA hodnotami (ak nejaké zostali po filtrovaní)
data_slovakia_clean <- na.omit(data_slovakia_clean)
# ZAKLADNA REGRESIA
model <- lm(
Confidence ~ Corruption + Freedom + Support,
data = data_slovakia_clean
)
summary(model)
Call:
lm(formula = Confidence ~ Corruption + Freedom + Support, data = data_slovakia_clean)
Residuals:
Min 1Q Median 3Q Max
-0.081699 -0.038775 0.007147 0.022914 0.102709
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.138817 1.633142 1.922 0.0868 .
Corruption -1.725974 1.532453 -1.126 0.2892
Freedom -0.005637 0.259423 -0.022 0.9831
Support -1.357748 1.067551 -1.272 0.2353
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.0578 on 9 degrees of freedom
Multiple R-squared: 0.3085, Adjusted R-squared: 0.07797
F-statistic: 1.338 on 3 and 9 DF, p-value: 0.322
Tento regresný model ukazuje, že žiadny zo zvolených faktorov (Korupcia, Sloboda voľby, Sociálna podpora) nevysvetľuje štatisticky významnú zmenu Dôvery vo vládu v sledovanom období na Slovensku. Celý model má extrémne nízku prediktívnu silu.
Hoci je už tento prvotný model štatisticky nevýznamný, diagnostiku musím vykonať, aby som potvrdila, že nevýznamnosť nebola spôsobená metodologickou chybou, ale skutočnou absenciou vzťahu. Preto vykonáme nasledovné testy.
Ide o najštandardnejší formálny test nesprávnej špecifikácie funkčnej formy ale dá sa použiť aj pre prípady, ak sme nešpecifikovali všetky vysvetľujúce premenné.
Pôvodný model má tvar \[y_t = \beta_0 + \beta_1 x_{t10} + \dots +\beta_k x_{tk} + u_t\] Myšlienka testu spočíva v porovnaní pôvodného modelu s rozšíreným modelom, ktorý obsahuje mocniny vyrovnaných hodnôt (predpovede \(\hat{y}_t\), napr. \(\hat{y}_t^2, \hat{y}_t^3\)). Ak je pôvodný lineárny model správne špecifikovaný, pridaním týchto mocnín by sa nemal podstatne zlepšiť.
Budeme teda testovať pôvodný model:\[y_t = \beta_0 + \beta_1 \cdot \text{Corruption} + \beta_2 \cdot \text{Freedom} + \beta_3 \cdot \text{Support} + u_t\]oproti modelu s pridanými mocninami:\[y_t = \beta_0 + \dots + \beta_3 \cdot \text{Support} + \gamma_2 \cdot \hat{y}_t^2 + \gamma_3 \cdot \hat{y}_t^3 + u_t\]
Stanovenie Hypotéz:
\(\boldsymbol{H}_{0}:\) Model je správne špecifikovaný (\(\gamma_2 = \gamma_3 = 0\)). Lineárna forma je vhodná.
\(\boldsymbol{H}_{1}:\) Model je nesprávne špecifikovaný (\(\gamma_2 \ne 0 \quad \text{alebo} \quad \gamma_3 \ne 0\)). Mala by sa použiť nelineárna transformácia.
resettest(model_new, power = 2:3, type = "regress")
RESET test
data: model_new
RESET = 33.182, df1 = 6, df2 = 3, p-value = 0.007773
Keďže dosiahnutá \(p\)-hodnota (\(0.007773\)) je nižšia ako štandardná hladina významnosti \(\alpha = 0.05\), nulovú hypotézu (\(\boldsymbol{H}_{0}\)) o správnej špecifikácii modelu zamietame.
Grafická analýza vzťahu medzi vyrovnanými hodnotami náhodnej premennej a rezíduami:
plot(model_new, which = 1)
Grafická analýza Reziduá vs. Vyrovnané Hodnoty vizuálne potvrdzuje výsledok Ramsey RESET testu. Keby bol model správne špecifikovaný, body (reziduá) by mali byť rozptýlené náhodne okolo stredovej vodorovnej línie (nuly) a vyhladená červená čiara by mala byť takmer plochá. Na grafe však vidíme, že červená čiara vykazuje výrazný oblúk, čo predstavuje vizuálny dôkaz porušenia predpokladu linearity.
Tento nález signalizuje, že vzťah medzi Dôverou vo vládu a vysvetľujúcimi premennými je pravdepodobne nelineárny a je nevyhnutné model transformovať (napríklad pridaním kvadratických členov) alebo premenné logaritmovať. Naproti tomu, rozptyl bodov okolo oblúka sa javí ako relatívne konštantný, čo naznačuje, že predpoklad homoskedasticity nie je vizuálne závažne porušený.
Po tom, čo Ramsey RESET test a graf Reziduá vs. Vyrovnané Hodnoty potvrdili nesprávnu špecifikáciu funkčnej formy modelu, je nevyhnutné lokalizovať zdroj nelinearity. Táto analýza nám pomôže pri hľadaní odpovede na otázku, ktorú premennú by sme mali transformovať pomocou nejakej známej funkcie.Vychádzame z pôvodnej lineárnej rovnice:\[\text{Confidence}_t = \beta_0 + \beta_1 \cdot \text{Corruption}_t + \beta_2 \cdot \text{Freedom}_t + \beta_3 \cdot \text{Support}_t + u_t\]
Component-Residual Plots (C+R Plots) vykresľujú na zvislej osi výraz \(\hat{\beta}_i x_{ti} + e_t\) a na vodorovnej osi hodnoty samotného regresora \(x_{ti}\). Tieto grafy pomáhajú identifikovať nelineárne vzťahy pre každý regresor: ak vyhladená krivka ukazuje významné zakrivenie a odchyľuje sa od priamej regresnej čiary, je daná premenná zodpovedná za porušenie linearity.
library(car)
car::crPlots(model_new)
Grafická analýza individuálnych regresorov naznačuje, že premenná Sloboda voľby (Freedom) sa javí ako lineárne vhodne špecifikovaná. Súčasne však potvrdila, že problém s nelineárnou funkčnou formou je spôsobený hlavne premennou Vnímanie Korupcie (Corruption), ktorej vyhladená krivka sa najvýraznejšie odchyľuje od priamej regresnej čiary. Aj Sociálna Podpora (Support) vykazuje mierne zakrivenie - z tohto dôvodu je nevyhnutné do modelu pridať kvadratické členy, aby sme tieto nelineárne vzťahy korigovali.
Častokrát môžeme aj zložitejšie nelineárne vzťahy modelovať s pomocou ich aproximácie s polynómom, teda v prípade kvadratických členov \[y_t = \beta_0 + \beta_1 x_{t10} + \dots +\beta_k x_{tk} + \dots + \gamma_i\hat x_{ik}^2 + \dots + \gamma_j\hat x_{jk}^2 + \dots + u_t\] Príklad na túto modifikáciu uvidíme nižšie.
Pri diagnostike nelinearity pomocou Component-Residual Plots (CR Plots) sme zistili, že vyrovnaná krivka sa najviac líši od priamky v prípade premennej Corruption a mierne aj pri premennej Support. Preto sme zaviedli do pôvodnej lineárnej rovnice kvadratické členy pre tieto premenné: \(\boldsymbol{I(\text{Corruption}^2)}\) a \(\boldsymbol{I(\text{Support}^2)}\).
model_kvadraticky <- lm(
Healthy.life.expectancy.at.birth ~
Log.GDP.per.capita + Support + Year +
I(Log.GDP.per.capita^2) + I(Support^2),
data = data_slovakia_clean
)
summary(model_kvadraticky)
Call:
lm(formula = Healthy.life.expectancy.at.birth ~ Log.GDP.per.capita +
Support + Year + I(Log.GDP.per.capita^2) + I(Support^2),
data = data_slovakia_clean)
Residuals:
Min 1Q Median 3Q Max
-0.0040869 -0.0023964 -0.0006329 0.0024787 0.0058037
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.530e+02 1.592e+01 -22.170 9.60e-08 ***
Log.GDP.per.capita -6.045e+00 2.226e+00 -2.716 0.0299 *
Support 2.887e-01 2.086e+01 0.014 0.9893
Year 2.242e-01 2.368e-03 94.683 3.86e-12 ***
I(Log.GDP.per.capita^2) 2.920e-01 1.087e-01 2.686 0.0313 *
I(Support^2) -1.818e-01 1.122e+01 -0.016 0.9875
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.004261 on 7 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 1.23e+05 on 5 and 7 DF, p-value: < 2.2e-16
anova(model_new, model_kvadraticky)
Analysis of Variance Table
Model 1: Healthy.life.expectancy.at.birth ~ Log.GDP.per.capita + Support +
Year
Model 2: Healthy.life.expectancy.at.birth ~ Log.GDP.per.capita + Support +
Year + I(Log.GDP.per.capita^2) + I(Support^2)
Res.Df RSS Df Sum of Sq F Pr(>F)
1 9 0.00026091
2 7 0.00012708 2 0.00013384 3.6862 0.08063 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# RESET Test na Modifikovanom Modeli (Kontrola, či sme problém odstránili)
resettest(model_kvadraticky, power = 2:3, type = "regress")
RESET test
data: model_kvadraticky
RESET = -9.5404, df1 = 10, df2 = -3, p-value = NA
Premenné Rok (Year), Logaritmus HDP (Log.GDP.per.capita) a jeho kvadratický člen \(\mathbf{I(\text{Log.GDP.per.capita}^2)}\) sú štatisticky významné. To potvrdzuje, že vplyv HDP je nelineárny (zakrivený).
Premenná Sociálna Podpora (Support) a jej kvadratický člen \(\mathbf{I(\text{Support}^2)}\) sú štatisticky nevýznamné (obidve \(P\)-hodnoty sú blízko \(\mathbf{0.99}\)). Tieto členy musia byť z modelu vyradené - ich prítomnosť spôsobila aj zlyhanie RESET testu.
model_finálny <- lm(
Healthy.life.expectancy.at.birth ~
Log.GDP.per.capita + Year +
I(Log.GDP.per.capita^2),
data = data_slovakia_clean
)
summary(model_finálny)
Call:
lm(formula = Healthy.life.expectancy.at.birth ~ Log.GDP.per.capita +
Year + I(Log.GDP.per.capita^2), data = data_slovakia_clean)
Residuals:
Min 1Q Median 3Q Max
-0.0050781 -0.0018831 -0.0002386 0.0022031 0.0057671
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -354.38395 9.92395 -35.710 5.24e-11 ***
Log.GDP.per.capita -5.60414 1.74759 -3.207 0.0107 *
Year 0.22379 0.00116 192.989 < 2e-16 ***
I(Log.GDP.per.capita^2) 0.27116 0.08657 3.132 0.0121 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.00381 on 9 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 2.564e+05 on 3 and 9 DF, p-value: < 2.2e-16
Tento finálny model bol získaný po odstránení štatisticky nevýznamných členov Sociálnej Podpory (Support a \(\text{I}(\text{Support}^2)\)), čo viedlo k jednoduchšej a robustnejšej špecifikácii.
V tomto prípade je model už štatisticky významný (\(P\)-hodnota \(F\)-testu \(\mathbf{< 2.2e-16}\)).
Hodnota \(\mathbf{R^2 = 1}\) naznačuje, že by mohol byť model premodelovaný (prispôsobený malému súboru dát) - teraz je však metodologicky čistejší vďaka odstráneniu redundantných premenných.
Všetky zostávajúce premenné sú štatisticky významné na hladine \(5\%\) (ich \(P\)-hodnoty sú menšie ako \(0.05\)).
model_rozsireny_finalny <- lm(
Healthy.life.expectancy.at.birth ~
Log.GDP.per.capita + Year +
I(Log.GDP.per.capita^2) + I(Year^2),
data = data_slovakia_clean
)
summary(model_rozsireny_finalny)
Call:
lm(formula = Healthy.life.expectancy.at.birth ~ Log.GDP.per.capita +
Year + I(Log.GDP.per.capita^2) + I(Year^2), data = data_slovakia_clean)
Residuals:
Min 1Q Median 3Q Max
-0.0036643 -0.0004636 0.0001407 0.0008712 0.0017056
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.449e+03 3.010e+02 4.813 0.001333 **
Log.GDP.per.capita 4.242e+00 1.824e+00 2.325 0.048502 *
Year -1.614e+00 3.068e-01 -5.262 0.000763 ***
I(Log.GDP.per.capita^2) -2.047e-01 8.857e-02 -2.311 0.049633 *
I(Year^2) 4.555e-04 7.603e-05 5.991 0.000327 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.001725 on 8 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 9.38e+05 on 4 and 8 DF, p-value: < 2.2e-16
Celý model je opäť štatisticky významný (\(P\)-hodnota \(F\)-testu je blízka nule), čo potvrdzuje, že vybrané premenné spoločne signifikantne vysvetľujú variabilitu. Hoci model dosiahol \(\mathbf{R^2 = 1}\), čo signalizuje premodelovanie kvôli nízkemu počtu pozorovaní, z hľadiska štruktúry je vďaka eliminácii nevýznamných premenných (Support a \(\text{I}(\text{Support}^2)\)) teraz
Kľúčovým zistením, ktoré odlišuje tento model od predchádzajúcich, je potvrdenie dvojitej nelinearity. Po pridaní kvadratického člena \(\mathbf{I(\text{Year}^2)}\) sa ukázalo, že všetky štyri premenné v modeli sú štatisticky významné (\(P < 0.05\)).
model_finálny <- lm(
Healthy.life.expectancy.at.birth ~ Log.GDP.per.capita + Year + I(Log.GDP.per.capita^2),
data = data_slovakia_clean
)
model_rozsireny_finalny <- lm(
Healthy.life.expectancy.at.birth ~ Log.GDP.per.capita + Year + I(Log.GDP.per.capita^2) + I(Year^2),
data = data_slovakia_clean
)
# ANOVA TEST
# H0: Rozšírený člen (I(Year^2)) neprináša štatisticky významné zlepšenie.
# H1: Rozšírený model je štatisticky lepší.
anova(model_finálny, model_rozsireny_finalny)
Analysis of Variance Table
Model 1: Healthy.life.expectancy.at.birth ~ Log.GDP.per.capita + Year +
I(Log.GDP.per.capita^2)
Model 2: Healthy.life.expectancy.at.birth ~ Log.GDP.per.capita + Year +
I(Log.GDP.per.capita^2) + I(Year^2)
Res.Df RSS Df Sum of Sq F Pr(>F)
1 9 1.3062e-04
2 8 2.3807e-05 1 0.00010681 35.893 0.0003266 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# RESET TEST
resettest(model_rozsireny_finalny, power = 2:3, type = "regress")
RESET test
data: model_rozsireny_finalny
RESET = 0, df1 = 8, df2 = 0, p-value = NA
ANOVA Test sa použil na porovnanie dvoch modelov s cieľom zistiť, či pridaný člen \(\mathbf{I(\text{Year}^2)}\) prináša štatisticky významné zlepšenie. Nulová hypotéza (\(H_0\)), ktorá predpokladala, že zlepšenie nie je významné, bola jednoznačne zamietnutá s \(P\)-hodnotou \(\mathbf{0.0003266}\).
RESET Test slúžil na finálnu kontrolu, či model netrpí chybou špecifikácie funkčnej formy. Tento test však zlyhal (\(P\)-hodnota \(\mathbf{NA}\)) z dôvodu nedostatku stupňov voľnosti (df2 = 0). Hoci test nie je možné formálne vyhodnotiť, je to priamy dôsledok premodelovania a limitu daného malým súborom dát. Vzhľadom na výsledok ANOVA testu a vysokú signifikanciu všetkých členov sa však model považuje za metodologicky optimálny pre daný dátový súbor.
Testy potvrdzujú, že nelineárna špecifikácia modelu je na základe dostupných dát opodstatnená a efektívna.
Po úspešnej špecifikácii nelineárnych vzťahov pomocou kvadratických členov sa zameriame na modelovanie prípadných štrukturálnych zlomov v dátach. Zlomy sa modelujú pomocou dummy premennej \(D_t\), ktorá obsahuje len nuly a jedničky. Takáto premenná sa dá využiť modelovanie zlomov, a to napr.
Po potvrdení nelineárnych vzťahov pomocou kvadratických členov, pristúpime k testovaniu štrukturálneho zlomu v našom časovom rade, ktorý by mohol byť spôsobený externým šokom, ako napríklad globálnou finančnou krízou. V tomto kontexte je logické otestovať zlom, ktorý nastal po roku 2010.
Zavedieme preto dummy premennú \(\boldsymbol{D_{t}}\) (v kóde DUM_YEAR), pre ktorú bude platiť:
\(\boldsymbol{D_{t} = 1}\) ak je Rok \(\boldsymbol{> 2010}\) (t.j. od roku 2011), a \(\boldsymbol{D_{t} = 0}\) pre Rok \(\boldsymbol{\leq 2010}\).
Kvantifikujme teraz model so zlomom v autonómnom člene, kde:
Autonómny člen pre roky \(\boldsymbol{\leq 2010}\) (teda \(\boldsymbol{D_{t} = 0}\)) je daný iba koeficientom \(\boldsymbol{\beta_0}\) (Intercept).
Autonómny člen pre roky \(\boldsymbol{> 2010}\) (teda \(\boldsymbol{D_{t} = 1}\)) je daný súčtom \(\boldsymbol{\beta_0 + \beta_{D}}\).
data_slovakia_clean$DUM_YEAR <- ifelse(data_slovakia_clean$Year > 2010, 1, 0)
modelD_auto <- lm(
Healthy.life.expectancy.at.birth ~
DUM_YEAR +
Log.GDP.per.capita + Year +
I(Log.GDP.per.capita^2),
data = data_slovakia_clean
)
summary(modelD_auto)
Call:
lm(formula = Healthy.life.expectancy.at.birth ~ DUM_YEAR + Log.GDP.per.capita +
Year + I(Log.GDP.per.capita^2), data = data_slovakia_clean)
Residuals:
Min 1Q Median 3Q Max
-0.0048061 -0.0015104 -0.0000212 0.0014496 0.0059538
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.623e+02 1.104e+01 -32.819 8.10e-10 ***
DUM_YEAR -6.515e-03 4.699e-03 -1.386 0.2030
Log.GDP.per.capita -4.184e+00 1.955e+00 -2.140 0.0647 .
Year 2.241e-01 1.129e-03 198.555 4.63e-16 ***
I(Log.GDP.per.capita^2) 2.017e-01 9.648e-02 2.091 0.0699 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.003628 on 8 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 2.12e+05 on 4 and 8 DF, p-value: < 2.2e-16
Zlom je štatisticky nevýznamný (\(P\)-hodnota je \(\mathbf{0.2030}\), čo je oveľa viac ako 0.05). To znamená, že po roku 2010 nedošlo k významnému posunu v základnej úrovni Strednej dĺžky zdravého života. Hodnota \(\mathbf{-0.006515}\) naznačuje, že hoci zmena nastala, bol to nevýznamný pokles o približne 0.0065 roka po roku 2010.
Keďže zlom v autonómnom člene nebol významný, musíme teraz otestovať, či zlom nenastal v sklone premenných (napr. v sklone HDP), čo je druhý krok pri modelovaní zlomov.
modelD_sklon <- lm(
Healthy.life.expectancy.at.birth ~
DUM_YEAR +
Log.GDP.per.capita +
DUM_YEAR:Log.GDP.per.capita + # Zlom v sklone HDP
Year +
I(Log.GDP.per.capita^2),
data = data_slovakia_clean
)
summary(modelD_sklon)
Call:
lm(formula = Healthy.life.expectancy.at.birth ~ DUM_YEAR + Log.GDP.per.capita +
DUM_YEAR:Log.GDP.per.capita + Year + I(Log.GDP.per.capita^2),
data = data_slovakia_clean)
Residuals:
Min 1Q Median 3Q Max
-0.0026600 -0.0008221 0.0001121 0.0008733 0.0027893
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.900e+02 1.860e+01 -15.590 1.08e-06 ***
DUM_YEAR 3.301e+00 7.994e-01 4.129 0.00441 **
Log.GDP.per.capita -1.881e+01 3.710e+00 -5.070 0.00145 **
Year 2.248e-01 6.687e-04 336.137 5.45e-16 ***
I(Log.GDP.per.capita^2) 9.281e-01 1.842e-01 5.039 0.00150 **
DUM_YEAR:Log.GDP.per.capita -3.253e-01 7.864e-02 -4.137 0.00437 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.00209 on 7 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 5.113e+05 on 5 and 7 DF, p-value: < 2.2e-16
Po pridaní správneho interakčného člena (zlom v sklone) nastala zmena:
Zlom v Autonómnom Člene je štatisticky významný (\(P \approx 0.004\)). Po roku 2010 nastal významný posun (skok) v základnej úrovni dĺžky zdravého života.
Zlom v Sklone HDP je štatisticky významný (\(P \approx 0.004\)). Potvrdzuje sa, že po roku 2010 sa výrazne zmenil aj vplyv (sklon) Logaritmu HDP na dĺžku zdravého života.
Na rozdiel od predchádzajúceho testu, tento model dokázal, že štrukturálny zlom po roku 2010 existuje. Zmenila sa základná úroveň a zároveň sa zmenil spôsob, akým HDP ovplyvňuje dĺžku života
# ANOVA TEST: Porovnanie modelov
anova(modelD_auto, modelD_sklon)
Analysis of Variance Table
Model 1: Healthy.life.expectancy.at.birth ~ DUM_YEAR + Log.GDP.per.capita +
Year + I(Log.GDP.per.capita^2)
Model 2: Healthy.life.expectancy.at.birth ~ DUM_YEAR + Log.GDP.per.capita +
DUM_YEAR:Log.GDP.per.capita + Year + I(Log.GDP.per.capita^2)
Res.Df RSS Df Sum of Sq F Pr(>F)
1 8 1.0532e-04
2 7 3.0571e-05 1 7.4746e-05 17.115 0.004365 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 2. RESET TEST: Kontrola funkčnej formy najkomplexnejšieho modelu
resettest(modelD_sklon, power = 2:3, type = "regress")
RESET test
data: modelD_sklon
RESET = -1.4875, df1 = 8, df2 = -1, p-value = NA
Tento výstup slúži na definitívne potvrdenie, či je model so zlomom v sklone (modelD_sklon) štatisticky lepšou špecifikáciou ako model iba so zlomom v autonómnom člene (modelD_auto).
1. ANOVA Test
Testovaná hypotéza:
\(H_0\): Model so zlomom v sklone (interakčný člen) neprináša významné zlepšenie oproti modelu len so zlomom v \(\beta_0\).
\(H_1\): Model so zlomom v sklone je štatisticky lepší.
Keďže \(P\)-hodnota \(\mathbf{0.004365}\) je výrazne menšia ako \(\mathbf{0.05}\) (označené dvoma hviezdičkami), zamietame nulovú hypotézu (\(\mathbf{H_0}\)). To potvrdzuje, že interakčný člen (DUM_YEAR:Log.GDP.per.capita) je štatisticky významný. Model, ktorý predpokladá zmenu v sklone HDP po roku 2010, je teda jednoznačne presnejší.
2. RESET Test
Podobne ako v predchádzajúcich krokoch, test zlyhal kvôli nulovým stupňom voľnosti (df2 = -1, čo je chyba spôsobená prehnane veľkým počtom prediktorov voči \(N=13\)). Toto zlyhanie je spôsobené limitom malého dátového súboru, a nie chybou v logike modelu.
Ide o systematickejší test na zistenie, ako by sa závislá premenná mala transformovať pomocou nejakej funkcie (napr. \(\ln(Y)\), \(\sqrt(Y)\), \(1/Y\)). Konkrétna transformácia sa robí podľa vzorca
\[ Y_i^{(\lambda)} = \begin{cases} \dfrac{Y_i^{\lambda} - 1}{\lambda}, & \text{if } \lambda \neq 0, \\[10pt] \ln(Y_i), & \text{if } \lambda = 0. \end{cases} \]
library(MASS)
boxcox(modelD_sklon)
U nás je maximum funkcie vierohodnosti umiestnené extrémne blízko hodnoty \(\boldsymbol{\lambda = 1}\). Navyše, interval spoľahlivosti (oblasť medzi širšími prerušovanými čiarami) jasne zahŕňa hodnotu \(\boldsymbol{\lambda = 1}\).
Nie je potrebné vykonávať žiadnu dodatočnú transformáciu na vysvetľovanej premennej (Healthy.life.expectancy.at.birth), pretože hodnota \(\boldsymbol{\lambda = 1}\) je plne v súlade s dátami.