3.1 Simulation
R kan bruges til at at illustrere sætninger som I kender fra sandsynlighedsteori. Den kan nemlig generere udfald af stokastiske variable med en given fordeling – vi siger, vi simulerer udfald.
Indbyggede R funktioner der simulerer starter altid med bogstaven “r
” som “random”, fulgt ved en forkortelse der står for fordelingen. Det første argument af disse funktioner er antallet n
på udfald som skal simuleres, de andre argumenter specificerer fordelingen nærmere. Resultatet er en vektor af (næsten) uafhængige udfald.
For eksempel får vi ved runif(n = 3, min = 5, max = 10)
en vektor med tre tal som er vilkårligt trukket i intervallet \([5, 10]\). Her står unif
for den uniforme fordeling.
## [1] 9.574030 9.685377 6.430698
Når vi kører den samme programlinje igen, får vi nogle nye tal:
## [1] 9.152238 8.208728 7.595480
Faktiskt må man godt udelade navne på argumenterne i R funktioner, hvis man overholder rækkefølgen (her: n
,min
,max
):
## [1] 8.682942 5.673333 8.284961
Alle tal som vi får på denne måde burde ligge mellem 5 og 10. De forholder sig næsten som uafhængige udfald af en uniform fordelt stokastisk variabel, men i virkeligheden står der en algoritme bag simulationen, som faktisk er deterministisk. Alligevel fås forskellige tal hver eneste gang vi kører runif
funktionen. Det kan undgås ved at sætte den mystiske algoritme i en tilstand som vi selv bestemmer. Det kan vi ved at kalde R-funktionen set.seed
. Denne funktion tager et tal som argument. Lige efter kalden til set.seed
starter algoritmen i samme tilstand og runif
producerer så den samme output. I kan selv vælge argumentet til set.seed
, og vil så få andre resultater
## [1] 9.779469 9.686428 6.191102
## [1] 6.275368 6.952560 6.705899
## [1] 9.779469 9.686428 6.191102