Ką turi mokėti analitikas

Neseniai iš skaitytojo gavau klausimą: ką turi mokėti analitikas? Klausimas ne toks jau paprastas, nes neužtenka išvardinti kelias programavimo kalbas ar paminėti kelias technologijas: negali būti jokio baigtinio sąrašo prie kurio sudėliojus varneles galėtum sakyti, kad, va, šitas analitikas tikrai yra geras. Juk tai tėra tik įrankiai.

Nors daugelis analitiko negali įsivaizduoti be matematikos ar statistikos žinių, manau, kad pati svarbiausia sritis, kurią turi išmanyti analitikas yra verslas, kuriame jis dirba. Juk jokios naudos iš to, kad gali sudaryti labai protingą statistinį modelį, jeigu verslas iš to negali padaryti jokių protingų įžvalgų. Sugebėti užduoti teisingus klausimus ir į juos atsakyti gal ir ne šimto procentų užtikrintumu, bet greitai ir efektyviai versle yra labai svarbu. Ir labai dažnai būna, jog teisingai ir laiku užduotas klausimas („o mes toje šalyje sudarėme galimybes atsiskaityti debetinėmis kortelėmis?“) atneša žymiai daugiau naudos nei sudėtingi modeliai, beribės procesoriaus galios bei aukštosios matematikos diplomai. Gal būt dėl to ne visada akademinėje srityje daug pasiekusiems žmonėms sekasi dirbti analitikais: tam reikia kiek kitokios patirties, greito mąstymo ir susitaikymo su tuo, kad nemažai sprendimų gali būti ir klaidingi.

Verslo poreikių supratimas sudėtingas ir tuo, kad nelabai aišku, iš kur to mokytis – tai įgyjama per patirtį. Kai jau matai nebe pirmą ekonomikos nuosmukį, gali numatyti, kas bus su apyvartinėmis lėšomis, kai siuvi nebe pirmas kelnes, žinai, kad šitos medžiagos tiekėjas kartais vėluoja, kai klientų kreditingumą analizuoji nebe pirmus metus, supranti, kad verta atsižvelgti ir į kliento amžių ar šeimyninę padėtį. Bet tokios informacijos neperskaitysi kokioje nors vienoje knygoje: reikės ilgai ir aktyviai tuo domėtis. Todėl labai svarbu, kad analitikas būtų žingeidus, domėtųsi savo analizuojama sritimi bei mokėtų uždavinėti teisingus klausimus. Atsakymai ateis su patirtimi.

Aišku, techninės žinios analitikui irgi reikalingos: juk reikia mokėti iš duomenų atrasti dėsningumus. Kadangi nemaža analitiko darbo dalis yra duomenų traukimas ir valymas, analitikui praverstų mokėti elgtis su duomenų bazėmis (dažniausiai tai reiškia, jog vertėtų neblogai žinoti SQL kalbą). Duomenis transformuojant reiktų mokėti kokią nors programavimo kalbą: R, Python, Ruby ar dar ką nors ne itin sudėtingo. Tai labai pagreitina duomenų analizės darbus, jau nekalbant apie tai, kad šių programavimo kalbų reikės norint daryti sudėtingesnes duomenų analizes – Excelis yra lyg vaikiškas kastuvėlis, lyginant su kitais įrankiais, kuriais reikia mokėti norint kapstytis didelių duomenų sankaupose.

Beje, matematikos žinių analitikui ilgai gali neprireikti – jeigu nedaromi sudėtinti dirbtinio intelekto modeliai, visiškai galima apsieiti ir be jos. Matricų algebra tampa naudinga tik labai pažengusiems. Bet be statistikos žinių toli nenueisi: reikia žinoti, kas yra statistinis reikšmingumas tam, kad šią savaitę dviem procentais nukritus pardavimams nepultum į paniką – gal būt tai tik pokytis normalių svyravimų ribose. Neprošal žinoti ir kaip analizuoti laiko eilutes – trendų ir sezoniškumo analizė gali duoti puikių įžvalgų.

Dar viena dažnai pražiūrima analitiko savybė: mokėjimas komunikuoti. Kad ir kokias protingas įžvalgas iš duomenų padarytum, jas reikės papasakoti kitiems kolegoms, ir dažniausiai p-reikšmės, autokoreliacija ir Chi kvadratas jiems absoliučiai nieko nesakys. Geras analitikas moka duomenis prašnekinti: rasti įžvalgas, jas suprantamai pavaizduoti grafikuose ir įtikinamai aprašyti žodžiais (ir nebijoti prieš auditoriją papasakoti jas gyvai). Puikus to pavyzdys yra Gitanas Nausėda – mokėjimas komunikuoti neretai yra svarbiau nei pačios sudėtingiausios akademinės analizės superkompiuteriais. Man pačiam to vertėtų pasimokyti.

Antro rinkimų turo prognozė pasitelkiant neuroninius tinklus

Pirmiausia turiu įspėti: nemanau, kad reikėtų į gautus rezultatus žiūrėti labai rimtai. Neuroninio tinklo mokymui naudojau tik 2012-ų metų Seimo rinkimų apygardų duomenis, tad imtis labai nedidelė, o tai turėtų lemti ir gana nemažą paklaidą prognozėse. Galbūt tikslesnių rezultatų būtų galima tikėtis naudojant apylinkių, o ne apygardų duomenis.

Prognozuoti šių metų rezultatus iš 2012-ų metų duomenų nelengva ir dėl stipriai pasikeitusio partijų populiarumo: žalieji valstiečiai prieš ketverius metus nebuvo labai patrauklūs rinkėjams, o ir Skvernelio atsiradimas labai šią partiją pakeitė. Įdomu tai, kad Darbo partijos bei tvarkiečių kritimas iš aukštumų gana gerai atsispindi neuroninio tinklo rezultatuose: jiems prognozuojama laimėti mažiau apygardų nei jie šiuo metu pirmauja.  Kad ir kaip ten būtų, gavau tokį rezultatą:

Prognozė Dabar pirmauja
LVZS 24 21
TSLKD 24 22
LSDP 9 10
LRLS 5 4
LLRA 3 3
TT 2 4
KITI 1 2
DP 1 3
NEP 2 2

Neuroninis tinklas „išmoko“, jog stiprus lenkų pirmavimas apygardoje dažniausiai lemia ir pergalę antrame ture. Algirdui Paleckiui pergalė neprognozuojama, nes istoriniai pernai metų duomenys rodo, jog „Frontui“ ne itin sekėsi – bet jo puikus pasirodymas pirmame ture tikriausiai buvo netikėtas ir daugeliui politikos analitikų. Keisčiausia prognozė, kuria sunku patikėti yra 52-oje Visagino-Zarasų apygardoje, kurioje antrame ture kausis Darbo partija su tvarkiečiais (pergalė prognozuojama Darbo partijai, nors stipriai pirmauja tvarkietis Dumbrava). Keistoka, bet gal ir logiška 40-osios Telšių apygardos prognozė, kur stipriai pirmaujantis darbietis turi mažai šansų atsilaikyti prieš valstietį Martinkų. Kaip jau minėjau, Darbo partijai šis modelis daug šansų nepalieka. Visas apygardų sąrašas su prognozuojamais nugalėtojais ir tikimybėmis, kad nugalės pirmaujantis:

Turint nedaug istorinių duomenų tikriausiai labiau pasitikėčiau politikos ekspertų prognozėmis konkrečioje apygardoje arba modeliuočiau tikimybes kiek kurios partijos rėmėjų ateis į antrą turą bei palaikys ne savo partijos kandidatą: būtent tokį modelį ruošia WebRobots komanda, kuri leido man pasinaudoti jų surinktais iš VRK duomenimis. Idėja patreniruoti neuroninį tinklą ir kilo susidūrus su problema ar nebūtų galima kaip nors statistiškai išskaičiuoti tikimybių, kiek, tarkim, socialdemokratų palaikytų konservatorių kandidatą jei jis būtų likęs prieš darbietį. Taip pat galima pažiūrėti į Vaidoto Zemlio prognozes.

Post Mortem

Rezutatai buvo stipriai kitokie, nei buvo tikimasi: daugiausiai prašauta (tikriausiai dėl to, kad 2012-aisias valstiečiai pasirodė ne itin įspūdingai) su LVŽS ir TSLKD. Tam tikros tendencijos buvo teisingos – Darbo partija, Tvarka ir Teisingumas bei Socialdemokratai iš tiesų gavo mažiau mandatų nei buvo pirmaujama po pirmo turo, tuo tarpu liberalai sugebėjo laimėti daugiau apygardų nei pirmavo po pirmo turo, tačiau šių pokyčių mastas buvo žymiai (žymiai žymiai) didesnis. Iš viso, neuroniniai tinklai sugebėjo atspėti 48 apygardas (67% tikslumas). Palyginimui – rankomis dėliotas Webrobots komandos modelis pasiekė 80% tikslumą. Tiesa, atmetus kai kuriuos nelogiškus neuroninio tinklo siūlymus, kurie plika akimi atrodė keisti ir pataisius prognozę Dainavos apygardoje dėl Vinkaus skandalo (ko iš 2012-ųjų duomenų niekaip nebuvo galima žinoti), buvo galima pasiekti maždaug 75% procentų tikslumą. Ne kažką, bet šis tas.

Skaičiuojant modelio patikimumą, dažnai žiūrimas plotas po Receiver Operating Characteristic (ROC) kreive (kuo gerenis modelis, tuo jis turėtų artėti link vieneto). Štai modelių palyginimai:

Area under ROC curve
Neuroninis tinklas (tikimybės) 0.597143
Webrobots modelis 0.708095
Neuroninis tinklas (binarinis) 0.549048
Laimės pirmaujantis 1 ture 0.500000
Laimės pirmaujantis daugiamandatėje 0.487619

O čia pačios ROC kreivės:

Skirtingų modelių ROC kreivės

 

Skaitykite toliau

Dvidešimt Nobelio vertų Rusijos istorijų

Istorija po istorijos, puslapis po puslapio, paragrafas po paragrafo: kiekvienas Svetlanos Aleksievič užrašytas sakinys persmelktas skausmu, kančia ir neviltimi. Knygoje „Padėvėtas laikas“ („Second Hand-Time: the Last of the Soviets“) patiekiama dvidešimt pasakojimų apie gyvenimą per pirmąjį dvidešimtmetį po Sovietų Sąjungos subyrėjimo. Temos atsikartoja, nors mozaika spalvinga: vieni herojai buvo nuoširdūs komunistai, kurie dar dabar liūdi dėl to, kad buvo sugriauta didžioji idėja, kuriai jie paskyrė savo geriausius gyvenimo metus, kiti herojai – nuoširdūs demokratai, kurie buvo išsiilgę laisvės, tik laukinio kapitalizmo metais nesugebėję ja pasinaudoti. Dabar jie viskuo nusivylę, niekuo netikintys ir norintys grįžti atgal. Dar yra tie herojai, kurie tik nori kažkiek ramybės: vos tik griuvus Sovietus sąjungai armėnai ėmė dar aršiau nesugyventi su azerais, o Tadžikijoje kilo pilietinis karas. Tautų brolybė, pasirodo, irgi buvo sovietinis mitas. Dabar jie – žemesnės kastos „čiurkomis“ laikomi pabėgėliai ir neregistruoti juodabarbiai Maskvoje. Šviesos šiose istorijose nedaug.

Apie Rusiją galima prisiskaityti daug baisių knygų: nuo Politkovskajos iki Browderio. Niekam vakaruose ne paslaptis, kad verslo sąlygos ten ypač sunkios, kad žodžio laisvės nedaug, kad korumpuotesnių valstybių Europoje nerasi, kad visai nesunku disidentui prarasti gyvybę. Bet ši knyga mane sukrėtė žymiai giliau. Joje nėra vietos vilčiai, kad žmonės nori kažką keisti ir gyventi kitaip. Joje nėra vietos vilčiai, jog užtektų pakeisti valdžios viršūnes ir viskas pradėtų šviesėti. Valdžios pakeitimo neužtenka pakeisti tautos idealų ir gyvenimo būdo.

Rusijai gyvybiškai reikia didžios idėjos. Turint didžiąją idėją galima dėl jos aukotis, lieti kraują, prakaitą ir ašaras, nes tada bent jau jautiesi, jog auka yra ne veltui. Amerikoniškoji svajonė užsidirbti milijoną rusams svetima: tai kažkaip vulgaru, netgi menka, palyginus su tokiomis idėjomis kaip visų žmonių lygybė, socialistinė revoliucija, kova su nacizmu, komunistinio mokslo pasiekimai ar skrydžiai į kosmosą. Tad pirmieji dešimtmečiai po Sovietų sąjungos subyrėjimo rusams buvo ypač skaudūs: iki tol buvę didžia tauta su aiškia misija skleisti pasaulyje komunizmą jie liko be tikslo. Statyti kapitalizmą? Tai banditų, vagių ir kitokio plauko oligarchų reikalas, paprasti žmonės čia nebuvo laimėtojai, jie liko apvogtųjų vietoje.

Kaip sakė vienas knygos herojus: „Mūsų niekas nemokė būti laisvais, mes tik mokame už laisvę mirti“. Ir visas gyvenimas yra kova arba bent jau pasiruošimas jai: su buožėmis, buržuazija, su naciais, su liaudies priešais, su vakarais, su kapitalistais. Tereikia, kad kažkas nurodytų, kas yra dabartiniai priešai ir iš karto pasidaro lengviau. Bent jau aišku, su kuo kovojama, dėl ko aukojamasi, galima jaustis kažko didesnio dalimi. Turėti tikslą, matyti prasmę. Ir nors Putinas šioje knygoje yra beveik neminimas, bet skaitant visas tas istorijas negali galvoti apie nieką kitą: visiškai logiška, kad Putinas yra visų tų žmonių gelbėtojas, nes jis suteikia jiems prasmę. Kaip ir Rusų Ortodoksų Bažnyčia, kuri irgi išgyvena renesansą.

Tie, kuriems sunkiai sekasi kapitalizme, yra ne šiaip nusivylę, jie dar ir jaučiasi negerbiami. Iki tol jie buvo „paprasti žmonės“, o per naktį jie tapo „prastuomene“. Iki tol jie galėjo didžiuotis, jog jie – darbininkai, gauti pagyrimo raštus iš profsąjungos, ir, kaip visi, po penkerių metų eilėje gauti paskyrą Žiguliui. Dabar – jie skurdūs „runkeliai“ ir „vatnykai“, kurių net niekas neišklauso. Anksčiau jie tikėjo, jog jie kovoja su kapitalizmu, o štai šis kapitalimas buvusiam partijos sekretoriui atnešė pilį ir jachtą. Skurdą dar būtų galima pakęsti, jeigu niekas tavęs neįžeidinėtų.

Įdomus ir nusivylusios inteligentijos vaidmuo – tų, kurie virtuvėse slapta klausė Laisvosios Europos radiją ir skaitė Solženitsiną, kurie mintinai galėjo deklamuoti Rusijos klasikus ir kurių namuose nebetilpdavo knygos. Virtuvinė rezistencija liko bevaisė: nauja santvarka geriausiai pasinaudojo spekuliantai ir apsukruoliai, o pilietinė visuomenė taip ir nesubrendo naiviai svajodama apie demokratijos vertybes, taip ir nieko nepadariusi, kad tos vertybės būtų įdiegtos realybėje. Nebuvo, kas uždegtų tautą tokiai didžiai idėjai, o dabar vėl galima grįžti prie virtuvės stalo ir ramiai paburbėti, kad gyvenimas blogėja, niekaip neprieinant prie išvados, jog žmogaus likimas priklauso jam pačiam, o ne kažkam valdžioje.

Dalykas tas, kad demokratijos nenusipirksi už dujas ar naftą, jos neimportuosi kaip bananų ar šveicariško šokolado. Ir prezidentiniu įsaku jos neįvesi… Tam reikia laisvų žmonių, o tokių pas mus nebuvo. Ir dar dabar jų neturime.

Ką skaičiau migdydamas dukrą

Nebūčiau pagalvojęs, kad susilaukus dukros atsiras tiek daug laiko skaitymui. Kuo ji neramesnė, tuo ilgiau ją reikia nešioti ant rankų ir migdyti savo glėbyje. Kuo ji neramiau miega, tuo ilgiau ją reikia glausti prie krūtinės ir tuo vėliau perkelti į lovytę. Kuo ilgiau ją tyloje migdai glėbyje, tuo daugiau puslapių perverti Kindle skaityklėje. Dešimt knygų per penkias savaites.

  • Sydney Finkelstein – „Superbosses“. Yra tokių puikių vadovų, su kuriais labai norisi dirbti, nors žinai, jog bus labai sunku: iš tavęs bus daug reikalaujama, bet su šypsena arsi po devyniais prakaitais, nes jie ras kaip tave tinkamai motyvuoti. Su tokiais vadovais gal ir neįmanoma be poilsio išdirbti kelis dešimtmečius, bet laikas su jais atsipirks itin vertinga patirtimi: išmoksi tiek, kad puikiai pats savarankiškai galėsi imtis vadovauti. Tokie vadovai nesimėto, jie išskirtiniai. Jie moka pavaldiniams leisti elgtis savarankiškai ir daryti klaidas, bet tuo pačiu jie ir visada šalia jei reikia patarimo ar pagalbos. Jie neužsiima mikrovaldymu, bet jie detaliai žino kiekvieno darbuotojo problemas ir giliai išmano verslą. Jie atviri idėjoms, bet jie turi ir savo viziją, kuria sugeba užkrėsti aplinkinius. Jie tokie ryškūs, jog didžiuojamasi, kad su jais dirbai, ir tai savaime yra darbuotojo kokybės ženklu. Tema įdomi, bet knygai kiek pritrūko analizės gilumo kaip tokiu vadovu tapti. Deja, dažnai atrodė, jog tai tik anekdotinių istorijų apie kai kuriuos žymius vadovus rinkinys.

  • Alec Ross – „The Industries of the Future“. Po skyrių vienai ateities sričiai – genų inžinerijai, duomenų analizei, robotikai, kibersaugumui, finansų technologijoms. Apie tai, ko galima tikėtis, ir kaip tai pakeis pasaulį. Gaila, kad paviršutiniškai, su naiviu paauglišku susižavėjimu, krykštaujančiu balsu apie tai, kaip viskas jau tuoj pasikeis ir jau kitąmet skraidysime nuosavomis raketomis. Na, kiek perdedu, bet pasirodė, jog autorius nekritiška ausimi prisiklausęs daug visokių idėjų ir nelabai įsigilinęs į jų įgyvendinimo sudėtingumą. Bet gal taip pasirodė todėl, kad tik prieš tai buvau pabaigęs knygą apie genetiką – skyrius apie genų inžineriją atrodė ypač silpnas.

  • Paul Silvia – „How to Write a Lot“. Nebloga trumpa knyga apie akademinį rašymą. Gaila, kad neskaičiau jos tuo metu, kai reikėjo rašyti magistrinį darbą. Viena labai patikusi knygos mintis, kurią reiktų ir man pačiam dažniau taikyti: kiekvieną dieną paskirti kažkiek laiko rašymui. Nėra tokio dalyko kaip writer’s block – to jausmo, kai rašytojui užkietėja plunksna ir jis negali išspausti nei vieno protingo žodžio. Jei įpranti kasdien sėsti ir rašyti, tai daug ir parašai. Svarbu nesiblaškyti ir nelaukiant įkvėpimo žiūrėti tai kaip į darbą.

  • Jordi Torres – „First Contact with Tensorflow“. Jei perskaitėte visus mokomuosius straipsnius apie Tensorflow jų pačių svetainėje, tai šios knygos skaityti neverta, nes joje visiškai tas pats. Skaitykite ką nors kitą.

  • Roy Clark – „Writing Tools“. Kažkas panašaus į klasikinę Strunk ir White knygą „Elements of Style“: kalbos stiliaus ir fabulos patarimai, kurie padės visiems, kurie ką nors rašo – nesvarbu ar romanus, ar emailus, ar dienoraščio įrašus. Mokykloje kalbos kultūra atrodė viena iš beprasmiškiausių pamokų (gal dėl to, kad nelabai ko ten išmokė), bet dabar tokias knygas skaitau su malonumu.

  • Siddhartha Mukherjee – „The Gene: the Intimate History“. Apie šią knygą rašiau atskirame įraše, tad nebesikartosiu. Labai patiko, nes ją perskaitęs daug sužinojau apie sritį, kuri iki tol buvo tamsus miškas. Būtina perskaityti tam, kad užpildyti bendrojo išsilavinimo spragas apie genetiką.

  • Chris Voss – „Never Split the Difference“. Geriausia skaityta knyga apie derybų strategiją. Ir smagiausiai susiskaičiusi iš šių dešimties knygų. Plačiau apie ją jau rašiau, tad jei dar jos neskaitėt, imkit ir perskaitykit.

  • Martin Lindstrom – „Small Data. Tiny Clues that Uncover Huge Trends“. Mintis nebloga: kartais visai nereikia perknisti terabaitų duomenų, kad rastum kokią vertingą įžvalgą. Kartais užtenka pasišnekėti su dešimčia klientų ar stebėti jų elgseną. Pilnai galima su tuo sutikti. Tik ar galima iš tų kelių stebėjimų daryti tokias toli siekiančias išvadas – abejočiau. O Martin Lindstrom daro: stebėdamas kelias dešimtis Indijos uošvienių jis supranta, jog jos nuo marčių labiausiai skiriasi tuo, kad turi spalvotų prieskonių dėžutę, ir kad žmonės labiausiai mėgsta tą spalvą, kuria buvo dažytos jų vaikystės kambario sienos (ir visai nesvarbu, jog atidžiau renkant duomenis vargu ar ši teorija pasiteisintų). Bet knygoje daug smagių istorijų: skaitai, netiki, bet vis tiek norisi versti puslapius, nes gal kitas skyrius bus panašus į dar vieną Mad Menų seriją, kurioje Don Draperis aiškins apie tai, ką turi simbolizuoti Heinekeno buteliukas ir ką iš tiesų nori jausti namų šeimininkės. Rinkodara ir istorijų kūrimas šioje knygoje permuša statistiką ir loginį požiūrį, bet kartais reikia ir to.

  • Yuval Noah Harari – „Sapiens. A Brief History of Mankind“. Pirmas knygos trečdalis apie seniausią priešistorę labai stiprus: jį perskaičiau su didžiuliu malonumu. Žmonijos progresas nebūtinai reiškė, jog žmonija taps laimingesnė: perėjus prie žemės ūkio žmonių padaugėjo, bet vargu ar žemdirbys tapo laimingesnis už medžiotoją. Labai įdomi ir mintis, kad svarbiausias mūsų atradimas yra vaizduotė – demokratija, pinigai ar valdžia tėra mūsų kolektyvinės vaizduotės vaisius, bet kadangi mes visi tai įsivaizuojame taip pat, tai šie vaizduotės padariniai labai realiai veikia mūsų realybę. Antra knygos pusė išsikvėpė, autoriaus idėjos nebe tokios kokybiškos: jaučiasi, lyg nuo Lietuvos istorijos būtų pereita prie Pasvalio savivaldybės komunalinio ūkio problemų – gal įžvalgos ir teisingos, bet kabina jau nebe taip.

  • Arianna Huffington – „The Sleep Revolution“. Gerai išsimiegoti yra labai svarbu, ir netikėkite jei kas sakys, jog jiems pakanka mažiau nei septynių ar aštuonių valandų miego per parą. Miegas išsprendžia daug problemų: tampame protingesni, geriau priimame sprendimus, ilgiau gyvename, mažiau patiriame streso. Ir gaila, jog mūsų visuomenėje miegas yra nuvertinamas – mes laikome didvyriais tuos, kurie dirba be poilsio, o ir vaikams grasiname, jog jiems teks eiti miegoti, jeigu jie blogai elgsis. Įžvalgos geros, tik jos galėjo sutilpti dvigubai (ar trigubai) trumpesnėje knygoje.

Kaip skiriasi partijos pagal Manoseimas.lt duomenis

Prieš kelias dienas pasirodė manoseimas.lt svetainė, kurioje, atsakius į 12 klausimų, galima pasilyginti, kuri partija buvo arčiausiai jūsų nuomonės. Buvo įdomu paanalizuoti, kurios partijos yra panašiausios ir kiek jos skiriasi. Liberalai ryškiai kitokia opozicinė partija, bet išties, jiems artimiausi socialdemokratai, o ne konservatoriai.

Koreliacijos tarp partijų

Manoseimas.lt pateikia duomenis apie partijų balsavimus dvylika klausimų. Sudėjus visus duomenis į vieną CSV (kurį galima rasti http://petras.kudaras.lt/notebooks/manoseimas.csv) galima paskaičiuoti koreliacijas tarp partijų balsavimo:

data = read.csv2('/Users/petras/dev/manoseimas.csv', sep=',', header=T, row.names=1)
data = data/100
t(data[1:7,])
##                           TT   DP LSDP   AW LRLS   MG TSLK
## Šauktiniai              0.92 0.89 0.96 0.72 0.95 0.79 0.91
## Meras                   0.82 0.94 0.89 0.85 0.31 0.89 0.55
## Internetinis_balsavimas 0.49 0.80 0.91 0.11 1.00 0.74 0.22
## Darbo_kodeksas          0.91 0.79 0.98 0.15 0.95 0.41 0.42
## Švietimas               0.91 0.92 0.86 0.60 0.29 0.63 0.42
## Vaiko_teisės            0.74 0.78 0.91 0.44 0.76 0.40 0.34
## Alkoholis               0.59 0.53 0.55 0.68 0.44 0.75 0.82
## Pensijos                0.79 0.85 0.89 0.25 0.88 0.24 0.30
## Pabėgėliai              0.96 0.91 0.97 0.89 0.59 0.84 0.84
## Dviguba_pilietybė       0.94 0.90 0.94 0.83 0.91 0.81 0.64
## Asmenvardžiai           0.81 0.61 0.69 0.83 0.51 0.29 0.15
## Privati_informacija     0.76 0.76 0.81 0.59 0.75 0.63 0.74
kable(round(cor(t(data[1:7,])), 2))
TT DP LSDP AW LRLS MG TSLK
TT 1.00 0.57 0.50 0.45 -0.08 0.04 0.30
DP 0.57 1.00 0.85 0.07 0.10 0.36 0.13
LSDP 0.50 0.85 1.00 -0.23 0.51 0.12 0.00
AW 0.45 0.07 -0.23 1.00 -0.57 0.48 0.52
LRLS -0.08 0.10 0.51 -0.57 1.00 -0.19 -0.06
MG 0.04 0.36 0.12 0.48 -0.19 1.00 0.68
TSLK 0.30 0.13 0.00 0.52 -0.06 0.68 1.00

Mano paties rezultatai manoseimas.lt svetainėje mane nustebino, nes, pasirodo, mane geriausiai atstovauja Tvarkos ir Teisingumo partija. Iš tiesų, jų koreliacija su mano nuomone yra tampriausia.

kable(round(cor(t(data)), 2))
TT DP LSDP AW LRLS MG TSLK PETRAS
TT 1.00 0.57 0.50 0.45 -0.08 0.04 0.30 0.61
DP 0.57 1.00 0.85 0.07 0.10 0.36 0.13 0.12
LSDP 0.50 0.85 1.00 -0.23 0.51 0.12 0.00 0.07
AW 0.45 0.07 -0.23 1.00 -0.57 0.48 0.52 0.41
LRLS -0.08 0.10 0.51 -0.57 1.00 -0.19 -0.06 -0.01
MG 0.04 0.36 0.12 0.48 -0.19 1.00 0.68 -0.24
TSLK 0.30 0.13 0.00 0.52 -0.06 0.68 1.00 -0.07
PETRAS 0.61 0.12 0.07 0.41 -0.01 -0.24 -0.07 1.00

Pagrindinių komponenčių analizė

Nenuostabu, jog Facebooke daugelis save laikančių liberalais pamatė, jog jiems geriausiai atstovauja LSDP: liberalų koreliacija su šia partija tikrai geriausia. Bet matyt koreliacijos nėra viskas. Gal galima nupiešti partijų pozicijas vienoje koordinačių erdvėje? Tam galima panaudoti pagrindinių komponenčių analizę (principal component analysis) ir išskirti tiesiškai nepriklausomas komponentes. Tada galima pabandyti pavaizduoti partijas viename dvidimensiniame grafike.

  ggbiplot(prcomp(data[1:7,]/100, center=T), scale=0, 
           labels=rownames(data[1:7,]), var.axes=F)

Nieko keisto, kad koalicijos partnerės LSDP, TT ir DP balsuoja labai panašiai - jos ir glaudžiasi viename grafiko kampe. Tuo tarpu LRLS yra labai skirtinga opozicinė partija, ji patenka visai į kitą kampą nuo TSLK ar kitų opozicinių partijų. Kita vertus, nors LRLS ir geriausiai koreliuoja su LSDP, ji tolokai nuo jos nutolusi. Lygiai kaip ir nuo TSLK.

Tai į ką aš panašus?

Padariau interaktyvų grafiką: pastumdžius atsakymus, galima pastebėti, kaip artėjama ar tolėjama nuo vienos ar kitos partijos. Labiausiai nuo liberalų skiriuosi tuo, kad esu prieš internetinį balsavimą. Būtent šitas klausimas geriausiai atspindi radikalų skirtumą ašyje tarp lenkų AW ir LRLS ir labai stipriai mane atitolina nuo liberalų. Žaistis bus žymiai patogiau, jei atsidarysite šią nuorodą naujame lange: https://petras.shinyapps.io/manoseimas/

Įtakingiausių verslininkų analizė

Vakar dariau šiokią tokią analizę, apie kurią jau rašiau Facebooke. Šiandien tiesiog bandau būdą, kaip įkelti šią analizę į dienoraščio formatą. Geresnę notebook versiją galima rasti čia, o žalius duomenis šiuo adresu.

Svarbiausia pastraipa tiems, kas tingi skaityti viską:

Įdomu tai, kad politikai daug įtakos suteikia asociacijų ir konfederacijų veikėjams, bet verslininkams jie įspūdžio nedaro: grafiko apačioje liko Danas Arlauskas bei Stasys Kropas. Matyt politikams su jais tenka nemažai bendrauti, bet reali jų įtaka kyla ne iš pačių asmenybių, o iš atstovaujamų interesų. Tuo tarpu verslininkai žymiai daugiau reikšmės suteikia Dariui Mockui bei Nerijui Numavičiui: asmenims, kurie atstovauja savo pačių interesus. Gal kiek netikėtai trečias tarp labiausiai politikų nuvertintų verslininkų yra Dalius Misiūnas: energetika verslininkams labai svarbu, bet ji kontroliuojama valstybės ir pačių politikų, tad politikai energetikų galios nesureikšmina.

Tarp didžiųjų bankų ekonomistų irgi įdomus prasilenkimas: Gitanas Nausėda bei Raimondas Kuodis yra politikų ekonomistai, o Nerijus Mačiulis ir Jekaterina Rojaka – labiau verslininkų.

Delfi įtakingiausi verslininkai

Kiekvienais metais portalas Delfi daro svarbių žmonių apklausas ir taip išrenka įtakingiausius šalies žmones. Pasižiūrėjus į įtakingiausių verslininkų rinkimus pasirodė, jog politikai ir patys verslininkai labai skirtingai vertina tam tikrų verslininkų įtaką, tad ką politikai nuvertina ar pervertina?

Tam pirmiausia reikėjo išsivalyti duomenis. Po keliasdešimt search-replace operacijų iš HTML teksto pasidariau švarų CSV, kuris jau tinkamas analizei.

verslas = read.csv2('/Users/petras/datadev/verslininkai.csv', header=TRUE, sep=",")
head(verslas)
##         Verslininkas Politiku_balas Verslininku_balas Pop_balas
## 1    Robertas Dargis            128                89         9
## 2    Gitanas Nausėda             93                62         9
## 3      Darius Mockus             58                68        16
## 4 Nerijus Numavičius             56                62        18
## 5   Nerijus Mačiulis             41                39         4
## 6     Arvydas Avulis             36                22         4
##   Ziniasklaidos_balas Visuomenininku_balas Tarnautoju_balas
## 1                  54                   80              103
## 2                  46                   64               78
## 3                  53                   36               56
## 4                  50                   36               41
## 5                  30                   28               42
## 6                  23                   17               51

Duomenų normalizavimas

Žymiai patogiau dirbti su santykiniais skaičiais, tad absoliučius balus paverčiau į santykinius, padalindamas juos iš kiekvienos kategorijos respondentų skaičiaus (bent jau spėju, jog būtent tai reiškia maksimalus galimas balų skaičius kategorijoje). Santykinis rodiklis reiškia, kokia dalis respondentų pažymėjo konkretų verslininką kaip vieną iš 5 įtakingiausių Lietuvoje.

verslas %>% 
  mutate(Politiku_balas = Politiku_balas / 196) %>%
  mutate(Verslininku_balas = Verslininku_balas / 137) %>%
  mutate(Pop_balas = Pop_balas / 29) %>%
  mutate(Ziniasklaidos_balas = Ziniasklaidos_balas / 93) %>%
  mutate(Visuomenininku_balas = Visuomenininku_balas / 106) %>%
  mutate(Tarnautoju_balas = Tarnautoju_balas / 160) -> verslas

Tiesinė regresija

Pritaikome paprastą tiesinę regresiją.

fit <- lm(Verslininku_balas ~ Politiku_balas, data=verslas) -> fit
summary(fit)
## 
## Call:
## lm(formula = Verslininku_balas ~ Politiku_balas, data = verslas)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.118173 -0.017360  0.002104  0.012048  0.192314 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -0.002738   0.006480  -0.423    0.674    
## Politiku_balas  1.036687   0.049748  20.839   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.04563 on 68 degrees of freedom
## Multiple R-squared:  0.8646, Adjusted R-squared:  0.8626 
## F-statistic: 434.3 on 1 and 68 DF,  p-value: < 2.2e-16

Kad jau turime regresiją, kurios R^2 yra 0.86, galima pasižiūrėti, ką labiausiai vertina verslininkai, lyginant su politikais.

verslas$diff <- residuals(fit)
verslas %>% 
  ggplot(aes(x=diff, y=reorder(Verslininkas, diff))) + theme_light() + 
    geom_point(size=1) + 
    geom_segment(aes(y=Verslininkas, yend=Verslininkas, 
                     x=0, xend=diff, color=(diff>0))) +
    geom_point(size=1) + 
    theme(axis.text.y=element_text(size=6), axis.title=element_text(size=8)) + 
    guides(color=F) + ylab("") + 
    xlab("Verslininkų vertinimas, lyginant su politikais") 

Įdomu tai, kad politikai daug įtakos suteikia asociacijų ir konfederacijų veikėjams, bet verslininkams jie įspūdžio nedaro: grafiko apačioje liko Danas Arlauskas bei Stasys Kropas. Matyt politikams su jais tenka nemažai bendrauti, bet reali jų įtaka kyla ne iš pačių asmenybių, o iš atstovaujamų interesų. Tuo tarpu verslininkai žymiai daugiau reikšmės suteikia Dariui Mockui bei Nerijui Numavičiui: asmenims, kurie atstovauja savo pačių interesus. Gal kiek netikėtai trečias tarp labiausiai politikų nuvertintų verslininkų yra Dalius Misiūnas: energetika verslininkams labai svarbu, bet ji kontroliuojama valstybės ir pačių politikų, tad politikai energetikų galios nesureikšmina.

Tarp didžiųjų bankų ekonomistų irgi įdomus prasilenkimas: Gitanas Nausėda bei Raimondas Kuodis yra politikų ekonomistai, o Nerijus Mačiulis ir Jekaterina Rojaka - labiau verslininkų.

Balsuojančiųjų koreliacijos

Ne visos balsuotojų grupės turi vienodą nuomonę. Galima paskaičiuoti koreliacijas tarp skirtingų balsuotojų.

cor(verslas %>% select(-Verslininkas, -diff))
##                      Politiku_balas Verslininku_balas Pop_balas
## Politiku_balas            1.0000000         0.9298451 0.6915122
## Verslininku_balas         0.9298451         1.0000000 0.8094200
## Pop_balas                 0.6915122         0.8094200 1.0000000
## Ziniasklaidos_balas       0.8891672         0.9622906 0.8549599
## Visuomenininku_balas      0.9585121         0.9400149 0.6876915
## Tarnautoju_balas          0.9715207         0.9244120 0.6896682
##                      Ziniasklaidos_balas Visuomenininku_balas
## Politiku_balas                 0.8891672            0.9585121
## Verslininku_balas              0.9622906            0.9400149
## Pop_balas                      0.8549599            0.6876915
## Ziniasklaidos_balas            1.0000000            0.8930495
## Visuomenininku_balas           0.8930495            1.0000000
## Tarnautoju_balas               0.8978414            0.9541088
##                      Tarnautoju_balas
## Politiku_balas              0.9715207
## Verslininku_balas           0.9244120
## Pop_balas                   0.6896682
## Ziniasklaidos_balas         0.8978414
## Visuomenininku_balas        0.9541088
## Tarnautoju_balas            1.0000000

Atrodo, jog labiausiai išsišoka Popkultūros ir sporto atstovų nuomonė. Jų atotrūkis dar geriau matosi spalvotame grafike:

qplot(x=Var1, y=Var2, 
      data=melt(cor(verslas %>% select(-Verslininkas, -diff))), 
      geom="tile", fill=value) +
  xlab("") + ylab("") + guides(fill=F) + theme_light() + 
  theme(axis.text.x=element_text(angle=90)) 

Nenuostabu, kad tarnautojai ir politikai turi labai panašias nuomones (koreliacijos koeficientas net 0.97). Šiose dviejose grupėse buvo apklausta net 160 + 196 = 356 respondentų, tad vienoda valdininkų/politikų nuomonė rinkimuose yra labai stipriai reprezentuojama. Žiniasklaida yra antra labiausiai „nepriklausoma“ grupė (koreliacija su kitomis grupėmis mažesnė nei 0.9), nors jos nuomonė geriausiai koreliuoja su verslininkų nuomone.

Nauji dalykai, kuriais džiaugiesi tapus tėčiu

Pirmas garsus vaiko klyksmas tik atėjus į pasaulį, nes žinai, kad nuo šiol viskas bus kitaip;

Pirma tylos minutė po kelių valandų klyksmo vaikui pagaliau užmigus, nes gal galėsi gauti akimirką atokvėpio;

Pirma plati vaiko šypsena vos ryte tave pamačius, nes ji nubraukia visą susikaupusį nuovargį ir bemiegę naktį;

Laisvas pusvalandis, kai vaikas dieną miega, nes galima vėl veikti tai, kas prieš buvimą tėčiu buvo visiškai įprasta;

Laisva minutė su žmona, kai vaikas miega ramiai ir nebesiveja buitis, nes galima tiesiog pabūti kartu nieko neveikiant;

Kartais pasitaikančios stebuklingos naktys, kai neprabudęs gali išsimiegoti bent šešias valandas;

Pilnos vaiko sauskelnės ir garsus oro gadinimas, nes tai didina šių stebuklingų naktų tikimybę;

Švelnus pavargusios dukros prisiglaudimas tau prie krūtinės paėmus ją ant rankų;

Aplinkinių dėmesys, kai išdidžiai su dukra rankose žygiuoji per Gedimino prospektą;

Tave vis sekantis dukros žvilgsnis, kai tik įeini į kambarį, lyg tu būtum pats įdomiausias dalykas visatoje;

Kiekviena nauja diena, kuri atneša kažką naujo.

Duomenų analitiko darbas dažniausiai yra duomenų valymas

Turbūt didžiausias skirtumas tarp mokykloje ar universitete darytų duomenų analizių ir realaus pasaulio yra turimų duomenų kokybė. Rašėm savaitgaliais magistrinius darbus, pasižiūrėdami į kursiokų failus darėm „statistikos laboratorinius“, sprendėm uždavinius bei iš vadovėlio atkartojom nelabai suprantamas ekonometrinius modelius – ir  beveik visada duomenys buvo duotybė. Ar tai būtų BVP augimo eilutė iš Statistikos departamento, ar Olimpiadų medalių suvestinė: beveik visada duomenys buvo švarūs, tvarkingi, be klaidų, be neužpildytų eilučių, be praleistų kablelių, romėniškų skaitmenų, sunkiai įskaitomo buhalterės Janinos rašto ir pasimetusių sąskaitų-faktūrų. Tereikėdavo tuos duomenis paimti, sudėti į modelį, sukalbėti kelis užkeikimus ir gaudavai vienintelę teisingą p reikšmę ir iš to sekančią išvadą. Didesnis nedarbas yra mažesnė infliacija. Narystė Europos Sąjungoje didina akcijų kainas. Marytė suvalgo daugiau obuolių nei Jonukas.

Skirtingai nei universitete, realybėje duomenys beveik niekada nebūna aiškūs ir tvarkingi. Dažniausiai tau reikiamų duomenų tiesiog nėra (ar daug kas kaupia duomenis apie kiekvienos fizinės parduotuvės kasvalandinį lankytojų srautą?). Jeigu jų galima rasti – jie nepatikimi, nes iki galo nežinai, ar kiekviena apskaitininkė visose Baltijos šalyse prieš penkerius metus vienodai koduodavo gautas sąskaitas. Jeigu jais galima pasitikėti, jie tikriausiai būna nepilni – vienur trūksta detalumo, kitur kažkas nusimušę, trečioje vietoje duomenys nepasiekiami, nes jie nesuskaitmenizuoti. Jau nekalbu apie tai, kad visur yra ir žmogiškas faktorius: kažkur vardas įvestas į pavardės grafą, kažkas sumas vietoje eurų įrašė litais. Kuo daugiau duomenų (ir ypač jei kalbam apie didelius duomenis be struktūros) tuo didesnė duomenų analitiko darbo laiko dalis yra ne sudėtingas duomenų modeliavimas ar rezultatų interpretavimas, o duomenų tvarkymas bei paruošimas analizei. Sakoma, kad šiam kruopščiam ir nuobodokam darbui analitikai sugaišta nuo 50 iki 80 procentų savo darbo laiko.

Gerai sutvarkyti duomenys yra aukso vertės. Tai tokie duomenys, kuriuose nebėra erdvės interpretacijoms, kuriuose nelikę klaidų ir kuriais tvirtai galima remtis darant verslo sprendimus. Tik juos išvalius galima kurti sudėtingus modelius bei algoritmus, o iki tol reikia praleisti ne vieną valandą rymant prie duomenų kokybės. Toks analitiko darbas.

Kada duomenys gali padėti priimti sprendimus?

Prieš pusantrų metų mano rašytas dienoraščio įrašas apie duomenų kultūrą organizacijose pastarosiomis savaitėmis vėl iš naujo užkabino skaitytojus: šia tema parašė „Verslo žinios“ ir apie tai nemažai buvo kalbama Login koridoriuose. Matyt, kompanijose duomenų atsiranda vis daugiau, tik dar nelabai aišku, kaip iš jų išpešti naudos.

Kad ir kaip skambėtų neįprastai, manau, jog duomenų analizėje sudėtingiausia yra ne algoritmai ir ne duomenų infrastruktūra. Svarbiausia ne kur stovi jūsų serveriai, kokia kalba parašytos jūsų duomenų apdorojimo programos ar kuris kietas matematikas darys statistinę jūsų klientų analizę. Svarbiausia, ar jūsų kompanijos kultūra leis jums priimti verslo sprendimus remiantis šaltais ir objektyviais duomenimis, nekreipiant dėmesio į vidinį politikavimą ir norą prieš vadovą pasirodyti geresniu nei esi. Iš duomenų analizės jokios naudos (o netgi sakyčiau dar blogiau – ji žalinga!), jeigu ji naudojama tik savo išankstinei nuomonei apginti bei parodyti, kad jūsų padalinys dirba puikiai. Analitikai turėtų būti skatinami ieškoti kontraargumentų vyraujančiai nuomonei, nes duomenys tam ir yra, kad sprendimai būtų priimami ne vien tik pagal vadovo šeštąjį jausmą. Tai nelengva, jei vadovas galvoja, jog jis geriausiai viską išmano, o jam dirba tik jo valią vykdantys pavaldiniai.

Būti atviram pačiam sau nelengva bet kuriam vadovui. Kartais, žvelgiant į duomenis, reikia giliai įkvėpti ir pripažinti klydus: gal visgi už krentančius pardavimus yra kalti ne konkurentai ar oro temperatūra, o ne itin tobulas pačios kompanijos darbas. Gal nepataikyta su rinkodara, gal buvo problema su sandėliu, gal pritrūko vadybininkų, gal buvo broko ar kokių kitų nesklandumų. Duomenų analizės nauda prasideda nuo atvirumo sau, nuo nuoširdaus noro išsiaiškinti, kur yra problemos šaknys ir noro ją išspręsti. O tai neįmanoma, jeigu kompanijoje vyrauja kaltų paieškos kultūra: natūralu, kad visi stengsis duomenis pagražinti ir parodyti save kuo geresnėje šviesoje.

Tad kai šiomis dienomis kas nors manęs paklausia, ko reikia imtis pirmiausia, kad duomenys padėtų priimti verslo sprendimus, atsakau, jog tai vadovų tikėjimas duomenų kultūra ir realus noras prisikasti iki tiesos. Net geriausi algoritmai jūsų verslui nepadės, jei sprendimai ir toliau bus priimami vien tik remiantis nenuginčijama aukščiausio vadovo nuomone arba jei save pagiriant analizės bus naudojamos tik gražesniam paveikslui valdybai pateikti. Pradėti reikia nuo kompanijos kultūros.