R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Todennäköisyysfunktiot

R tarjoaa monien todennäköisyysjakaumien kanssa työskentelyyn erilaisia todennäköisyysfunktioita. Funktiot on pääsääntöisesti nimetty seuraavasti: dX – tiheysfunktio (probability distribution function, pdf) pX – kertymäfunktio (cumulative distribution function, cdf) qX – kvantiilifunktio rX – satunnaisgeneraattori jossa X on jakauman nimi, esimerkiksi norm (normaalijakauma), t (t-jakauma), f (f-jakauma) tai binom (binomijakauma). Aloitetaanpa funktiotyyppien läpikäynti käänteisessä järjestyksessä käyttäen t-jakaumaa […]

Posted in Note to self, R-ohjelmointi | No Comments

Aihioonpakkaus- ja aikataulutusongelmien ratkaiseminen R:llä

Aihioonpakkaus-ja aikataulutusongelmat ovat hyvin tavanomaisia reaalimaailman ongelmia. Aihioonpakkausongelmissa pyritään ratkaisemaan esimerkiksi ongelma, jossa käsillä on lankkuja, ja niistä halutaan tehdä tietyn mittaisia pätkiä siten, että pätkät eivät erilaisine yhdistelmineen ylitä tietyn tuotepakkauksen kokorajoja. Aikataulutusongelmat ovat vastaavat tyyppisiä, mutta niissä tietyn mittaiset työt pyritään jakamaan vaikkapa tietylle henkilömäärälle optimaalisella tavalla. Tällaiset ongelmat eli knapsack problems ovat […]

Posted in R-ohjelmointi | No Comments

Veikkausliiga 2015 – joukkueiden tuloksia ja katsojamäärien ennustamista

Veikkausliiga on Suomen korkein sarjataso miesten jalkapallossa. Veikkausliigalla on oma kotisivu, jolta löytyy muun muassa eri vuosien tilastoja. Liigan voittaja on jalkapallon Suomen-mestari. Veikkausliigassa pelaa tällä hetkelllä 12 joukkuetta, joista jokainen saa 16 tai 17 kotiottelua. Kullekin joukkueelle kertyy siis kauden aikana yhteensä 33 ottelua. Sarjan joukkueet kohtaavat toisensa kauden aikana kolmesti. Kunkin ottelun voitosta […]

Posted in Grafiikka, R-ohjelmointi | 2 Comments

Julia in a simple test

I wrote earlier a short note describing the same statistical analysis done in R and Python, but I left out Julia. Since Julia has constantly appeared on blogs I follow, I finally thought that it’s time to rectify the situation. Even more so, since I would fancy a huge speed boost on the execution time […]

Posted in Muu ohjelmointi | No Comments

Ovatko sanat anagrammeja – kokemuksia funktion kehittämisestä ryhmätyönä

Kokeilimme kolmeen pekkaan, mitä hyötyä voisi olla esimerkiksi R-funktioiden kehittämisestä ryhmätyönä. Valitsimme testiin yksinkertaisen esimerkin: toteutettavan funktion piti testata, ovatko sille syötteenä annetut merkkijonot keskenään anagrammeja. Anagrammeja ovat kaikki ne merkkijonot, jotka ovat permutaatioita samasta merkkijonosta, ja lisäksi muodostavat jonkin ymmärrettävän sanan. Siten esimerkiksi merkkijonot, jotka ovat eri mittaisia tai koostuvat eri kirjaimista eivät voi […]

Posted in Note to self, R-ohjelmointi, Yleistä | No Comments

Todennäköisyys, että raportoitu löydös on oikea

Viime aikoina olen kuullut keskustelua siitä, että joka ikisen analyysin yhteydessä pitäisi ilmoittaa todennäköisyys, että löydös on väärä. Ilmeisesti keskustelu ei ole koskenut p-arvoa, vaan nimenomaan väärän johtopäätöksen todennäköisyyttä, mikä tekeekin asiasta hieman kinkkisemmän. P-arvohan on frekventistisen tilastotieteen käsite, joka ilmoittaa toistetun otannan tilanteessa sen frekvenssin, jolla havaittua testisuureen arvoa äärevämpiä arvoja esiintyy, jos nollahypoteesi […]

Posted in Aiheeton | No Comments

Muistatteko nopean fread() -funktion? Nyt sillä on kaverikin: fwrite()!

R:n laajennuspaketissa data.table on funktio fread(), jolla suurienkin tekstitiedostojen lukeminen R:ään onnistuu suhteellisen nopeasti. Nyt funktiolle on tullut aisapariksi funktio fwrite(), jolla tekstitiedostojen kirjoittaminen onnistuu nopeasti. Kirjoitusfunktio on paketin uusimmassa kehitysversiossa,joka asennetaan seuraavasti: library(devtools) install_github("Rdatatable/data.table") Asennus vaatii Rtools-työkalustosta paikallisen asennuksen. Otetaanpa esimerkki, miten data.table-paketin funktioita käytetään. Latasin airlines-aineistosta vuoden 2008, ja poimin siitä 1 000 […]

Posted in R-ohjelmointi | No Comments

Elämä viikkoina esitettynä

Miltä näyttää keskimääräinen suomalaisen ihmisen elämä viikkoina havainnollistettuna? Katsotaanpa. Mainittakoon alkajaisiksi, että tämä havainnollistamistapa sai alkunsa, kun yritin selvittää vuoden viikkoja päivämäärien perusteella. Tämä onnistuu nähtävästi R:ssä helposti esimerkiksi seuravalla koodilla: as.numeric(format(as.Date(2016-04-18″), ”%V”)). Tässä muodostettavan kuvion esitystapa noudattelee löyhästi usein epidemiologiassa käytettyjä tapoja. Niissä havainnollistetaan yksiköitä (henkilö, aika, yms.) yksittäisinä symboleina, jolloin luonnollisten frekvenssien hahmottaminen […]

Posted in Grafiikka, R-ohjelmointi | 1 Comment

Palkansaajan verokorttilaskentaa R:ssä

Mikä on verokortti? Verokortti on asiapaperi, jonka palkansaaja toimittaa työnantajalleen. Verokortissa on mainittu palkansaajan veroprosentti, jonka perusteella työnantaja suorittaa palkasta ennakonpidätykset ja muut säädetyt maksut. Loppuosan palkasta työnantaja maksaa palkansaajalle. Jos vuoden aikana tehdyt ennakonpidätykset eivät kata koko veronmaksuvelvollisuutta, muodostuu palkansaajalle (verovelvolliselle) jäännösveroa, joka pitää joka tapauksessa maksaa myöhemmin. Jos taas palkasta on pidätetty liikaa […]

Posted in R-ohjelmointi | No Comments

Sarjassamme ”vanha puusilmä tarinoi” – työtilojen lataamisesta eri ympäristöihin load()-funktiolla

Tiedättehän tilanteen, jossa työskentelee saman aineiston kanssa useina eri ajankohtina, ja jokaisen kerran jälkeen tallentaa R:n työmuistin sisällön .RData-tiedostoksi? Tällöin eri ajankohtina tallennetuissa tiedoistoissa on väkisinkin saman nimisiä objekteja. Jos haluaisi myöhemmin ladata samaan sessioon kahtena eri ajankohtana tallennetun .RData-tiedoston, tulee viimeisenä ladutun tiedoston sisältämistä objekteista nykyiseen sessioon vain tuo viimeisin versio, koska vanhemmat tulevat […]

Posted in Note to self, R-ohjelmointi | No Comments