230 likes | 415 Views
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)
E N D
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 workingdirectory..’ 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=TRUEhar vi angivet at variabelnavne er angivet i øverste række (akaheader’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 vaegtfrem 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.
Spol frem og tilbage mellem plots Et par plot • Histogram • Boxplot
Numeriske opsummeringer R vil ikke udregne gennemsnittet, når der mangler observationer. • Middelværdi • Percentiler (standarden er 0%, 25%, 50%, 75%, 100%) • Andre percentiler, fx. 5% og 95% • Standardafvigelsen
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 Rygerikke 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: tabelX-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 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
Eksamensopgave i R - plot • 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")
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")