Kur Lietuvoje tolimiausia iki ežero?

Kartais būna taip, kad kažkur netyčia nugirsti kokią minties nuotrupą ir po to ji vis tavęs nepalieka. Taip ir man nutiko: prieš kokį pusmetį ar net metus kažkas kažkur paklausė, kaip būtų galima sužinoti, kur yra artimiausias ežeras. Pagalvojau, kad atsakymą nesunku surasti šiek tiek pakračius atvirus geografinius ežerų duomenis. Bet tada pradėjo kirbėti nauja mintis: o kuri Lietuvos vieta yra toliausiai iki bet kokio ežero? Aišku, bėgo mėnesiai, programuoti nesiėmiau, bet klausimas vis tiek niežtėjo. Šiandien pasikasiau.

Lietuvos taškas, labiausiai nutolęs nuo bet kurio ežero yra šiek tiek į rytus nuo Pašvitinio link Peleniškių kaimo (56.16N, 23.84E). Artimiausias jam – Pasvalyje esantis Šilo ežeras, kuris yra už 35.5 km (kaip varna skrenda).

Taškas (burbuliukas), kur toliausia iki ežero. Paspaudus galima didintis.

Techninės detalės

Naudojausi Overpass Turbo užklausa ežerams atrinkti, tad kaip ir norėjau, visokie tvenkiniai, prūdai ir marios į duomenis nepateko. Tiesa, gali būti kad ir ne viskas pateko, ko reikėjo: tarkim, ne visi Vilniaus Gulbinų ežerai atsirado duomenyse.

[out:json][timeout:50];
// gather results
(
  // query part for: “lake”
  way["natural"="water"]["water"="lake"]({{bbox}});
  relation["natural"="water"]["water"="lake"]({{bbox}});
);
// print results
out body;
>;
out skel qt;

Atstumams nuo taško iki pakrantės taškų naudojausi beveik visu kodu iš šio įrašo. Nedaug ir tereikėjo ką pakeisti.

Duomenų bazių testavimas

Prieš keletą dienų užtikau patikusį straipsnį apie automatizuotus duomenų bazių testus. Programiniam kodui jau senokai tapo įprastinė praktika rašyti testus, bet duomenų bazių struktūra testuojama ne visada. Tiesa, gerai sutvarkytoje duomenų bazėje įmanoma sudėti daug saugiklių: stulpeliams uždėti apribojimus, išorinius raktus ir panašiai, tačiau bendras požiūris į duomenų teisingumą bei validumą vis tiek reikalingas.

Autorius siūlo duomenis testuoti trijose vietose: pirminių šaltinių lygyje, tik juos sukėlus į duomenų bazę ir jau po verslo logikos transformacijų. Šis testų sąrašas atrodo visai nebloga pradžia:

  • Ar visi pirminiai raktai lentelėse unikalūs?
  • Ar [svarbiame stulpelyje] nėra null reikšmių?
  • Ar visi išoriniai raktai egzistuoja lentelėse kaip pirminiai raktai (be dublikatų, ir pan. – referencinis integralumas)?
  • Ar skaitinės duomenų reikšmės neiššoka iš tikėtino reikšmių rėžio?
  • Ar agreguoti duomenys atitinka detalesnių duomenų informaciją (ar čekio suma atitinka atskirų prekių sumai čekyje)?
  • Ar yra visi stulpeliai, kurie bus naudojami galutinėse lentelėse?
  • Ar įmanoma be klaidų paleisti dažniausiai pasitaikančias verslo užklausas?

Dar prie šio sąrašo pridėčiau patikrinimą, ar eilučių kiekis įvairiose duomenų bazės lentelėse yra toks, koks ir tikėtasi – labai dažnai dėl kokios nors lentelių jungimo klaidos duomenys susidublikuoja.

Neapdorotų duomenų nebūna

Yra toks gana gajus mitas, kad turint „žalius“ neapdorotus duomenis, galima nesunkiai padaryti objektyvias išvadas – juk neapdoroti duomenys turėtų kalbėti už save, jie neturėtų būti „sutepti“ šališkos žmogiškos nuomonės bei išankstinių nusistatymų. Kuo daugiau neapdorotų duomenų, tuo objektyvesnės išvados. Deja, visiškai neapdorotų duomenų nebūna. Jau pats faktas, kad kažkas juos rinko, reiškia, kad kažkas padarė sprendimą jais domėtis: o kodėl rinko būtent taip, o ne kitaip? Kodėl rinko tokius, o ne anokius? Kodėl skaičiavo žmones, o ne mašinas; kodėl išmetė iš skaičiavimų vaikus ar žmones vežimėliuose, kodėl nusprendė, jog tamsoje duomenys nepatikimi? Net jei duomenis renka automatiniai prietaisai (tarkim, kas kažkiek laiko skaičiuojama temperatūra), duomenys fiksuojami su aiškia paklaida, kuri nustatyta matavimo įrenginio specifikacijoje – pats įrenginys kažkiek matavimą apvalina, kažkiek veikia nepatikimai už tam tikrų temperatūros rėžių. Jei nežinosi šio konteksto, gali padaryti išvadą, kad temperatūra būna stabili (tiesiog nematai temperatūros pokyčių, mažesnių nei vienas laipsnis) ar ji niekada nenukrenta žemiau -20˚C.

Ypač sunku teisingai interpretuoti skaičius, kurie susiję su žmogumi. Nusikaltimų skaičius gali augti jau vien dėl to, kad pasikeitė suvokimas, kas yra nusikaltimas (tarkim, anksčiau gal buvo visuomenėje priimta, kad vaikus mušti ir tai nebuvo laikoma nusikaltimu). BVP ar infliacijos skaičiai gali kisti dėl metodologinių paklaidų. Pajamų duomenys, surinkti apklausos būdu, smarkiai skirsis nuo duomenų, gautų iš mokesčių inspekcijos.

Simply put, the context of data — why it was collected, how it was collected, and how it was transformed — is always relevant. There is, then, no such thing as context-free data, and thus data cannot manifest the kind of perfect objectivity that is sometimes imagined.

https://www.thenewatlantis.com/publications/why-data-is-never-raw

Šiuolaikinė „didelių duomenų“ mada bando įteigti, jog žali duomenys yra patys objektyviausi, nes jie neužteršti išankstinėmis nuostatomis. Kuo daugiau tokių duomenų, kuriuos galima sušerti taipogi labai objektyviam algoritmui, tuo teisingesnės išvados – ir tam net nereikia jokių ekspertų, mat jie tik įneš savo (nebūtinai teisingą) išankstinę nuomonę. Žmonėmis negalima pasitikėti dėl jų subjektyvumo: nuo to gali išgelbėti tik daugybė duomenų. Bet toks pasaulio vaizdas visgi yra utopinis: jei atvirai nedeklaruoji savo prielaidų, nereiškia, jog jų nedarai. Nematomos subjektyvios prielaidos duomenyse atsiranda jau jų rinkimo procese, ir to niekaip neišvengsi. Ką matuoji, tą ir optimizuosi. Duomenys už save nekalba, jie atkartoja duomenų rinkėjų nuomones.

Įsitraukimo metrikos veda klaidingu keliu

Jau prieš gerą pusmetį rašiau, kad kuo toliau, tuo labiau nesu patenkintas socialiniais tinklais: nors ir turiu išugdytą įprotį turint laisvą minutę įsijungti Facebook ar Instagram, retokai ten randu ką nors įdomaus. Dauguma istorijų tapę vienodos ir nebeįdomios, o Instagram nuotraukos atrodo lyg gamintos pagal vieną klišę. Jei netikite, užeikite į @insta_repeat profilį.

@Insta_repeat profilyje surinktos vienodos skirtingų autorių nuotraukos

Kodėl taip nutiko? Kodėl vis kompulsyviai norisi maigyti telefoną ir prasukti dar, ir dar, ir dar, ir dar vieną ekraną „turinio“ ir vis tiek nesijausi pasisotinusiu? Turbūt labiausiai reiktų kaltinti duomenų analitikus ir ganėtinai naują vadybos idėją, jog viską reikia matuoti, o geriausias matas, kurį visada reikia gerinti – įsitraukimas (engagement). Kuo ilgiau „skrolini“, tuo daugiau praleidi laiko programėlėje, tuo geresnės tavo įsitraukimo metrikos. 

Kai didžioji dalis produkto vystymo sprendimų daroma vien tik analitikos pagalba, labai galima nuklysti į lankas. Lengvas ir neįpareigojantis turinys tampa didesniu prioritetu nei asmeniniai įrašai, antraštinis masalas ima viršų prieš kokybišką turinį: tokį ir dažniau paspausi, ir jame praleisi daugiau laiko, nes bandysi išnarplioti, kas iš tiesų slepiasi po antrašte. Ir visai nesvarbu, jog vartotojas lieka susierzinęs ir nepatenkintas, jog jis jaučia, kad kažkaip nelabai čia įdomu – analitinės įsitraukimo metrikos juk rodo, jog viskas gerai!

When a measure becomes a target, it ceases to be a good measure.

Charles Goodhart

Socialiniai tinklai ir portalai tampa naujienų „greitmaisčiu“ (junk food): naudos mažai, bet nuo jų žvėriškai sunku atsitraukti. Juk tai pirmiausiai turint galvoje ir buvo viskas konstruojama. Bet ar tai nėra trumpalaikio tikslo vaikymasis aukojant ilgalaikį vartotojų pasitenkinimą? Ar tokia analitika iš viso gali padėti suprasti vartotojų elgseną kiek gilesniame lygyje? Ar gali atsakyti, kodėl vartotojai yra patenkinti ar ne? Kuo toliau, tuo labiau manau, kad nelabai. Įsitraukimo metrikos yra svarbu, tačiau jos neturi tapti vienintele kelrode žvaigžde. Kaip teigia Goodharto dėsnis, „kai matuojamas rodiklis tampa siekiamu tikslu, jis pasidaro prastai pritaikomu rodikliu“. Kai pradedami optimizuoti įsitraukimo rodikliai, užmirštami visi kiti dalykai, kurie vartotojui teikia vertę ir pradeda darytis nuobodu.

Lietuvos miestų gatvės pagal pasaulio šalis

Neseniai užtikau įdomią JAV bei kitų pasaulio didmiesčių gatvių orientacijos analizę, darytą vienu mano mėgstamiausių python modulių osmnx. Kadangi kodas viešas, tai buvo nesunku tą patį padaryti ir Lietuvos miestams.

Kaunas ir Vilnius – gana chaotiški, o kitur vyrauja aiški kvartalinė sistema

Kuo senesnis miestas, tuo didesnis senamiestis, o šie dažniausiai būna chaotiški. Naujesniuose miestuose daugiau vyrauja aiški kvadratinė kvartalinė sistema. Buvo įdomu tai, kad dažniausiai ji ne tiksliai šiaurės-pietų bei rytų-vakarų krypties, o apie 20 laipsnių pasukta pagal laikrodžio rodyklę (Alytus, Gargždai, Kretinga, Kėdainiai, Marijampolė, Mažeikiai, Neringa, Palanga, Telšiai – ypač Žemaitijoje). Tobulai pagal pasaulio šalis orientuoti Elektrėnai (kuo tikriausiai nereiktų stebėtis) ir Utena, Visaginas ir Šiauliai išsidėstę įstrižai žemėlapio šalims.

Ben Goldacre – „I Think You’ll Find It’s a Bit More Complicated Than That“

Ben Goldacre turėjo šventą misiją: laikraščio the Guardian kassavaitinėje skiltyje jis nepailsdamas kritikuodavo žurnalistus bei mokslininkus, kurie nepaisydami statistikos dėsnių ar gerųjų mokslinio metodo praktikų pernelyg greitai peršokdavo prie toli siekiančių išvadų. Kliūdavo daugeliui, net tam pačiam the Guardian laikraščiui. Ši jo knyga yra kassavaitinės skilties straipsnių rinkinys.

Mokslinius atradimus padaryti ne taip jau lengva: mokslininkams reikia nemažai statistikos žinių, o jų atradimus, kurie skelbiami moksliniuose žurnaluose, kritiška akimi turi peržiūrėti ir kiti mokslininkai. Jei nesilaikoma mokslinio metodo, galima greitai gauti sensacingų, bet ne itin teisingų rezultatų. Jau vien dėl to verta labai skeptiškai vertinti bet kokius straipsnius mokslo tema populiariuose portaluose: verta atkreipti dėmesį į tai, kokia buvo statistinė imtis, ar buvo naudojama kontrolinė grupė, ar rezultatai visgi galutiniai ir jau išspausdinti, ar tai vis dar tyrimų stadijoje. Tarkim, šis sensacingas straipsnis apie moterų orgazmą atitinka visus šiuos blogiausius kriterijus.

Jeigu tai tik būtų nekalti straipsniai apie mitybą („mokslininkai nustatė, jog valgydamas špinatus gyvensi trigubai ilgiau“) ar orgazmą, gal ir nevertėtų jaudintis. Tačiau dažnai toks mokslo nušvietimas žiniasklaidoje turi toli siekiančių pasekmių. Panašiai atsitiko ir su teorija, kad skiepai nulemia vaikų autizmą: mokslinio pagrindo tam nėra, bet visuomenė įbauginta ir supermamos rimtai diskutuoja apie tai, kad skiepai yra žalingi. Žurnalistai turi ypač didelę atsakomybę, tik ne visiems jiems pakanka statistinių žinių bei suvokimo, kaip iš tiesų veikia mokslas.

Gal iš knygos ir tikėjausi kažkiek daugiau, bet bendrai paėmus, tai neblogas populiarus bei praktinis įvadas į dažniausiai pasitaikančias statistines bei logikos klaidas, ties kuriomis nesunku suklupti.

Savaitė be nuosavo automobilio

Nežinau už kokius nuopelnus, bet šią savaitę buvau pakviestas prisijungti prie Europos judrumo savaitės (European Mobility Week) akcijos #ditchyourkeys ir ištisas septynias dienas atsisakyti savo automobilio. Tiesa, tam kad šis iššūkis nebūtų labai sudėtingas, akcijos rėmėjai Uber, Vilniaus Viešasis Transportas, Cyclocity, Citybee bei Spark suteikė galimybę šiomis dienomis jų paslaugomis naudotis nemokamai – tad per šią savaitę galėjau išbandyti visokiausius judėjimo po Vilnių būdus, kuriais iki šiol nesinaudojau.

Už Vilniaus ribų šiomis dienomis neplanavau niekur vykti, o pasižiūrėjęs į savo judėjimo istoriją, supratau, kad mano geografija buvo ganėtinai ribota: visą laiką maliausi tarp namų Lazdynuose, senamiesčio ir dviejų klientų biurų. Į kitas seniūnijas dažniausiai koją buvau įkėlęs tik epizodiškai: arba pro jas pakeliui pravažiuodamas, arba ten užsukdamas tik kelioms valandoms dėl kokio konkretaus tikslo. Tiesą pasakius, galvojau,kad mano kelionių geografija platesnė, bet visgi ši savaitė ganėtinai gerai atitinka mano judėjimo įpročius: 95 procentus laiko praleidi tose pačiose vietose ar judėdamas tarp jų.

Visą savaitę praleidau arba Lazdynuose, kur gyvenu, arba Naujamiestyje bei Senamiestyje

Detalesnis intensyvių vietų žemėlapis (heatmap) iš principo rodo tą patį: yra namai Lazdynuose, klientų biuras Konstitucijos prospekte, bei Gedimino prospektas. Į Karoliniškes savaitgalį su šeima ėjau pasivaikščioti pėsčiomis, o dažniausiai važiuoju Geležinio Vilko gatve, kuriame stoviniuoju kamštyje prie Gerosios Vilties žiedo.

Detalesnis žemėlapis rodo, jog mano laikas buvo praleistas namie (Lazdynai), Quadrum verslo centre bei Gedimino prospekte.

Tad kaip man sekėsi mieste judėti be automobilio? Per savaitę visomis transporto rūšimis nuvažiavau iš viso 140.3 kilometrų ir neteko pasinaudoti tik Cyclocity paslaugomis. Visgi lietinga rudens savaitė sėsti ant dviračio neviliojo – manau esant geresniam orui dviračiais tikrai būčiau pasinaudojęs. Vienas tokio judėjimo be savo automobilio privalumų yra tas, kad nereikia mokėti už parkavimą: paskaičiavau, jog per šią savaitę už parkavimą būčiau susimokėjęs apie 19-20 eurų (nemažai laiko praleidau Gedimino prospekte, kur už parkingą moku pats). Priskaičiavus visokius automobilio nusidėvėjimo kaštus (maždaug 30 eurų per savaitę) bei išlaidas už kurą gaunu, jog jei visur būčiau važinėjęs su nuosava mašina, tai transportui būčiau išleidęs apie 65 eurus, arba vidutiniškai 0.46 EUR už kilometrą.

Nuvažiuoti kilometrai pasiskirstę gana tolygiai

Čia nuvažiuotų kilometrų suvestinė:

Kelionių skaičius Viso km Viso kaina, € Vidutinė km kaina
Uber 6 51.4 43.76 0.851
Citybee 6 38.0 28.01 0.737
VVT 4 29.1 2.85 0.098
Spark 3 21.8 11.04 0.506
Bendrai 19 140.3 85.66 0.611
Palyginimui: nuosavas Subaru 140.3 64.65 0.461

Aišku, žiūrint pagal kainą, tai vienareikšmiškai su Vilniaus miesto autobusais ir troleibusais konkuruoti niekas negali – važiuoti viešuoju transportu yra 5-10 kartų pigiau nei bet kaip kitaip. Uber liko brangiausias, nors iš dalies dėl to, kad penktadienio vakare net kelis kartus teko juo važiuoti piko metu, kai kainos buvo žymiai pakeltos (vienos kelionės metu pataikiau net ant 2.2x surge pricing!). Užtat Uber buvo pats greičiausias sprendimas: iki įsėdimo į transporto priemonę praeidavo mažiausiai laiko, o be to priveždavo prie durų ir nereikėjo ieškoti vietos kur paparkuoti ir palikti mašiną.

Iki šiol nebuvau naudojęsis nei Citybee, nei Spark paslaugomis, bet jau tikrai žinau, kad tai ne paskutinės kelionės šiomis nuomotomis mašinomis. Citybee man patogi tuo, jog galiu mašiną palikti ir pasiimti tiesiai prie laiptinės durų, nors, tiesa, ryte neretai aplink namus buvo laisvų mašinų trūkumas, tad tekdavo arba pėdinti gerą puskilometrį arba visgi kviestis Uberį. Spark pasirodė kaip labai ekonomiškas transporto variantas, tik bėda tame, jog iki namų juo nusigauti negaliu – arčiausiai, kur galiu palikti mašiną yra prie Litexpo. Tad deja, Spark man tinka tik trumpoms kelionėms miesto centre, nors pagal kilometro kainą jis labai konkurencingas su nuosavos mašinos kaštais.

Savaitgalį keliaudavau ne vienas, o su vienerių metų dukra bei vežimėliu. Tokioms kelionėms visgi patogiausia yra viešasis transportas. Savaitgaliais autobusai apytuščiai, ir į juos labai patogiai galima įvažiuoti su visu vežimu, o tai net kai kuriais atvejais nukonkuruoja ir nuosavą mašiną: nei vežimo lankstyti, nei pasivaikščiojus mieste būtinai grįžti iki ten, kur palikai mašiną. Jau nekalbu apie tokio transporto kainą. Bėda tik su senaisiais troleibusais: užsikelti vežimą per laiptelius yra reikalų, o ir praėjimai siauri, nėra erdvės. Jei visi troleibusai ateityje bus atnaujinti, tai viešasis transportas keliaujant su dukra iš vis bus vienvaldis nugalėtojas.

Tad, ar galima Vilniuje apsieiti be nuosavos mašinos? Galima. Tik iki pilno komforto reiktų atnaujinti troleibusus (kas, girdėjau, vyksta) ir leisti man prie namų parkuotis Spark.

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

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/