Tereza Pelikánová & Marcela Gruzová: Analýza kriminality v ČR a vliv dalších faktorů


Jak jsme se daly dohromady?

Naše dvojička se náhodou seznámila již na úvodní hodině. Zbylo nám místo vedle sebe a během čekání na úvodní focení a vyřizování dalších formalit, jsme se daly do řeči. Zjistily jsme, že toho máme spolu vlastně hrozně moc společného – lásku k letadlům, zdravému životnímu stylu, obě pracujeme i studujeme a obě zde začínáme od 0, tedy bez předchozích znalostí programování či datové analytiky. Během dalších hodin jsme si místo vedle sebe vybíraly záměrně a stále více se upevňoval fakt, že naše dvojička už je asi jasná.

Jaký byl náš plán?

Už na začátku jsme měly v plánu použít naše reálná data z firmem, ve kterých pracujeme. Z toho jsme bohužel musely upustit, protože oproti předchozím běhům byla letos změna – data nemůžeme mít svoje, ale budou nám přidělena. Nijak nás to z míry nevyvedlo, na úvodním oficiálním představení jsme poznaly spousty firem a očekávaly jsme tak velice zajímavá data. Nemohly jsme se tak dočkat na hodinu představení dat. Po ní jsme znaly témata, ne však strukturu dat. Ta nám měla být dodána až na hackathonu, abychom měly všechny stejnou startovací pozici. Témata, která nám byla nakonec odhalena, byla trochu jiná, než jsme očekávaly – méně témat od firem, více obecných. Opět jsme tedy musely změnit směr, kam se naše další cesta bude ubírat. Jedním z témat byl dataset týkající se informací o letištích, autobusových nádražích, aerolinkách a vyhledávaných trasách. Jakožto velké milovnice letadel jsme měly jasno. Jelikož jsme nevěděly přesnou strukturu, ale Meet your mentor byl za dveřmi, začaly jsme vymýšlet možná témata a snažily se je teoreticky propojit s dalšími zadanými – například s hlukovou mapou. Pak přišel den Meet your mentor – pro nás spíš tedy studená sprcha. Dle většiny mentorů byl náš nápad doslova na nic. Chtěli s námi diskutovat nad strukturou dat a konkrétním propojením, ale my znaly jen název datasetů. Naštěstí se našlo pár mentorů, kteří nás rovnou nezavrhli a nenechali v zoufalé situaci, do které jsme se jako nováčci dostaly a snažili se nás trochu nasměrovat. Po MYM jsme si stejně přišly ztracené – hned jak nám byl přidělen mentor - Joe Šamánek - což byla volba, ze které jsme byly nadšené, sešly jsme se s ním abychom probraly data. Během toho jsme již dostaly k nahlédnutí strukturu dat. Vize byla jasná – poupravit naše téma z MYM, ale použít stále data o letectví. Jaké překvapení bylo, když jsme do dat i s mentorem nahlédli, a shodli se, že jsou to spíše doplňková data, než data, ze kterých by se dalo přímo vycházet. Začalo tedy dlouhé hledání nových dat, a to už zbývalo jen pár dní do hackathonu! Dalším nápadem bylo zkoumat vlivy zpoždění letadel – to už s tímto datasetem mělo pramálo společného, ale propojit by se to asi dalo. My i mentor jsme hledali po všech možných zdrojích nějakou databázi informací o odletech a příletech, ze kterých bychom mohly čerpat informace o zpoždění, ale jediné, co jsme našli, byla Amerika, což by asi pro využití v praxi nemělo význam, chtělo to alespoň Evropu. Zkoušely jsme kontaktovat česká letiště, ale z pochopitelných důvodů nám data poskytnout nemohly. Bohužel se nám nezadařilo – mentor nám tedy doporučil, ať si vybereme jiné ze zadaných témat, a to data z běžeckého e-shopu. „OK“, řekly jsme si, „alespoň to bude něco z praxe“. BUM, další zklamání – data už má jiná dvojička a nejsou natolik obsáhlá, aby je mělo více dvojic. Zbýval den do hackathonu. Naše zoufalost stoupala každou hodinou. Podařilo se nám najít nějaká data o kriminalitě a o počasí, která by snad použít šla. No, alespoň něco.

Jak vzniklo naše aktuální téma?

Na hackathon jsme šly v pořádně pochmurné náladě – ráno jsme neměly ani téma, ani jasná data, ze kterých budeme vycházet. Ráno jsme s naším mentorem probrali možnosti a dohodli jsme se jasně – ze všeho nejlíp nám vycházela kriminalita. V první hodině jsme si stanovily základní otázky, které zněly:

·        Jak se vyvíjela kriminalita v České republice a jednotlivých městech za poslední roky?
·        Mají na kriminalitu vliv cizinci?
·        Jaký má na kriminalitu vliv alkohol a drogy?
·        Jak ovlivňuje kriminalitu nezaměstnanost a výše platu?

Jelikož je kriminalita hodně široký pojem – jen v našem zdroji je konkrétně rozdělena na něco málo kolem 100 druhů činů, i na ty opravdu ojedinělé, jako je „vražda na objednávku“, „okradení při znásilnění“ nebo „získání kontroly nad vzdušným prostředkem“ – rozhodly jsme se proto zaměřit se pouze na ty nejběžnější trestné činy, které jsme si stanovily na: celková kriminalita, fyzické útoky, krádeže automobilů, krádeže jízdních kol, krádeže věcí z automobilů, loupeže, vloupání do obydlí, vraždy, výroba, držení a distribuce drog, zanedbání povinné péče a znásilnění. Chtěly jsme analyzovat jak celou Českou republiku obecně, tak i její jednotlivá krajská města a jejich přilehlé okolí. A jelikož jsme v Brně, tak jsme chtěly data i na jednotlivé části Brna. Jenom s daty o kriminalitě jsme se tak dostaly na 275 tabulek, které jsme musely jednu po druhé stáhnout a vhodně pojmenovat, abychom se v nich vyznaly – stahování bylo hladké, soubory byly v CSV, avšak zabralo nám to celé dopoledne hackathonu.

Jedná z nás tedy stahovala tato data, druhá zase hledala a stahovala data o nezaměstnanosti, cizincích a mzdách, kterými podpoříme naše zadané otázky. To bylo dalších 50 tabulek. Jakmile jsme data měly stažené, musely jsme prozkoumat, na základě, čeho je propojíme. Jediným klíčem bylo město, které měly všechny tabulky shodné a roky. Tedy, většina tabulek byla zaokrouhlena na roky, jenom data o mzdách byla v kvartálech. Jelikož tyto tabulky byly o pár řádcích, použily jsme k úpravě a sjednocení excel. Horší už to však bylo s tabulkami kriminality. Měly jsme 275 tabulek, každá jedna tabulka pro konkrétní čin + území. Bylo tedy zapotřebí spojit je do jedné. Na to už jsme potřebovaly silnější kalibr – zvolily jsme tedy python. Náš mentor nám doporučil, ať na tyto práce s daty nepoužíváme Sublime, který jsme využívaly do této doby, hlavně na hodinách při výuce, ale ať použijeme Jupyter za využití knihovny pandas. Daly jsme na jeho rady, a tak jsme data začaly zpracovávat a čistit v Jupyteru.

Nejdříve jsme si naimportovaly potřebné knihovny.
Ke spojení všech souborů jsme potřebovaly všechny CSV nahrát do jedné složky. Během toho jsme zjistily, že název daného území máme pouze v názvu souboru, nikoliv však v samotném sloupci – jakmile je spojíme, nebudeme přeci vědět, kde se jaký čin stal! I s tím jsme si však pomocí pythonu poradily.




Bylo také potřeba si vhodně pojmenovat jednotlivé sloupce tak, aby nám to v budoucnu dávalo smysl. Začínalo se nám pomalu rýsovat jedno krásné CSV, které obsahuje vše, co nás zajímá. Po uložení jsme zjistily, že se povedlo.



Bohužel však, dodělaly jsme toto a hackathon byl u konce. Byly jsme rády, že na to, jak to ze začátku vypadalo zoufale, jsme se alespoň o kousek posunuly. Po hackathonu nám začalo paradoxně ještě složitější období – jedna z nás státnicovala, do toho samozřejmě práce a péče o své malé dítko nepočká, té druhé běželo zkouškové období a rovněž práce, do toho povinné výjezdy se školou. Najít si tak čas začalo být naším největším problémem – až jsme záviděly těm holkám, co měly tu možnost věnovat se jen Digitální akademii na plno. My bohužel takovou možnost neměly, ale i tak jsme v nabitém programu díkybohu našly čas se sejít. Vím, že už to bylo psáno v mnoha projektech před námi, ale digitální akademie je opravdu daleko náročnější a intenzivnější, než se člověku zdá, když se přihlašuje.
Na dalších setkáních bylo načase dočistit ostatní data, která už byla jen o pár tabulkách. Práce s našimi doplňkovými daty tak už byla sice jednoduchá, ale stále docela zdlouhavá.

Například z tohoto:


Jsme dostaly přesně to, co jsme potřebovaly:

Jelikož jsme si chtěly vyzkoušet hlavně Power BI, natáhly jsme do něj data s tím, že si ještě případné mouchy a nedokonalosti dočistíme tam. A že bylo co čistit! Bylo například potřeba vyhledat a nahradit mínusové hodnoty, které jsme musely vyřešit pomocí „Conditional column“. A během dalších postupů jsme pokaždé na něco narazily – ale s tím jsme počítaly, nikdy to není tak lehké, jak se dopředu zdá. Po veškerých potřebných úpravách dat mohl následně vzniknout i náš datový model, který jsme doposud měly pouze na papíře.


A přešlo se k vizualizacím! Abychom v tom měly přehled, rozhodly jsme se začít obecně kriminalitou vztaženou na celou ČR. Jelikož každá data byla pro jiné roky, dohodly jsme se, že pro naši analýzu budeme zohledňovat data za roky 2015–2018, ke kterým máme vhodné zdroje.
Jako první jsme zkoumaly vývoj trestné činnosti za roky 2015–2018. Zjistily jsme, že kriminalita v posledních letech klesla oproti roku 2015 o 24 %. Roky 2017 a 2018 byly co se týče počtu trestných činů stabilní.


Kromě spáchání trestných činů nás zajímala také jejich objasněnost. Z celkového počtu trestných činů za roky 2015–2018 (456 363 trestných činů) bylo okamžitě objasněno 24,78 % (159 362 trestných činů), dalších 4,27 % (27 478 trestných činů) bylo objasněno dodatečně.


Co se týče četnosti trestných činů za již zmíněné období, s přehledem vede Praha s 256 532 trestnými činy. S velkým rozdílem za ní je Ostrava, která má na kontě 52 328 trestných činů. Třetího místa se ujalo Brno s 50 551 trestnými činy. S výrazným rozdílem pak následují ostatní města jako Plzeň, Liberec, Olomouc, Ústí nad Labem, Pardubice, Zlín, Hradec Králové, České Budějovice, Karlovy Vary a Jihlava.



Další otázkou, která nás zajímala, byl vliv alkoholu na trestné činy. Tato problematika se většinou řeší jen ve spojitosti s řízením dopravních prostředků – my se však zaměřily i na ostatní trestné činy. Z naší analýzy vyplývá, že pod vlivem alkoholu bylo spácháno nejvíce fyzických napadení. Následovaly krádeže automobilů a loupeže.



Dále jsme zjišťovaly, zdali mají na kriminalitu vliv i další faktory. První z nich byla výše mzdy. Pro tuto analýzu jsme si zvolily rok 2015. Naší hypotézou bylo, zdali v oblastech s nižší průměrnou mzdou dochází k vyšší kriminalitě. Praha, která je na první místě s nejvyšším počtem trestných činů, má zároveň nejvyšší průměrné mzdy. Ostrava, která v kriminalitě zaujímá třetí místo, je s průměrnou mzdou až na pátém místě.


Následně jsme pro stejnou tabulku použily data o nezaměstnanosti a snažily se potvrdit/vyvrátit další hypotézu: je větší kriminalita tam, kde je i větší nezaměstnanost? Tabulku jsme seřadily dle nezaměstnanosti – příčce vévodí Ostrava, která je však v počtu trestných činů až na 3 místě. Druhá největší nezaměstnanosti je v Ústí nad Labem, kde je překvapivě naopak jedna z nižších hladin kriminality. Naopak Praha, která má největší množství trestných činů, je v žebříčku nezaměstnanosti až na čtvrtém místě.

Další otázkou bylo, zdali kriminalitu ovlivňuje výskyt cizinců. Data, která máme k dispozici pro rok 2015 nám poskytují údaje o počtu Rusů, Ukrajinců, Slováků a Vietnamců na našem území v jednotlivých městech. Na křivku jsme pak promítly celkový počet trestných činů za rok 2015. Na prvním místě v počtu trestných činů i cizinců se vyskytuje Praha. Na druhém místě v trestných činech i přílivu cizinců je Brno, a v těsném závěsu Ostrava. 



Zobrazení pomocí těchto grafů je sice přehledné, ale zajímala nás přesná korelace.

Použití korelační analýzy

V dalším kroku jsme se tedy zaměřily na korelační analýzu – ta posuzuje vzájemné vztahy pomocí korelačních koeficientů. Nejčastěji se využívá Pearsonův korelační koeficient, který vyznačuje těsnost vztahu dvou znaků ve vztahu k přímce. Pearsonův korelační koeficient se značí písmenem r a nabývá hodnot od -1 do 1. Míru závislosti podle tohoto koeficientu lze interpretovat pomocí násl. kritérií:
0,1 – 0,3 korelace slabá
0,4 – 0,6 korelace střední
0,7 – 0,8 korelace silná
nad 0,9 korelace velmi silná
K výpočtu Pearsonova korelačního koeficientu jsme použily excelovský analytický nástroj Korelace. Tento nástroj je obsažen v položce Analýza dat


Pokud tuto položku nemáte ve svém excelu, stejně jako my, je možné ji nastavit pomocí těchto kroků: klikneme na ikonu Soubor, otevřeme Možnosti aplikace Excel, vyberme položku Doplňky, nastavíme Analytické nástroje jako Aktivní doplněk k dispozici a klikneme na tlačítko Přejít. Zaškrtneme Analytické nástroje a potvrdíme OK.



Pro samotný výpočet jsme pak použily následující cestu: přes položku Data a v hlavním menu se nám objeví nová položka Analýza dat: 1. Klikneme na Analýza dat ze seznamu analytických nástrojů a vybereme položku Korelace.

Výsledkem tohoto procesu je tabulka, v jejíchž řádcích a sloupcích jsou uvedeny všechny zkoumané znaky, čísla uvnitř matice jsou hodnoty Pearsonova korelačního koeficientu pro zadanou dvojici znaků. Je zřejmé, že nejsilnější pozitivní závislost je mezi celkovou kriminalitou a výskytem cizinců v daném městě, pak také mezi celkovou kriminalitou a mzdou. Mezi celkovou kriminalitou a nezaměstnaností se potvrdila pouze střední závislost, avšak je zde také patrná.

Použití regresní analýzy

Dále jsme se zaměřily na regresní analýzu – metoda regresní analýzy hledá matematické vyjádření vztahu mezi zkoumanými znaky a dává odpověď na otázku, zda lze jeden znak odhadnout na základě jiného nebo jiných znaků a s jakou chybou. Regresní analýzu jsme použily opět v programu excel pro ověření správnosti analýzy korelační.

Postup regresní analýzy lze shrnout do těchto bodů:
1. Sestrojíme bodový graf.
2. V řadě případů lze vztah popsat přímkou, zvolíme tedy typ regresní křivky a vypočítáme její koeficienty. V grafu si také přidáme spojnici trendu pomocí trendu lineárního a také si zatrhneme možnosti zobrazení rovnice regrese a hodnota spolehlivosti.



3. Zhodnotíme kvalitu našeho řešení pomocí koeficientu determinace neboli R2 . Tato hodnota nám udává procento, jakým je rozptyl hodnot závisle proměnné veličiny Y (cizinci; nezaměstnanost; mzda) vysvětlen změnami hodnot nezávisle proměnné veličiny X (celk_krim). Koeficient nabývá hodnot od 0 do 1. Čím je hodnota vyšší, tím je nalezený model kvalitnější. V případě lineární regrese je koeficient determinace roven druhé mocnině Pearsonova korelačního koeficientu. V našem případě byl koeficient determinace pro znaky celk_krim/cizinci R² = 0,8367, což je poměrně vysoké číslo, když jej převedeme do procentuální hodnoty, zjistíme, že námi vybraný lienární model byl vhodně zvolený. Totéž platí i pro výsledný koeficient determinace pro znaky celk_krim/mzda jehož hodnota je R² = 0,6218.

Pro kontrolu správnosti našeho řešení jsme použily dva postupy výpočtů. První postup byl pomocí klasické funkce CORREL v Excelu pro každý rok a každá znak zvlášť. Posléze jsme si hodnoty ještě graficky vyjádřily, také pro ověření a kontrolu.


V druhém postupu jsme již nepoužily vzorce, ale analytické nástroje Korelaci a grafické znázornění pomocí Regresní analýzy.












Je patrné, že oba postupy vyšly se stejnými výsledky.



A co takhle nějaký prográmek na závěr?

Jelikož už jsme si v Power BI zodpověděly vše, co jsme si stanovily a dostaly jsme od Czechitas nějaký ten čásek do odevzdání projektu navíc, rozhodly jsme se v pythonu naprogramovat ještě prográmek, který využije data pro skutečný přínos pro praxi – je možné jej využít například pro realitní kanceláře či jakékoliv jiné subjekty, poskytující nemovitosti v dané lokalitě/městě. Klient zadá lokalitu (zatím vztaženo na město, ale pro budoucí využití se dá lokalita upřesnit třeba na danou ulici – po zpracování a nahrání dalších konkrétních dat) a program mu vypíše informace o průměrné výši mzdy, počtu nezaměstnanosti, počtu cizinců a kriminalitě. Veškeré informace potom shrne do pořadí, ve kterém se dané město nachází.






A jak to vypadá?

Odpověď po zadání města Prahy vypadala takto:
Vážený kliente, zadejte město, které Vás zajímá: "Praha"
Ve městě Praha je průměrná výše hrubé mzdy 34 784 Kč, nezaměstnaných je zde průměrně 15 333 osob, výskyt cizinců je zde průměrně okolo 183 580 osob a počet trestných činů je ve výši 57 084 ročně. Toto město je z hlediska výše mzdy na 1. místě, dle nezaměstnanosti na 1. místě, dle výskytu cizinců na 5. místě a dle počtu trestných činů na 1. místě.
Chcete zvolit další město?

Ukázka v příkazovém řádku:


Je den do odevzdání – a my konstatujeme celé šťastné: zvládly jsme to! Dokonce pro nás lépe, než jsme si vůbec na začátku dokázaly představit. Určitě tímto neplánujeme náš projekt odložit do šuplíku – ba naopak! Práce na něm nás bavila a teď když bude více času, čeká nás další výzva v podobě doplnění analýzy o další data, kterými můžeme rozšířit nejenom zkoumané otázky, ale také uživatelskou přesnost našeho prográmku. Hrozně moc bychom chtěly poděkovat našemu mentorovi, Joemu, za neskutečnou trpělivost a ochotu s jakou nám pomáhal. Digitální akademie je u konce, a i když to pro nás mnohdy nebylo lehké, jsme šťastné za to, co nám dala - bylo to jedno velké dobrodružství, poznaly jsme plno skvělých lidí a získaly mnoho nových informací. Jsme šťastné, že i přes slabé chvilky, které nás v průběhu postihly, jsme neztratily hlavu a dotáhly to do konce :-)



Komentáře

Populární příspěvky z tohoto blogu

Barbora Junová: Podpora začínajícího podnikání zaměřeného na prodej výrobků a poskytování služeb

Petra Havlínová: Automatické zpracování podkladů pro vyhodnocení vybraných KPI

Kateřina Kolouchová & Lenka Tomešová: Vliv počasí na kriminalitu v New Yorku a Brně