r: mikä, miksi ja miten? mita miten ja miksi ilmari ahonen.pdf · r: mikä, miksi ja miten?...

27
R: mikä, miksi ja miten? Ilmari Ahonen Matematiikan ja tilastotieteen laitos, Turun yliopisto SSL R-Webinaari 2015 ilmari.ahonen@utu.fi

Upload: others

Post on 07-Jul-2020

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

R: mikä, miksi ja miten?

Ilmari Ahonen

Matematiikan ja tilastotieteen laitos, Turun yliopisto

SSL R-Webinaari 2015

[email protected]

Page 2: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Vähän minusta

I Valmistuin maisteriksi Turunyliopistossa 2012

I Teen neljättä vuotta väitöskirjaaliittyen syöpäsolukuvien tilastollisiinanalyysimenetelmiin

I R on ollut päätyökaluni viimeisenneljän vuoden ajan. Käyttötuntejaarviolta > 4000

I Kokemuksena varsinaisestalääketeollisuudesta on kesäharjoitteluRochella Baselissa 2012.

[email protected]

Page 3: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Mikä R?

R on:I ohjelmointikieli ja ohjelmaympäristö, joka on suunnattu

tieteelliseen laskentaanI ilmainen ja vapaan lähdekoodin ohjelmistoI erityisen suosittu data-analyytikoiden keskuudessa

tiedemaailmassa ja yhä suositumpi yritysmaailmassa

[email protected]

Page 4: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Mikä R? - konepellin alla

I R perustuu Bell Laboratoriossa kehitettyyn S-kieleen, jostamyös S-PLUS on johdettu

I R:n lähdekoodi on kirjoitettu pääösin C:llä ja Fortranilla,joiden kutsuminen R:stä on suhteellisen helppoa

I R on funktionaalinen ja tulkittava kieli. Oliot ja metoditkummittelevat silti mukana

[email protected]

Page 5: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Mikä R?

[email protected]

Page 6: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Koodiesimerkkejä

# Vähän laskentaa:3 + 8

[1] 11

2.434^1.002 - exp(2)*log(124)/3

[1] -9.43411

[email protected]

Page 7: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Koodiesimerkkejä

Asioita tallennetaan olioihin

a.thing <- 95some.other.thing <- "tekstiä"

[email protected]

Page 8: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Koodiesimerkkejä

Erilaisia olioita

c(1, 4, 1, 6)

[1] 1 4 1 6

c("eka", "toka")

[1] "eka" "toka"

matrix(1:12, nrow=2)

[,1] [,2] [,3] [,4] [,5] [,6][1,] 1 3 5 7 9 11[2,] 2 4 6 8 10 12

[email protected]

Page 9: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Koodiesimerkkejä

Mallin rakennusta

x <- runif(100)y <- 1 + 2*x + rnorm(100)malli <- lm(y ~ x)class(malli)

[1] "lm"

[email protected]

Page 10: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Koodiesimerkkejä

summary(malli)

Call:lm(formula = y ~ x)

Residuals:Min 1Q Median 3Q Max

-2.20792 -0.71069 -0.00739 0.62288 3.14653

Coefficients:Estimate Std. Error t value Pr(>|t|)

(Intercept) 1.2829 0.2157 5.946 4.23e-08 ***x 1.8278 0.3730 4.900 3.79e-06 ***---Signif. codes:0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.08 on 98 degrees of freedomMultiple R-squared: 0.1968, Adjusted R-squared: 0.1886F-statistic: 24.01 on 1 and 98 DF, p-value: 3.786e-06 [email protected]

Page 11: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Koodiesimerkkejä

Kuvien tekoa

hist(malli$residuals, col="pink", border="white",lwd=3, main="Jäännösten jakauma")

Jäännösten jakauma

malli$residuals

Fre

quen

cy

−2 −1 0 1 2 3

05

1015

20

[email protected]

Page 12: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Koodiesimerkkejä

Funktioiden määrittelemistä

funktioni <- function(numero){if(numero > 10000){

print("numero on kovin suuri")} else {

print("numero on aika tavallisen kokoinen")}

}funktioni(31)

[1] "numero on aika tavallisen kokoinen"

[email protected]

Page 13: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Koodiesimerkkejä

Lisää funktioita ja aineistoja on koottu paketteihin, joita löytyyesim CRANista (the Comprehensive R Archive Network)

[email protected]

Page 14: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Koodiesimerkkejä

Pakettien käsittely

# asennettaan paketti koneelle# install.packages("PET")

# otetaan paketti käyttöön istunnossalibrary(PET)

Loading required package: adimproReading RAW images requires to install dcraw, see

http://cybercom.net/~dcoffin/dcraw/ for LINUX andhttp://www.insflug.org/raw/

for MAC OS and WindowsAttaching package: ’PET’The following object is masked from ’package:base’:

norm

[email protected]

Page 15: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Koodiesimerkkejä

viewData(list(P, R$Data, R$rData), list("Phantom","Marked Poisson Data", "Simulated PET Data"))

Phantom Marked Poisson Data Simulated PET Data

[email protected]

Page 16: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

R-koodaamisen erityispiirteitä

# otetaan iris data esimerkiksidata(iris)

# aineiston tiivistelmä:str(iris)

'data.frame': 150 obs. of 5 variables:$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

[email protected]

Page 17: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

R-koodaamisen erityispiirteitä

# valitaan osa-aineistoiris[130:135, c("Sepal.Length", "Species")]

Sepal.Length Species130 7.2 virginica131 7.4 virginica132 7.9 virginica133 6.4 virginica134 6.3 virginica135 6.1 virginica

# poistetaan puuttuvia havaintoja sisältävät rivitsiivottu.iris <- iris[complete.cases(iris), ]

[email protected]

Page 18: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

R-koodaamisen erityispiirteitä

# järjestetään muuttujan mukaaniris.sorted <- iris[order(iris$Sepal.Length), ]

# otetaan otosiris.sample <- iris[sample(1:nrow(iris), 50), ]dim(iris.sample)

[1] 50 5

[email protected]

Page 19: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

R-koodaamisen erityispiirteitä

# sarakekeskiarvotcolMeans(iris[, 1:4])

Sepal.Length Sepal.Width Petal.Length Petal.Width5.843333 3.057333 3.758000 1.199333

# sarakekeskihajonnatapply(iris[,1:4], 2, sd)

Sepal.Length Sepal.Width Petal.Length Petal.Width0.8280661 0.4358663 1.7652982 0.7622377

# neliöjuurimuunnosiris.muunnettu <- apply(iris[,1:4], 2, sqrt)

[email protected]

Page 20: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

R-koodaamisen erityispiirteitä

# tehdään kuvakokoelmapar(mfrow=c(1,3))hist(iris$Sepal.Length)plot(iris$Sepal.Length, iris$Sepal.Width)boxplot(iris$Sepal.Length ~ iris$Species)abline(h=6, col="red")

Histogram of iris$Sepal.Length

iris$Sepal.Length

Fre

quen

cy

4 5 6 7 8

05

1015

2025

30

4.5 5.5 6.5 7.5

2.0

2.5

3.0

3.5

4.0

iris$Sepal.Length

iris$

Sep

al.W

idth

setosa virginica

4.5

5.0

5.5

6.0

6.5

7.0

7.5

8.0

[email protected]

Page 21: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

R-koodaamisen erityispiirteitä

# ggplot2:lla nopeasti hyvää laatua:library(ggplot2)ggplot(data=iris, aes(x=Sepal.Width, y=Sepal.Length, col=Species)) +

geom_point() + geom_smooth(method="lm")

4

5

6

7

8

2.0 2.5 3.0 3.5 4.0 4.5Sepal.Width

Sep

al.L

engt

h Species

setosa

versicolor

virginica

[email protected]

Page 22: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

R-koodaamisen erityispiirteitä

# sama kuva pilkottunalibrary(ggplot2)ggplot(data=iris, aes(x=Sepal.Width, y=Sepal.Length, col=Species)) +

geom_point() + geom_smooth(method="lm") + facet_grid(. ~ Species)

setosa versicolor virginica

4

5

6

7

8

2.0 2.5 3.0 3.5 4.0 4.52.0 2.5 3.0 3.5 4.0 4.52.0 2.5 3.0 3.5 4.0 4.5Sepal.Width

Sep

al.L

engt

h Species

setosa

versicolor

virginica

[email protected]

Page 23: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Miksi R?

R:n vahvuuksia verrattuna SAS:iin:I Ilmaisuus ja asema tiedeyhteisön suosikkinaI Aineiston muokkausI KuvatI Yhteispeli muiden työkalujen kanssa, kuten LaTeX, C++,

SQL, html jne. Laajennuksien avulla interaktiiviset tulokset jajopa itsenäisiä sovelluksia (esim Shiny)

I Ohjelmointikieli ja sen tuoma nopeus ja joustavuusI Editorit, esim RStudio

[email protected]

Page 24: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Miksei R?

R:n heikkouksia verrattuna SAS:iin:I Pakettien laatu on täysin kehittäjiensä armoilla. Koskee

erityisesti vähemmän käytettyjä ja uudempia pakettejaI Suurten aineistojen käsittely (ilman lisäpaketteja)I Tulosten raportointi, pois lukien kuvat (jälleen ilman

lisäpakettia)

[email protected]

Page 25: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Miten R?

R:n opiskelun aloittaminen on helppoa (jatkaminen eivälttämättä...).

I saatavilla kaikille yleisimmille käyttöjärjestelmille (Windows,Mac OS, Linux)

I erilaisia oppaita on tarjolla valtavasti (myös itseopiskelukurssiTurun yliopistolla!)

I RStudio tai jokin muu graafinen editori helpottaa käyttöähuomattavasti

R:n kotisivut: www.r-project.org/, RStudio:www.rstudio.com/

[email protected]

Page 26: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Miten R?

[email protected]

Page 27: R: mikä, miksi ja miten? Mita Miten ja Miksi Ilmari Ahonen.pdf · R: mikä, miksi ja miten? IlmariAhonen Matematiikanjatilastotieteenlaitos,Turunyliopisto SSLR-Webinaari2015 ilmari.ahonen@utu.fi

Miten R?

MateriaalejaI Quick-R: www.statmethods.net/I swirl: swirlstats.com/I DataCamp: https://www.datacamp.com/I R inferno: http://www.burns-stat.com/documents/

books/the-r-inferno/

[email protected]