r: mikä, miksi ja miten? mita miten ja miksi ilmari ahonen.pdf · r: mikä, miksi ja miten?...
Post on 07-Jul-2020
17 Views
Preview:
TRANSCRIPT
R: mikä, miksi ja miten?
Ilmari Ahonen
Matematiikan ja tilastotieteen laitos, Turun yliopisto
SSL R-Webinaari 2015
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.
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
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
ilmari.ahonen@utu.fi
Mikä R?
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
ilmari.ahonen@utu.fi
Koodiesimerkkejä
Asioita tallennetaan olioihin
a.thing <- 95some.other.thing <- "tekstiä"
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
ilmari.ahonen@utu.fi
Koodiesimerkkejä
Mallin rakennusta
x <- runif(100)y <- 1 + 2*x + rnorm(100)malli <- lm(y ~ x)class(malli)
[1] "lm"
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 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
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"
ilmari.ahonen@utu.fi
Koodiesimerkkejä
Lisää funktioita ja aineistoja on koottu paketteihin, joita löytyyesim CRANista (the Comprehensive R Archive Network)
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
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
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 ...
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), ]
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
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)
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
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
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
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
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)
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/
ilmari.ahonen@utu.fi
Miten R?
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/
ilmari.ahonen@utu.fi
top related