Institut for Matematiske Fag Sandsynlighedsregning og Statistik 2 Københavns Universitet Susanne Ditlevsen og Helle Sørensen R opgaver Det er en god ide at vænne sig til at skrive kommandoerne i en editor efter eget valg så de kan gemmes til senere brug. I Windows åbnes R s indbyggede editor vha. File-menuen (New script eller Open script). Kommandoer overføres til prompten vha. Ctrl-R. I File-menuen kan man desuden skifte arbejdskatalog (Change dir) så filer som default gemmes og hentes fra dette katalog. 1. Kom i gang med R Opgave 1 Start R og udfør nedenstående. Find gerne selv på flere ting! (a) Beregn 7 9 + 3 og 0.95 10 og log(10). (b) Lav en variabel a med værdien 7 og en variabel b med værdien 8. Skriv a og b på skærmen. Beregn summen og produktet af a og b. (c) Lav en vektor x med værdierne 2, 9, 4 og 6 og en vektor y med værdierne 2, 1, 0, 2. Prøv kommandoerne x+y, x*y, log(x), log(y), 4+x og 2*y, og hold øje med hvad der sker. (d) Prøv kommandoerne x[1], x[2:3], x[-3] og x[5]. (e) Prøv også kommandoerne plot(x), plot(x,y), plot(x,y,type= l ) og plot(x,y,type= b ) (f) Prøv kommandoerne z = seq(4,6,0.1) og u = seq(4,6,length=15) og se hvad z og u indeholder. (g) Prøv kommandoen v = rexp(100,0.5). v indeholder 100 tilfældige tal trukket fra eksponentialfordelingen med parameter 0.5. Prøv kommandoerne sum(v), mean(v), var(v) og sd(v). Overvej hvordan disse størrelser forholder sig til eksponentialfordelingen med parameter 0.5. (h) Prøv også kommandoen mean(v*v). Hvad er sammenhængen mellem mean(v*v), mean(v) og var(v)? Sammenhængen er kun approksimativ. 1
2. Indlæsning af data Opgave 2 Konstruer et R-datasæt test med tre variable og 12 observationer: x y z 0 1 6 1 0 9 0 0 1 0 0 20 0 1 5 0 1 2 1 1 3 1 1 8 1 1 7 0 1 10 0 0 15 1 1 4 Ordrerne c, cbind og data.frame kan med fordel benyttes. 3. Konstruktion af deldatadæt I følgende opgaver kan ordren subset benyttes. Opgave 3 Konstruer på grundlag af test et nyt datasæt, der kun indeholder de to variable x og y. Opgave 4 Konstruer på grundlag af test et nyt datasæt, der indeholder alle observationer med x=1. Opgave 5 Konstruer på grundlag af test et nyt datasæt, der indeholder alle observationer med x=0 og y=1. Opgave 6 Konstruer på grundlag af test et nyt datasæt, der kun indeholder variablen z og kun observationer med y=0. 4. Sammenfletning af datasæt I følgende opgaver kan ordrerne rbind, cbind og merge benyttes. 2
Opgave 7 Konstruer et R-datasæt test1 med tre variable og 4 observationer: x y z 0 0 9 1 0 6 0 1 1 1 1 5 Sammensæt test og test1 til et datasæt med 3 variable og 16 observationer. Opgave 8 Konstruer et R-datasæt test2 med to variable og 12 observationer: index v 1 nej 2 ja 3 nej 4 nej 5 ja 6 nej 7 nej 8 ja 9 nej 10 nej 11 nej 12 ja Sammensæt test og test2 til et datasæt med 5 variable og 12 observationer. Opgave 9 Konstruer et R-datasæt test3 med to variable og 12 observationer: index u 1 1 2 1 3 1 4 1 5 2 6 2 7 2 8 2 9 3 10 3 11 3 12 3 3
Sammensæt test2 og test3 til et datasæt med 3 variable og 12 observationer, da de har variablen index tilfælles. 5. Konstruktion af nye variable I følgende opgaver kan ordren transform benyttes. Opgave 10 Konstruer på grundlag af test et nyt datasæt, der sammen med x, y og z indeholder de to nye variable scaledx = 5x og logz = log(z). Opgave 11 Konstruer på grundlag af test et nyt datasæt, der indeholder de 3 variable z, sumxy = x+y og xlogy = x*log(y). Undersøg om der er manglende værdier i datasættet. 6. Tilfældige tal og fordelinger I følgende opgaver kan ordrerne rnorm, dnorm, rbinom, dbinom, hist, qqnorm, seq, plot, mean, se og var benyttes. Opgave 12 Frembring en vektor, normal50, med 50 normalfordelte observationer med middelværdi 0 og varians 1. Find gennemsnit, median, standardafvigelse og varians. Tegn desuden et histogram af vektoren. Gentag øvelsen nogle gange for et få en ide om hvor forskellige stikprøver fra en normalfordeling kan se ud. Opgave 13 Som opgave 12 men med 1000 observationer i stedet for 50. Prøv desuden kommandoen z = rnorm(1000,5,2) og tegn histogram af z. Beregn også middelværdi, varians og spredning for z. Hvilken fordeling er værdierne i z trukket fra? Opgave 14 Lav en vektor x med 20 normalfordelte variable med middelværdi 0 og spredning 1. Tegn et QQ-plot for x. Gentag øvelsen nogle gange for at få et indtryk af hvor forskellige QQ-plots for normalfordellte stikprøver faktisk kan se ud. Prøv også med andre stikprøvestørrelser, både mindre og større end 20. Opgave 15 Lav en vektor x der løber fra -4 til 4 i spring af 0.1. Lav derefter en vektor y der indeholder værdierne af normalfordelingens tæthedsfunktion beregnet i x s værdier. Brug x og y til at tegne tæthedsfunktionen, brug valgmuligheden type= l i plot-kommandoen. Opgave 16 Lav en vektor med 1000 normalfordelte observationer med middelværdi 0 og varians 1, og tegn et histogram af vektoren. Prøv også kommandoen 4
hist(x, prob=t) og forklar hvordan histogrammet ændres. Udfør derefter kommandoen points(x,y,type= l ) hvor x og y er som i opgave 15 Forklar hvad du kan se. Opgave 17 Frembring en vektor binomial50 med 50 binomialfordelte observationer med sandsynlighedsparameter 0.3. Find gennemsnit, median, standardafvigelse og varians. Gentag øvelsen med en vektor binomial1000 med 1000 binomialfordelte variable med samme sandsynlighedsparameter. Opgave 18 Lav en vektor x der løber fra 0 til 50 i spring af 1. Plot binomialfordelingens tæthedsfunktion med sandsynlighedsparameter 0.3 og antalsparameter 50 udregnet i punkterne givet ved x. Brug valgmuligheden type= h i ordren plot. Hvorfor er det kun interessant med spring på 1 i x? Opgave 19 Gentag øvelsen med andre antalsparametre, f.eks 5 og 500. Bemærk at vektoren x skal løbe fra 0 til antalsparameteren (hvorfor?). Opgave 20 Frembring to vektorer normx og normy hver med 100 normalfordelte observationer med middelværdi 0 og varians 1. Find den empiriske korrelationskoefficient for (normx,normy) og for (normx,normx+normy) Opgave 21 Denne opgave illustrerer hvordan man kan simulere observationer fra en fordeling med fordelingsfunktion F vha. ligefordelingen, jf. Eksempel 5.4.4 fra MS. (a) Lav en vektor, r, med 1000 observationer fra ligefordelingen på (0, 1) vha. funktionen runif. Lav et histogram af r og forklar hvorfor det ser ud som det gør. I MS Eksempel 5.1.4 betragtes Beta-fordelingen, med tæthed og fordelingsfunktion Vi skal kun se på tilfældet β = 3. p(x) = βx β 1, x (0, 1) F (x) = x β, x (0, 1) (b) Bestem den inverse funktion F 1 til F når β = 3. (c) Lav en vektor z som indeholder værdierne af F 1 beregnet i værdierne for r (stadig β = 3). 5
(d) Brug kommandoen hist(z, prob=t) til at lave et histogram for z. Tegn desuden tætheden p for β = 3 oveni histogrammet. Er tætheden en god approksimation til histogrammet? Hvorfor? Hvordan kan vi fortolke værdierne af z? Vink: Se opgave 16 for at se hvordan du tilføjer grafen for en funktion til en allerede eksisterende figur. Opgave 22 Denne opgave handler om den logaritmiske normalfordeling, jf. opgave MS 5.15. (a) Lav en vektor x med 1000 observationer fra normalfordelingen med middelværdi 0 og varians 1, og lav et histogram af normal. (b) Lav så en vektor y der indeholder exponentialfordelingen til værdierne i x. Lav et histogram af y. Er fordelingen af y symmetrisk? (d) Prøv også kommandoerne hist(y, prob = T) hist(y, prob = T, nclass = 50) hist(y, prob = T, nclass = 50, ylim = c(0, 0.7)) og forklar hvordan figuren ændres. (c) I opgave MS 5.15 fandt vi ud af at hvis X er normalfordelt med middelværdi 0 og varians 1 og Y = exp(x), så har Y tæthed p(y) = 1 ( ) y 2π exp (log(y))2, y > 0 2 Indtegn denne funktion i histogrammet af y. Er det en god approksimation til histogrammet? Hvorfor? (e) I opgave MS 5.15 viste vi at middelværdien af Y er e = 1.6487. Beregn gennemsnittet af y og sammenlign. 6