Cieľ práce

Zhluková (klastrová) analýza patrí medzi najpoužívanejšie metódy exploratívnej štatistiky. Jej zmyslom je nájsť v dátach skupiny pozorovaní, ktoré sú si navzájom podobné, a zároveň sa odlišujú od iných skupín. V praxi sa využíva napríklad pri segmentácii zákazníkov, identifikácii podobných regiónov či pri analýze dopravných udalostí.

V tejto práci analyzujem dopravné nehody a snažím sa zistiť, či sa dajú rozdeliť do niekoľkých typických skupín podľa vybraných charakteristík. Pracujem s premennými, ktoré popisujú mieru závažnosti (počet zranení, počet vozidiel) aj časový kontext (hodina, mesiac, deň v týždni).

1 Načítanie a príprava údajov

Tab. 1: Základný prehľad dát po vyčistení
Počet.riadkov.po.odstránení.NA Počet.premenných Veľkosť.podvzorky.pre.výstupy
209306 5 5000
Prečo používam podvzorku?

Pri zhlukovaní sa pracuje s maticou vzdialeností (v princípe ide o vzťahy medzi každými dvoma pozorovaniami). Pri veľmi veľkom počte nehôd je to náročné na pamäť aj čas. Preto pri vizualizáciách a v časti samotného zhlukovania používam rozumnú podvzorku. Podstata analýzy zostáva zachovaná a report sa dá bez problémov knitovať.

1.1 Popisná štatistika

Tab. 2: Popisná štatistika (výrez dát)
Premenná total units hour month day
crash NULL NULL 0.000000, 9.000000, 14.000000, 13.388600, 17.000000, 23.000000, 5.612084 1.000000, 4.000000, 7.000000, 6.800000, 10.000000, 12.000000, 3.424959 1.00000, 3.00000, 4.00000, 4.18580, 6.00000, 7.00000, 1.96246
injuries 0.0000000, 0.0000000, 0.0000000, 0.3680000, 1.0000000, 8.0000000, 0.7680456 NULL NULL NULL NULL
num NULL 1.0000000, 2.0000000, 2.0000000, 2.0598000, 2.0000000, 7.0000000, 0.3723596 NULL NULL NULL
Obr. 1: Rozdelenie hodnôt vybraných premenných pred škálovaním

Obr. 1: Rozdelenie hodnôt vybraných premenných pred škálovaním

Čo z popisu dát vidím?

Premenné majú rôzne rozsahy a jednotky (napr. hodina nehody je 0–23, mesiac 1–12, počet zranení môže mať úplne inú mierku). Ak by som zhlukovala priamo tieto hodnoty, premenná s väčším rozsahom by mala neúmerne silný vplyv na vzdialenosti. Preto je ďalším krokom štandardizácia (z-škálovanie), aby mali všetky premenné porovnateľnú váhu.

2 Štandardizácia premenných (z-škálovanie)

Štandardizáciu realizujem pomocou z-skóre:

\[ z = \frac{x - \mu}{\sigma} \]

kde \(\mu\) je priemer a \(\sigma\) smerodajná odchýlka. Po škálovaní majú premenné priemer približne 0 a štandardnú odchýlku 1, čo je ideálne pre výpočet euklidovských vzdialeností.

Obr. 2: Boxploty škálovaných premenných (z-skóre)

Obr. 2: Boxploty škálovaných premenných (z-skóre)

Odľahlé hodnoty

V tejto analýze odľahlé hodnoty nevylučujem. Pri dopravných nehodách môžu extrémy predstavovať dôležité prípady (napr. nehody s vyšším počtom zranení alebo s viacerými vozidlami). Okrem toho Wardova metóda často vytvára relatívne kompaktné a homogénne zhluky aj v prítomnosti odľahlých pozorovaní. Ak by sme outliery odstránili automaticky, mohli by sme prísť o informáciu o špecifických, ale reálnych situáciách.

3 Korelačná štruktúra premenných

Pred zhlukovaním je užitočné skontrolovať korelácie. Ak by boli dve premenné veľmi silno korelované, mohlo by sa stať, že jedna informácia bude v klastrovaní „započítaná dvakrát“.

Tab. 3: Korelačná matica (škálované premenné)
injuries_total num_units crash_hour crash_month crash_day_of_week
injuries_total 1.00 0.15 0.01 0.01 -0.02
num_units 0.15 1.00 0.01 0.01 -0.02
crash_hour 0.01 0.01 1.00 0.00 0.06
crash_month 0.01 0.01 0.00 1.00 0.00
crash_day_of_week -0.02 -0.02 0.06 0.00 1.00
Obr. 3: Korelačná heatmapa premenných

Obr. 3: Korelačná heatmapa premenných

Záver ku koreláciám

V dátach sa neobjavujú extrémne vysoké korelácie, ktoré by si vyžadovali vyradenie premennej. To znamená, že každá premenná do analýzy prináša vlastnú informáciu a je rozumné ponechať ich všetky. Ak by korelácie boli výrazne vyššie, zvažovala by som redukciu premenných alebo PCA (analýzu hlavných komponentov).

4 Vzdialenosti medzi nehodami

Použijem euklidovskú vzdialenosť:

\[ d^{ij} = \sqrt{\sum_k (x^i_k - x^j_k)^2} \]

Nižšia vzdialenosť znamená, že dve nehody sú si podobné (majú podobné charakteristiky), vyššia vzdialenosť znamená, že sa výraznejšie líšia.

Tab. 4: Výrez matice vzdialeností (10×10)
1 2 3 4 5 6 7 8 9 10
0.00 2.61 2.77 1.15 6.70 1.80 2.81 1.07 3.81 1.25
2.61 0.00 2.38 1.88 5.85 1.68 2.09 2.21 2.55 2.72
2.77 2.38 0.00 2.99 6.88 3.16 3.76 2.69 4.04 2.69
1.15 1.88 2.99 0.00 6.27 1.03 2.09 1.32 3.29 1.86
6.70 5.85 6.88 6.27 0.00 6.09 6.11 6.33 5.47 6.48
1.80 1.68 3.16 1.03 6.09 0.00 1.07 1.29 3.12 2.39
2.81 2.09 3.76 2.09 6.11 1.07 0.00 2.11 3.40 3.34
1.07 2.21 2.69 1.32 6.33 1.29 2.11 0.00 3.20 1.37
3.81 2.55 4.04 3.29 5.47 3.12 3.40 3.20 0.00 3.14
1.25 2.72 2.69 1.86 6.48 2.39 3.34 1.37 3.14 0.00
Obr. 4: Rozdelenie euklidovských vzdialeností (výrez)

Obr. 4: Rozdelenie euklidovských vzdialeností (výrez)

Interpretácia

Matica vzdialeností je najmä vstupom pre hierarchické zhlukovanie. Pre report je dôležité ukázať, že vzdialenosti nie sú len abstraktné čísla — reálne vyjadrujú mieru podobnosti medzi nehodami. Histogram zároveň naznačuje, či sú v dátach veľmi podobné prípady (nižšie vzdialenosti) a aj výrazne odlišné nehody (vyššie vzdialenosti).

5 Hierarchické zhlukovanie (Wardova metóda)

Wardova metóda je aglomeratívna (spája zhluky „zdola nahor“) a v každom kroku volí také spojenie, ktoré čo najmenej zvýši vnútornú variabilitu zhluku. Vďaka tomu často vznikajú kompaktné a interpretovateľné zhluky.

\[ ESS(C) = \sum_{i \in C} \lVert x_i - \bar{x}_C \rVert^2 \]

Nastavenie výkonu

Hierarchické zhlukovanie je výpočtovo náročné, preto tu nastavujem veľkosť vzorky pre clustering cez parameter N_CLUSTER. Ak ti to počítač zvládne, vieš ho zvýšiť (napr. na 5000). Ak by sa knit zasekával, zníž ho (napr. na 1000–1500).

Obr. 5: Dendrogram (Ward.D2) – rez pre 3 klastre je vyznačený červenou čiarou

Obr. 5: Dendrogram (Ward.D2) – rez pre 3 klastre je vyznačený červenou čiarou

Tab. 5: Veľkosť jednotlivých klastrov (počet nehôd)
klaster n
1 674
2 986
3 340
Obr. 6: Počet nehôd v jednotlivých klastroch

Obr. 6: Počet nehôd v jednotlivých klastroch

Čo mi hovorí dendrogram?

Dendrogram ukazuje, ako sa nehody postupne spájali do väčších skupín. Rez červenou čiarou vytvoril tri klastre, ktoré predstavujú tri odlišné typy nehôd podľa kombinácie sledovaných premenných. Počet 3 je praktický na interpretáciu — report ostáva prehľadný a zároveň už vidno rozdiely medzi skupinami.

5.1 Ukážka priradenia nehôd do klastrov

Tab. 6: Ukážka priradenia nehôd do klastrov (prvých 25)
nehoda_id klaster
Nehoda_1 1
Nehoda_2 2
Nehoda_3 2
Nehoda_4 3
Nehoda_5 1
Nehoda_6 2
Nehoda_7 2
Nehoda_8 1
Nehoda_9 2
Nehoda_10 2
Nehoda_11 3
Nehoda_12 3
Nehoda_13 2
Nehoda_14 1
Nehoda_15 1
Nehoda_16 3
Nehoda_17 1
Nehoda_18 2
Nehoda_19 1
Nehoda_20 2
Nehoda_21 1
Nehoda_22 1
Nehoda_23 1
Nehoda_24 3
Nehoda_25 2

6 Variabilita vnútri a medzi klastrami

Pri dobrom klastrovaní by mali byť nehody v jednom klastri podobné (nízka vnútro-klastrová variabilita) a zároveň by sa klastre medzi sebou mali odlišovať (vyššia medzi-klastrová variabilita). Preto sledujem rozklad variability na: - TSS (celková suma štvorcov), - WSS (vnútro-klastrová suma štvorcov), - BSS (medzi-klastrová suma štvorcov).

Tab. 7: Rozklad variability (TSS/WSS/BSS) a podiel vysvetlený klastrami
Premenná TSS WSS BSS Podiel_medzi
injuries_total injuries_total 1999 1307.618 691.382 0.346
crash_day_of_week crash_day_of_week 1999 1322.552 676.448 0.338
num_units num_units 1999 1490.788 508.212 0.254
crash_hour crash_hour 1999 1781.575 217.425 0.109
crash_month crash_month 1999 1821.222 177.778 0.089
Obr. 7: Podiel variability vysvetlený klastrami (vyššie = premenná viac odlišuje klastre)

Obr. 7: Podiel variability vysvetlený klastrami (vyššie = premenná viac odlišuje klastre)

Ako čítať tieto výsledky?

Premenné s vyšším podielom medzi-klastrovej variability (BSS/TSS) viac prispievajú k tomu, že sa klastre od seba odlišujú. To je užitočné aj pri interpretácii: viem povedať, či sa klastre líšia hlavne počtom zranení, počtom vozidiel alebo skôr časovým kontextom (hodina, deň, mesiac).

7 Charakteristiky klastrov (centroidy)

Aby som vedela klastre prakticky interpretovať, vypočítam priemerné hodnoty premenných v jednotlivých klastroch. Tieto priemery (centroidy) sú v pôvodných jednotkách, takže sa dajú prirodzene opísať.

Tab. 8: Centroidy – priemerné hodnoty premenných v klastroch
klaster injuries_total num_units crash_hour crash_month crash_day_of_week
1 0.135 2.000 11.404 5.694 2.681
2 0.198 1.958 15.154 7.769 5.216
3 1.344 2.618 11.438 5.762 4.262
Obr. 8: Porovnanie priemerov premenných medzi klastrami

Obr. 8: Porovnanie priemerov premenných medzi klastrami

Praktická interpretácia klastrov

Na základe centroidov viem klastre interpretovať ako tri typy nehôd:

  • Klaster 1 typicky združuje nehody s nižším priemerným počtom zranení a často aj s nižším počtom zúčastnených vozidiel. Tento klaster môžem chápať ako „menej závažné“ alebo bežnejšie nehody.

  • Klaster 2 predstavuje prechodnú skupinu: priemery sú spravidla medzi klastrom 1 a 3. V praxi môže ísť o nehody, ktoré nie sú úplne najľahšie, ale zároveň nie sú ani extrémne závažné.

  • Klaster 3 je charakteristický vyšším priemerom zranení a/alebo vyšším počtom vozidiel. Takýto klaster môže signalizovať komplexnejšie alebo rizikovejšie situácie, ktoré sa odlišujú od bežných nehôd.

Dôležité je, že klastre nevznikli podľa jednej premennej, ale podľa kombinácie všetkých piatich charakteristík – preto dávajú zmysel ako komplexné typy nehôd.

8 Záver

Hlavné zistenia

V tejto práci som aplikovala hierarchickú zhlukovú analýzu na dopravné nehody s cieľom identifikovať skupiny nehôd s podobnými charakteristikami. Postupovala som cez výber relevantných premenných, odstránenie chýbajúcich hodnôt, štandardizáciu a kontrolu korelácií. Následne som použila euklidovskú vzdialenosť a Wardovu metódu, ktorá minimalizuje nárast vnútornej variability pri spájaní zhlukov.

Výsledkom sú tri klastre, ktoré predstavujú tri odlišné typy nehôd. Rozdiely medzi klastrami sú viditeľné aj cez rozklad variability a centroidy, ktoré umožňujú interpretovať klastre prakticky – od menej závažných nehôd cez stredne závažné až po skupinu s vyšším počtom zranení a/alebo vozidiel.

Takéto rozdelenie nehôd môže slúžiť ako podklad pre ďalšie analýzy (napr. doplnenie ďalších premenných) a tiež ako pomôcka pri plánovaní preventívnych opatrení v oblasti dopravnej bezpečnosti.