På svenska

In English

Tutkimusaineistot etäkäytössä

Oppitunti:
Aihe:

5.1.1 Tehokas ohjelmointi

Tehokkaan ohjelmoinnin taustalla on hyvä suunnittelu. Tavoitteena on tehdä yhtenäinen ja järkevästi jaoteltu ohjelmakoodi, jonka avulla tulokset voi tarvittaessa tuottaa uudelleen parhaimmassa tapauksessa yhdellä napin painalluksella. Ohjelman tulisi olla selkeästi kommentoitu ja mahdollisimman pitkälle automatisoitu. Makrojen ja erilaisten silmukoiden avulla voidaan koodia tarvittaessa muuttaa tarpeen mukaan esim. eri aikaväleille ja muuttujasisällöille (Statassa ks. program). Koodin kopioimista kannattaa välttää, koska tällöin myös virhealttius kasvaa.

Hyvänä periaatteena on, että analyysin kannalta turhat muuttujat ja tiedot poistetaan ohjelmassa heti, kun niitä ei tarvita. Päällekkäisten aineistojen ja välitiedostojen tallentamista ei suositella. Statassa aineistoa on mahdollista rajata jo tiedoston avausvaiheessa valitsemalla vain tarvittavat muuttujat (use var1 var2 var3 using datax).

Ohjelmien suunnittelua varten kannattaa muodostaa pieni harjoitusdata, jota voi nopeasti ja resursseja säästäen pyöritellä siihen asti, kunnes lopullinen ohjelma hahmottuu. Demodataa varten otetaan pieni otos koko aineistosta (ks. esimerkki 1). Ylimääräiset muuttujat, vuodet, toimialat, alueet ja henkilöryhmät kannattaa myös rajata pois heti alussa.

Tulosten tarkistusta silmälläpitäen myös tulosten muoto ja tulkittavuus tulisi huomioida jo alussa. Pitkien log-tiedostojen sijaan tulisi tuottaa erillisiä tulostaulukoita tai -kuvioita, jotka on selkeästi nimetty. Myös muuttujien tietosisällön tulisi olla ymmärrettävä. Kussakin taulukon rivissä tulee näkyä havaintojen lukumäärä. Ohjelmassa olisi hyvä rajata jo valmiiksi, ettei havaintojen lukumäärä saa olla ainakaan alle 3 (ks. esimerkki 2). Minimit ja maksimit eivät yleensä mene tietosuojatarkistuksesta läpi, joten ne kannattaa poistaa jo valmiiksi.

Eräs esimerkki siitä, miten ohjelma voidaan suunnitella tehokkaana kokonaisuutena, on Matti Sarvimäen ja Kari Hämäläisen artikkeliin (2014) ”Integrating Immigrants: The Impact of Restructuring ALMP” liittyvä Stata-ohjelmakoodi, jolla tuotetaan artikkelin tulokset.

Hyödyllistä lukemista on myös esimerkiksi Matthew Gentzkow:n ja Shapiron (2014)  “Code and Data for the Social Sciences: A Practitioner’s Guide”, Chicago Booth and NBER.                   

Ja lopuksi, muistathan tallentaa riittävän usein! Varmuuskopiointi kerran vuorokaudessa takaa, etteivät tallenteet häviä, mutta palvelimen toimintahäiriö voi hävittää työsi hedelmät.

Esimerkit

Jaa