r / rstudio
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 PresentationTRANSCRIPT
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")