r / rstudio

Post on 24-Feb-2016

128 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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) 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.

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.

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)

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 ;-)

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.

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

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.

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.

Et par plot

Histogram

Boxplot40

6080

100

120

140

Spol frem og tilbage mellem plots

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.

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)

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

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

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.

Eksamensopgave: Goodness-of-fit

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

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

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")

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")

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

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

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")

top related