Generovanie náhodných čísel zo zadaného spojitého rozdelenia

Rovnomerné rozdelenie - už sme ho videli:

x <- runif(5, min = 1, max = 2) # 5 cisel z intervalu (1, 2)
x
## [1] 1.698674 1.600765 1.792644 1.774789 1.711056
y <- runif(3) # defaultne min = 0, max = 1
y
## [1] 0.3587954 0.8225300 0.4586216

Exponenciálne rozdelenie

set.seed(123)
rexp(5, rate = 1/5) # E(X) = 1/rate
## [1] 4.2172863 2.8830514 6.6452743 0.1578868 0.2810549
dexp(3, rate = 1/5) # hustota
## [1] 0.1097623
pexp(3, rate = 1/5) # distribucna funkcia
## [1] 0.4511884

Histogram zo simulácií:

x <- rexp(10^3, rate = 1/2)
hist(x)

Kreslenie grafov:

curve(dexp, from = 0, to = 10)

curve(pexp, from = 0, to = 10)

Príklad: príklad 7 z cvičenia o spojitých náhodných premenných (čas odhalenia chyby prístroja) - doplňte simulácie:

priklad7 <- function(){
  chyba <- rexp(...)
  odhalenie <- max(chyba, 2)
  return(odhalenie)
}
 
simulacie <- replicate(...)
hist(simulacie)

Ďalšie rozdelenia

  • Spoločné: začiatok funkcií: r - náhodné číslo, d - hustota, p - distribučná funkcia
  • Potom skratka rozdelenia norm, chisq, weibull, ...
  • Treba si pozrieť help, napr. ?rweibull (napr. kvôli parametrizácii rozdelenia)

Dosadzovanie náhodných čísel do distribučnej funkcie

Príklad (z knihy Quant Job Interview Questions and Answers): Aké rozdelenie dostaneme, ak budeme dosadzovať náhodné čísla z N(0,1) rozdelenia do distrbučnej funkcie toho istého rozdelenia?

  • Spravíme simuláciu.
  • Zopakujeme pre iné rozdelenia.
  • Dokážeme všeobecné tvrdenie.

Metóda inverznej transformácie

  • Odvodíme postup, ako generovať náhodné čísla zo zadaného rozdelenia
  • Použijeme na generovanie náhodných čísel z rozdelení z príkladov 1, 2, 3, 4, 5 z cvičenia o spojitých náhodných premenných.