Cieľ dokumentu

V tejto časti nadväzujem na predchádzajúce kroky práce s databázou dopravných nehôd a overujem, či je zvolený regresný model dobre špecifikovaný z hľadiska funkčnej formy.
Zaujíma ma, či je lineárna špecifikácia postačujúca, alebo sa v dátach objavujú nelinearity (napr. kvadratický vplyv) a prípadne aj zlom v správaní modelu pri určitých typoch nehôd.
Výstup je spracovaný ako „projektový report“ – bez zobrazenia kódu, s prehľadnými tabuľkami a grafmi.

1 1. Dáta a príprava premenných

Čo presne analyzujem?

Pracujem so závislou premennou injuries_total (celkový počet zranení pri nehode).
Ako vysvetľujúce premenné používam:
  • num_units – počet zúčastnených vozidiel,
  • crash_hour – hodina nehody,
  • crash_month – mesiac nehody,
  • crash_day_of_week – deň v týždni.

V tomto kroku ponechávam časové premenné v číselnej forme (tak ako v zdrojových dátach), aby sa zachovala podstata zadania. Pri interpretácii však beriem do úvahy, že niektoré z nich sú prirodzene skôr kategórie.

Počet pozorovaní (rok 2019): 27959

Kontrola chýbajúcich hodnôt (pred/po imputácii)
Premenná Chýbajúce_pred Chýbajúce_po
injuries_total 0 0
num_units 0 0
crash_hour 0 0
crash_month 0 0
crash_day_of_week 0 0
Základný prehľad dát (rok 2019)
N injuries_mean injuries_sd injuries_min injuries_max num_units_mean crash_hour_mean crash_month_mean
27959 0.3626 0.7748 0 16 2.0615 13.2846 6.6284

Prečo je tento krok dôležitý?

Ak by boli v dátach chýbajúce hodnoty alebo extrémne zvláštne rozdelenia, mohli by skresliť výsledky regresie aj diagnostiku špecifikácie.
Preto najprv kontrolujem základné vlastnosti dát a až potom prechádzam na model a testy funkčnej formy.

2 2. Základný lineárny model

Základný lineárny model – koeficienty (OLS)
Premenná Odhad Std. chyba t-hodnota p-hodnota CI 2.5% CI 97.5%
(Intercept) -0.2918 0.0298 -9.8049 < 0.001 -0.3501 -0.2335
num_units 0.3267 0.0118 27.7461 < 0.001 0.3036 0.3498
crash_hour -0.0018 0.0008 -2.1917 0.028 -0.0034 -0.0002
crash_month 0.0014 0.0014 1.0592 0.289 -0.0012 0.0041
crash_day_of_week -0.0011 0.0023 -0.4793 0.632 -0.0057 0.0035
Základné metriky kvality modelu
Metrika Hodnota
0.0270
Upravené R² 0.0269
AIC 64323.4900
BIC 64372.9200
Počet pozorovaní 27959.0000

Interpretácia základného modelu

Tento model beriem ako východiskový – ukáže mi, či premenné súvisia so zraneniami aspoň v základnej lineárnej forme.
Zároveň však platí, že aj „zdanlivo dobrý“ model môže byť nesprávne špecifikovaný. Preto ďalej overujem, či lineárna forma nie je príliš zjednodušená (nelinearity, chýbajúce premenné, prípadné zlomy).

3 3. Test funkčnej formy: Ramsey RESET

RESET test kontroluje, či by sa model podstatne zlepšil po doplnení nelineárnych členov odvodených z vyrovnaných hodnôt (napr. \(\hat{y}^2\), \(\hat{y}^3\)).

  • \(H_0\): model je správne špecifikovaný (doplnky nie sú potrebné)
  • \(H_1\): model je nesprávne špecifikovaný (nelinearity alebo chýbajúce premenné)
Ramsey RESET test – základný model
Test Statistika DF1 DF2 p.hodnota
df1 RESET (power 2–3) 59.8215 2 27952 < 0.001

Ako to vyhodnocujem

Ak je p-hodnota menšia ako 0.05, je to signál, že čisto lineárna špecifikácia môže byť nedostatočná.
RESET test ale nehovorí „kde presne“ je problém – iba upozorní, že model si pýta ďalšiu kontrolu. Preto pokračujem grafickou diagnostikou.

4 4. Grafická diagnostika

4.1 4.1 Rezíduá vs. vyrovnané hodnoty

Čo hľadám v grafe

Ak sú rezíduá náhodne rozmiestnené okolo nuly, lineárna forma býva v poriadku.
Ak však vidím zakrivenie alebo systematický tvar, často to naznačuje nelinearitu, ktorú by bolo vhodné zachytiť napríklad kvadratickým členom alebo transformáciou.

4.2 4.2 Component + Residual (C+R) grafy

C+R grafy pomáhajú zistiť nelinearity pre jednotlivé vysvetľujúce premenné zvlášť.
Aby bol výstup rýchly a prehľadný, robím grafy na náhodnej vzorke 5000 pozorovaní.

Záver z C+R grafov

Ak sa vyrovnaná krivka výrazne odchyľuje od priamky, je to signál nelinearity.
V praxi to často vedie k doplneniu kvadratického člena (\(x^2\)) alebo testovaniu zlomu (dummy + interakcia).
Ďalej preto skúšam nelineárnu špecifikáciu najmä pre premennú num_units, kde je nelineárny vplyv veľmi pravdepodobný.

5 5. Nelineárna špecifikácia: kvadratické členy

5.1 5.1 Model s kvadratickými členmi

Nelineárny model (kvadratické členy) – koeficienty
Premenná Odhad Std. chyba t-hodnota p-hodnota CI 2.5% CI 97.5%
(Intercept) 0.0255 0.0553 0.4613 0.645 -0.0829 0.1340
num_units 0.2131 0.0377 5.6451 < 0.001 0.1391 0.2870
I(num_units^2) 0.0205 0.0064 3.2220 0.001 0.0080 0.0330
crash_hour -0.0376 0.0032 -11.8636 < 0.001 -0.0438 -0.0314
I(crash_hour^2) 0.0015 0.0001 11.7319 < 0.001 0.0012 0.0017
crash_month 0.0011 0.0013 0.8208 0.412 -0.0015 0.0037
crash_day_of_week -0.0013 0.0023 -0.5730 0.567 -0.0059 0.0032
Porovnanie kvality: lineárny vs. kvadratický model
Model Upravené.R. AIC BIC
Lineárny 0.0269 64323.49 64372.92
Kvadratický 0.0321 64173.91 64239.82
ANOVA porovnanie modelov (zlepšenie po pridaní nelinearity)
Model Res.Df RSS Df F p.hodnota
Lineárny 27954 16331.07
Kvadratický 27952 16241.61 2 76.9805 < 0.001
RESET test – kvadratický model
Test Statistika DF1 DF2 p.hodnota
df1 RESET (kvadratický model) 38.3052 2 27950 < 0.001

Interpretácia nelineárnej špecifikácie

Sledujem tri veci naraz: (1) či sú kvadratické členy štatisticky významné, (2) či sa zlepší kvalita modelu (upravené R², AIC/BIC) a (3) či sa zlepší špecifikácia podľa RESET testu.
Ak je napríklad num_units² významné, je to veľmi logický výsledok – pri nehodách s viacerými vozidlami často rastie závažnosť rýchlejšie než lineárne.

5.2 5.2 Zjednodušený model: iba \(num\_units^2\)

Zjednodušený kvadratický model – iba num_units²
Premenná Odhad Std. chyba t-hodnota p-hodnota CI 2.5% CI 97.5%
(Intercept) -0.1089 0.0543 -2.0060 0.045 -0.2152 -0.0025
num_units 0.1822 0.0377 4.8269 < 0.001 0.1082 0.2561
I(num_units^2) 0.0257 0.0064 4.0305 < 0.001 0.0132 0.0382
crash_hour -0.0017 0.0008 -2.0470 0.041 -0.0033 -0.0001
crash_month 0.0014 0.0014 1.0614 0.289 -0.0012 0.0041
crash_day_of_week -0.0010 0.0023 -0.4439 0.657 -0.0056 0.0036
Porovnanie: či stačí iba num_units²
Model Upravené.R. AIC
Lineárny 0.0269 64323.49
Kvadratický (full) 0.0321 64173.91
Kvadratický (num_units²) 0.0274 64309.25

6 6. Zlom v modeli: dummy premenná a interakcia

V tejto časti testujem, či sa vzťah medzi počtom vozidiel a počtom zranení mení medzi nehodami s jedným vozidlom a s viacerými vozidlami.

Dummy premenná: - \(DUM = 0\) ak \(num\_units \le 1\)
- \(DUM = 1\) ak \(num\_units > 1\)

Model so zlomom v autonómnom člene (DUM)
Premenná Odhad Std. chyba t-hodnota p-hodnota
(Intercept) -0.0648 0.0356 -1.8206 0.069
DUM -0.3785 0.0328 -11.5568 < 0.001
num_units 0.3921 0.0130 30.0719 < 0.001
crash_hour -0.0014 0.0008 -1.6517 0.099
crash_month 0.0015 0.0013 1.1211 0.262
crash_day_of_week -0.0009 0.0023 -0.3727 0.709
Model so zlomom v sklone (DUM × num_units)
Premenná Odhad Std. chyba t-hodnota p-hodnota
(Intercept) -0.4433 0.0325 -13.6594 < 0.001
num_units 0.7706 0.0402 19.1854 < 0.001
I(DUM * num_units) -0.3785 0.0328 -11.5568 < 0.001
crash_hour -0.0014 0.0008 -1.6517 0.099
crash_month 0.0015 0.0013 1.1211 0.262
crash_day_of_week -0.0009 0.0023 -0.3727 0.709
Porovnanie: základný model vs. dummy špecifikácie
Model Upravené.R. AIC
Lineárny 0.0269 64323.49
Zlom v autonómnom člene 0.0315 64192.22
Zlom v sklone (interakcia) 0.0315 64192.22
ANOVA: zlepšenie po pridaní interakcie (zlom v sklone)
Model Res.Df RSS Df F p.hodnota
Lineárny 27954 16331.07
Interakčný 27953 16253.41 1 133.5607 < 0.001
RESET test – interakčný model
Test Statistika DF1 DF2 p.hodnota
df1 RESET (interakčný model) 9.8445 2 27951 < 0.001

Záver k dummy prístupu

Dummy premenná mi umožňuje testovať „zlom“ – teda či sa model správa inak pri nehodách s jedným vs. viacerými vozidlami.
Ak je interakčný člen DUM × num_units významný a ANOVA ukáže zlepšenie, dá sa to interpretovať tak, že vzťah medzi počtom vozidiel a počtom zranení má odlišný sklon v rôznych skupinách nehôd.

7 7. Box–Cox transformačný test (voliteľné)

Nižšie je doplnkový postup, ktorý môže pomôcť s transformáciou závislej premennej. Keďže však často zhorší interpretáciu, beriem ho skôr ako diagnostiku než automatické riešenie.

Klikni pre zobrazenie Box–Cox časti

Model s Box–Cox transformáciou (λ = 1.8)
Premenná Odhad Std. chyba t-hodnota p-hodnota
(Intercept) -0.8614 0.0689 -12.4968 < 0.001
num_units 0.7465 0.0273 27.3719 < 0.001
crash_hour -0.0038 0.0019 -2.0221 0.043
crash_month 0.0007 0.0031 0.2219 0.824
crash_day_of_week -0.0019 0.0054 -0.3460 0.729
RESET test – Box–Cox model
Test Statistika DF1 DF2 p.hodnota
df1 RESET (Box–Cox model) 66.3239 2 27952 < 0.001

8 8. Zhrnutie a odporúčania

Čo som zistila

  • Najprv som pripravila dáta pre rok 2019 a overila som chýbajúce hodnoty. Tým som si zabezpečila, že regresia aj diagnostika nie sú ovplyvnené nečistotami v dátach.
  • Základný lineárny model poskytol východiskový pohľad na vzťah medzi počtom vozidiel, časom nehody a počtom zranení. Samotná interpretácia koeficientov však nestačí – kľúčová je aj správna špecifikácia.
  • RESET test a diagnostické grafy slúžia ako kontrola, či lineárna forma nie je príliš zjednodušená. Ak test vychádza významný alebo grafy naznačujú zakrivenie, je to signál pre nelinearity alebo chýbajúce premenné.
  • Vyskúšala som kvadratické členy (najmä pre num_units) a porovnala som zmenu kvality modelu pomocou upraveného R², AIC/BIC a ANOVA testu.
  • Následne som otestovala aj „zlom“ medzi nehodami s jedným vs. viacerými vozidlami cez dummy premennú a interakciu. Tento prístup pomáha zachytiť rozdielne správanie modelu v rôznych typoch nehôd.

Ako by som pokračovala ďalej

Ak RESET test zostáva významný aj po nelinearitách a interakciách, je pravdepodobné, že modelu chýbajú ďalšie relevantné premenné (napr. počasie, viditeľnosť, typ nehody, stav vozovky a pod.), alebo je vhodné niektoré premenné modelovať ako kategórie (napr. deň v týždni ako faktor).
Ďalším krokom by preto bolo rozšírenie modelu o logicky súvisiace vysvetľujúce premenné a následná kontrola špecifikácie znova.