r / rstudio

23
R / RStudio Intro til R / RStudio

Upload: anka

Post on 24-Feb-2016

128 views

Category:

Documents


0 download

DESCRIPTION

R / RStudio. Intro til R / RStudio. R. R er et open source statstikprogram og programmerings-sprog introduceret i 1993. Seneste version er 2.15.3 R kan downloades på www.r-project.org R er i udgangspunktet uden peg-og-klik Mere end 2000 pakker (udvidelser a la et plug-in) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: R /  RStudio

R / RStudio

Intro til R / RStudio

Page 2: R /  RStudio

R R er et open source statstikprogram og programmerings-

sprog introduceret i 1993. Seneste version er 2.15.3 R kan downloades på www.r-project.org R er i udgangspunktet uden peg-og-klik Mere end 2000 pakker (udvidelser a la et plug-in) I det følgende tager vi udgangspunkt i Windows

versionen. Der eksisterer versioner til Mac og Linux. For at få en smartere brugerflade skal I også installere

Rstudio.

Page 3: R /  RStudio

RStudio

Sådan ser RStudio typisk ud første gang man starter det. Nederste vestre vindue er hvor man snakker direkte med

R vha. tekst-kommandoer.

Page 4: R /  RStudio

RStudio – lidt opsætning Det er nyttigt at ændre R’s standard-mappe. Vælg Tools → Options Under ‘Default working directory..’ vælg den

mappe hvor I vil gemme filer relateret til R (fx. data)

Page 5: R /  RStudio

Se data I min arbejdsmappe har jeg en data-fil der hedder

mikrosundhed.dat liggende. Findes også på kursussiden. Hvis jeg åbner data-filen i Notepad ser den sådan ud:

Data består af 5 kolonner, der hver svarer til en variabel. Bemærk: Variabelnavnet står øverst i række! Luk Notepad igen – ellers går det bare galt ;-)

Page 6: R /  RStudio

Hent data ind i R Vi er nu klar til vores første kommando! På kommandolinjen skriv:

mitdata = read.table("mikrosundhed.dat", header=TRUE) Dette læser data-filen ind i en tabel med navnet mitdata. Med tilføjelsen header=TRUE har vi angivet at variabelnavne er

angivet i øverste række (aka header’en) i data-filen. Hvis kommandoen er korrekt indtastet er der nu skabt et objekt

med navnet mitdata, der indeholder data.

Workspace viser alle objekter.

Page 7: R /  RStudio

Sådan ser data ud Vi kan se indholdet af data-objektet mitdata ved at klikke på

Page 8: R /  RStudio

Et hurtigt overblik Man kan få en opsummering af tabellen vha.

summary(mitdata) Resultat:

For kategoriske variable: Frekvenser for hver kategori. For kvalitative variable: Mindste værdi, 1. kvartil, median,

middelværdi, 3. kvartil, største værdi, og antal manglende værdier.

NA = ”Not Available” – manglende observationer.

Page 9: R /  RStudio

Den enkelte variabel.

Man kan se hvilke variable tabellen indeholder vha:

Vi vil se nærmere på vægt. Vi kan se indholdet af søjlen med navnet vaegt frem vha. mitdata$vaegt. Gør man det får man listet vægt for alle 2742 deltagere… lidt uoverskueligt!

Vi kan få et overblik over vægt vha.

Page 10: R /  RStudio

Et par plot

Histogram

Boxplot40

6080

100

120

140

Spol frem og tilbage mellem plots

Page 11: R /  RStudio

Numeriske opsummeringer Middelværdi

Percentiler (standarden er 0%, 25%, 50%, 75%, 100%)

Andre percentiler, fx. 5% og 95%

Standardafvigelsen

R vil ikke udregne gennemsnittet, når der mangler observationer.

Page 12: R /  RStudio

Tabeller

Vi kan nemt skabe en (kontingens)tabel for Ryger og Køn:

> table(mitdata$koen,mitdata$ryger)

Ryger Ryger ikke Kvinde 685 750 Mand 625 585

Vi gemmer lige tabellen til senere > tabel = table(mitdata$koen,mitdata$ryger)

Page 13: R /  RStudio

Marginale fordelinger

Vi kan tilføje de marginale fordelinger: > addmargins(tabel)

Ryger Ryger ikke Sum Kvinde 685 750 1435 Mand 625 585 1210 Sum 1310 1335 2645

Page 14: R /  RStudio

Rækkefordeling i procent Andelen af ryger/ryger ikke i hver række: > prop.table(tabel,1) Ryger Ryger ikke Kvinde 0.4773519 0.5226481 Mand 0.5165289 0.4834711

Sammen men i procent, så gang med 100: > prop.table(tabel,1)*100 Ryger Ryger ikke Kvinde 47.73519 52.26481 Mand 51.65289 48.34711

Erstattes 1 med 2 får man fordelingen i hver søjle

Page 15: R /  RStudio

c2-test for uafhængighed

Vi kan nemt udføre et c2-test for uafhængighed: > chisq.test(tabel)

Pearson's Chi-squared test with Yates' continuity correction

data: tabel X-squared = 3.8754, df = 1, p-value = 0.049

Bemærk at R automatisk bruger Yates’ kontinuiteteskorrektion da vi her tester i en 2x2 tabel.

Page 16: R /  RStudio

Eksamensopgave: Goodness-of-fit

Page 17: R /  RStudio

Eksamensopgave i R > data = c(265,115,44,85,55,7,136,313,76)

> andele = c(0.248,0.095,0.049,0.092,0.05,0.008,0.123,0.268,0.067) > chisq.test(x=data,p=andele) Chi-squared test for given probabilities

data: data X-squared = 7.2688, df = 8, p-value = 0.5079

De forventede værdier er tilgængelige: > chisq.test(x=data,p=andele)$expected

[1] 271.808 104.120 53.704 100.832 54.800 8.768 134.808 293.728 73.432

Page 18: R /  RStudio

Eksamensopgave i R - igen

Beregn forventede værdier ”manuelt”> forventet = sum(data)*andele> forventet [1] 271.808 104.120 53.704 100.832 54.800 8.768 134.808 293.728 73.432

Beregn teststørrelse> sum((data-forventet)^2/forventet) [1] 7.268769

Find p-værdi> pchisq(7.268769,df=8,lower.tail=FALSE) [1] 0.5079317

Page 19: R /  RStudio

0 5 10 15 20

0.00

0.06

x

dchi

sq(x

, df =

8)

Eksamensopgave i R - plot

0 5 10 15 20

0.00

0.06

xdc

hisq

(x, d

f = 8

)

Plot a chi-i-anden- fordeling og teststørrelse > curve(dchisq(x,df=8),0,20)

> abline(h=0,v=7.268769) ## Tilføj linjer

Tilføj lidt farve: > c = curve(dchisq(x,df=8),7.268769,20,add=TRUE)

> polygon(c(c$x[1],c$x,tail(c$x,1)),c(0,c$y,0),col="skyblue")

Page 20: R /  RStudio

Histogram of sim

sim

Den

sity

0 5 10 15 20 25 30

0.00

0.06

Histogram of sim

sim

Freq

uenc

y

0 5 10 15 20 25 30

010

020

0

Simulation Man kan nemt simulere fordelinger > sim = rchisq(n=1000,df=8)

> hist(sim)

Endnu et plot > hist(sim,freq=FALSE) > curve(dchisq(x,df=8),0,30,add=TRUE)

Monte Carlo p-værdi > mean(sim>=7.268769)

[1] 0.506 > abline(v=7.268769,lwd=2, col="red")

Page 21: R /  RStudio

R som regnemaskine Almindelige udregninger> 4.7*(2+3)^4[1] 2937.5

Skabe et (skalar)objekt og se indhold> a=4> a[1] 4

Skab et (vektor)objekt og se indhold> b=c(2,5,7)> b[1] 2 5 7

Page 22: R /  RStudio

R som regnemaskine (fortsat) R regner elementvis:> a*b[1] 8 20 28> a+b [1] 6 9 11> b^2[1] 4 25 49

Sum og produkt af elementer i vektor> sum(b) [1] 14> prod(b) [1] 70

Page 23: R /  RStudio

R hjælp

Man kan få hjælp vha. ?<kommando>> ?sum

Man kan få RStudio til at hjælpe med koammando-navne og options vha. Tab-knappen.

Man kan også søge efter hjælp vha. > help.search("plot")