Najčastejšie analytické chyby – Korelácia

Dobré inštruktážne video alebo školenie sa pozná aj podľa toho, koľko chybných krokov vám popíše. Keď totiž s niečím novým začíname, je nejaký druh chyby oveľa pravdepodobnejší výsledok nášho snaženia ako bezchybný priebeh na prvý krát. Je teda vhodné sa chyby naučiť rozpoznávať čím skôr.

Horšie je, keď nejaká chyba beží na pozadí s nami aj niekoľko rokov. Nie sme už greenhorni, ale aj tak sa necháme „nachytať na hruškách.“ V bežnej analytike a Machine Learningu je azda najčastejšou chybou (naraz ťažko rozpoznateľný) rozdiel medzi Koreláciou a Kauzalitou. Niektorí z vás možno pregúľajú očami, že veď ide o triviálnu chybu hodnú prvého ročníka VŠ, ale úskalia tejto chyby potrápia často aj veľmi skúsených analytikov. Aby ste mi verili, rád to vysvetlím na svojom vlastnom príbehu.

Škorpióni za volantom

Výsledok vyhľadávania obrázkov pre dopyt scorpios zodiacV minulosti som bol súčasťou teamu, ktorý pripravoval predikčný model na predpovedanie pravdepodobnosti dopravnej nehody pre rôznych vodičov. Ako správni Data Scientisti (aj keď vtedy sa nám nadávalo ešte do klasických analytikov) sme si pokorne zostavili pomerne rozsiahlu sadu možných prediktorov (parametrov ovplyvňújúcich pravdepodobnosť nehody). Je mojim dobrým zvykom do takýchto analýz vkladať aj žolíky, ktoré na prvý pohľad nemajú nič spoločné s danou témou. Teamy, ktoré to nerobia, si tak zvyčajne iba potvrdia niektorú z pôvodných hypotéz a nič nové o danom správaní klienta sa zväčša nedozvedia. Jedným z mojich žolíkov bolo aj znamenie zverokruhu daného klienta. Áno, znie to šialene, ale nechali sme v serióznej, komerčnej aplikácii otestovať, či ZODIAC (horoskopove znamenie) naozaj má vplyv na to, ako klienti búrajú svoje autá. Môj team sa vzbúril a povedal, že na takej somarine sa odmietajú z princípu podieľať. Tak som spolu s ešte jedným štrajko-kazom ten model nakoniec dokončili sami. No a zostali sme v nemom úžase. Zverokruh bol v TOP 3 najsilnejších faktorov. Konfrontoval som výsledky so zvyškom teamu, vysmiali ma, že manipulujem výsledok, aby som sa im pomstil. Poskytol som celý kód k dispozicii a vyzval som ich, nech teda nájdu v tom chybu, ak si myslia, že som podvádzal. Uznali, že tam chyba nie je, že zverokruh je naozaj silne korelovaný s búraním áut (mimochodom najlepší šoféri sú Škorpióni). Incident však upadol na pár mesiacov do zabudnutia, až kým …

Poviete si WOW, ale kde je tá sľubovaná chyba? Tak ešte jeden odsek, prosím, vydržte pointa už sa blíži …

Magické čísla domov

Výsledok vyhľadávania obrázkov pre dopyt popisné číslo domuV podobnom čase sa iný team snažil o predikciu pravdepodobnosti nákupu istého produktu. Zozbierané opäť boli pomerne rozsiahle údaje o klientoch a začalo sa hĺbanie v dátach, ktoré z faktorov a do akej miery popisujú tendenciu nakúpiť daný produkt. Paradoxne, trochu z nedbanlivosti sa podarilo odhaliť jednu neuveriteľnú koreláciu. Pri kódovaní adresy klienta totiž analytickému teamu uniklo, že trvalá adresa klienta je rozkúsovaná na samostatné polia. A tak sa medzi prediktormi objavilo omylom aj číslo domu. Čo čert nechcel, z modelu zrazu vypadlo, že všetci ľudia žijúcich v párnych číslach domov sú pravdepodobnejší na nákup daného produktu  ako tí z nepárnych čisiel. To znie samozrejme ako riadna blbosť (teda minimálne rovnaká ako ten horoskop), ale skutočne to tak fungovalo. Pri hlbšom zamyslení si však uvedomíte, že ulice sú koncipované tak, že jedna strana má párne čísla a druhá nepárne. Okamžite sa rozvírilo niekoľko argumentov za aj proti tejto predikcii. Nech sme sa na to však pozerali akokoľvek, model mal proste pravdu. Nuž ako to už býva(lo) v tej dobe, Sales oddelenie sa nakoniec rozhodlo ignorovať zacielenie modelu a urobilo kobercový nálet na klientov s ponukou daného produktu. Takže model zapadol na niekoko mesiacov do zabudnutia. Až kým …

Kdepak soudruzi z NDR udelali chybu?

Dôvod prečo som Vám rozpovedal tieto dva príbehy, s ktorými som sa osobne stretol, je fakt, že v oboch vystupuje korelácia dvoch faktorov (v 1. prípade Zverokruh vs. nehodovosť, v 2. prípade Číslo domu vs. Nákup produktu), ktoré vyzerajú na prvý pohľad neuveriteľne, ale predsa majú preukazateľnú koreláciu. Dôvod prečo som tieto príbehy však nechal nedopovedané je, že len jeden z nich skutočne má aj kauzálny vzťah (predikcia funguje v realite), zakiaľ druhý nefunguje a je typickým príkladom toho, že ide len o koreláciu, nie Kauzalitu. (bližší popis tejto chyby v odseku nižšie). Schválne, uhádnete ktorý z dvoch príkladov je skutočný a ktorý sa ukázal ako blamáž?

Rozuzlenie oboch príbehov je predmetom rozšíreného materiálu k tomuto blogu, ktorý je prístupný po zadaní hesla registrovaným čitateľom portálu. Ak teda si registrovaným užívateľom a chceš vedieť ako to dopadlo, použi heslo, ktoré Ti prišlo emailom, a príbehy dočítaj tu. Ak chceš poznať riešenie dilemy Zverokruh vs. Čísla domov a nie si ešte registrovaným čitateľom mocnedata.sk komunity, môžeš sa hneď teraz zaregistrovať bezplatne tu. Heslo Ti príde do 24 hodín od registrácie. 

ListPlot of the simulation data

Uvedené dva príklady nám služia na ilustrovanie rozdielu medzi dvoma podobnými, ale v skutočnosti podstatne rozlišnými typmi vzťahu:

Korelácia dvoch faktorov (javov) je taká situácia, kde hodnoty (alebo zmena hodnoty) jedného z faktorov sa premieta do zmeny hodnoty druhého faktora. Ľudovo povedané, zmeny daného javu sú v takej (dátovej) súvislosti, že ak viem hodnoty jedného, viem pomerne presne odhadnúť akú hodnotu nadobúda ten druhý. Pričom pre výpočet korelácie je jedno, čo skutočne spôsobuje daný vzťah, proste to matematicky funguje.

Kauzalita dvoch faktorov (javov) je taký druh vzťahu, kde dané faktory sú v príčinnej súvislosti. Teda správanie/zmena jedného faktoru má priamy a neodškriepiteľný vplyv na faktor druhý. Ľudovo tento stav pomenúvame, že jeden z faktorov je príčinou a druhý je dôsledkom toho prvého. Ide o reálny (veľmi často aj pomerne jasne vysvetliteľný) vplyv týchto dvoch faktorov, väčšina kauzálnych vzťahov si ľudia pretvárajú do pravidiel (alebo prírodných) zákonov.

Už zo samotných definícií je pomerne zrejmé, že je možné tieto dve veci ľahko zašmodlichať do jedného klbka, v ktorom nie je na prvý pohľad jasné, či ide o kauzalný alebo korelačný vzťah.  Na tomto mieste nie je dosť priestoru do hĺbky vysvetliť dôvody, prečo sa táto chyba tak často objavuje. (doplnil som ich však rovnako do rozšíreného materiálu k tomuto blogu)

Niekoľko ďalších riadkov však skúsim venovať aspoň tomu, ako sa nenechať nachytať na Kauzálno – Korelačnú pascu. Zradnosť toho, že dve veci sú korelované, je v tom, že sa pozeráme na vzťah iba javu A verzus javu B. Napríklad je preukázané, že je veľmi silne korelované to Koľko zmrzliny sa predá (faktor A) s tým, na Koľko ľudí sa utopí v bazénoch sprostredkovany_vztah (faktor B). Táto korelácia však nie je poplatná nejakému vzťahu zmrzliny vs. topenia sa. V skutočnosti sú oba faktory spojené s tým, ako je v danom mesiaci teplo (faktor C). V praxi tak A a B majú len sprostredkovaný vzťah, ktorý vyplýva z postupnosti B->C->A. Zákerné je to preto, že pri sprostredkovaných koreláciach totiž často jav C, cez ktorý sa vzťah medzi A a B skutočne odvíja, vôbec nie je v množine skúmaných parametrov. Inými slovami, existuje na pozadí nejaký ďalší parameter, ktorý tvoj model neskúma, ale ktorý má podstatný vplyv na celé fungovanie. Podstata tejto chyby je o to nebezpečnejšia, že na to, aby sme mohli potvrdiť, že korelácia je aj kauzálnym vzťahom, museli by sme otestovať a vylúčiť vplyv všetkých ostatných pridružených vplyvov. To samozrejme nie je vo väčšine prípadov možné, lebo ani nevieme, čo všetko by otestované byť malo. Je z tohto bludiska teda nejaká cesta von ?

V skutočnosti existujú 4 veci, ktoré môžeš ako analytik urobiť, aby si znížil riziko, že si sa dopustil tejto krutej analytickej chyby:

A) otestovať súvislosť javov na iných (ideálne podstatne väčších) vzorkách. Ak sa ten istý vzťah zopakuje vo viacerých navzájom nesúvisiacich súboroch dát, výrazne sa zvyšuje šanca, že ide o skutočný kauzálny jav a nie „len“ o koreláciu dvoch premenných.

B) dopriať si veľmi veľký počet rôznych parametrov na vstupe do modelu (400+ parametrov napríklad), ktoré prejdu testom vzájomnej korelácie. Týmto krokom sa výrazne znižuje pravdepodobnosť, že existuje nejaký sprostredkovaný vzťah (o ktorom nevieš). Začať preto budovanie prediktívneho modelu s veľkým množstvom parametrov nie je roztopaš, ale cesta ako nepodľahnúť tejto korelačnej pasci.

C) Pokúsiť sa popísať obe strany (aj A aj B) inými parametrami (v našom prípade napríklad objem plnenia z poistenia v nezamestnanosti vs. počet dní na dovolenke za posledných 24M) a otestovať, či aj takto upravené faktory majú stále dostatočne silný vzťah. Ak áno, tak to znižuje šancu na váš kauzálny omyl, ak upravené parametre nedosahujú ani zďaleka rovnaké korelácie, na pozadí úradujú zrejme nejaké sprostredkované vzťahy premenných.

D) otestovať štatistické rozdelenia u oboch faktorov (strednú hodnotu, obor hodnôt, štatistickú odchyľku v pomere k priemeru, šikmosť, strmosť rozdelenia, …). Dva javy sa totiž môžu javiť ako korelované, ak majú podobné rozdelenie (mne sa napríklad stalo v minulosti, že pomerne vysokú koreláciu mi hlásilo na dvoch parametroch len preto, že mali oba podobný rozsah hodnôt (0 až 1). Ak teda dva javy majú len veľmi podobné rozdelenia (ale žiadny vecný súvis), tak ich korelácia je pomerne podozrivá.

Tak či onak, Korelácia a Kauzalita dvoch javov je (a zrejme aj zostane) najčastejšou chybou v analytike, nevyhýbajúcou sa ani tým najskúsenejším harcovníkom. Toto krátke pojednanie o analytických chybách si dovolím zakončiť skvelou analytickou anekdotou:

Ako vyššie uvedený graf dokumentuje, Rozvodovosť rodín v štáte Maine má 99.3% koreláciu s predajom margarínu na národnej úrovni. Mali by teda americké úrady úplne zakázať predaj margarínu? 🙂 V skutočnosti ide o krásny príklad spostredkovaného vzťahu, kde na pozadí hrá rolu úplne iná premenná, ktorá je rovnako korelovaná s oboma popisovanými javmi, čím spôsobuje zdanie vzájomného vzťahu. Čo myslíte aká ?

Ak si chcete pozrieť viac vtipných korelácii, nájdete ich rovnako v rozšírenom materiáli k tomuto blogu.

Rozšírené materiály k blogom,sú prístupné len po zadaní hesla. Ak teda si registrovaným užívateľom a chceš vidieť doplnenie, použi heslo, ktoré Ti prišlo emailom, a doplňujúci materiálu si otvoriš tu. Ak nie si ešte registrovaným čitateľom mocnedata.sk komunity, môžeš sa hneď teraz zaregistrovať bezplatne tu. Heslo na odomknutie doplňujúcich blogov Ti príde do 24 hodín od registrácie.

Držím Vám palce, aby ste Korelačnej pasci odolali vždy, keď budete stáť na jej okraji 🙂