Funkcie v R
?rnorm
?runif
?rexp
set.seed(123)
x <- rexp(10^3, rate = 1/2)
hist(x)

mean(x)
## [1] 2.059959
Príklady na rovnomerné rozdelenie
priklad1 <- function(a, b){
l <- runif(1, min = a, max = b)
m <- runif(1, min = a, max = b)
# pravdepodobnosť, že bod L je bližšie k bodu M ako k bodu A
return(abs(l-m) < abs(l-a))
}
simulacie <- replicate(10^5, priklad1(1, 3))
prop.table(table(simulacie))
## simulacie
## FALSE TRUE
## 0.24951 0.75049
simulacie <- replicate(10^5, priklad1(0, 5))
prop.table(table(simulacie))
## simulacie
## FALSE TRUE
## 0.24915 0.75085
# vypocet na tabuli -> pravd. nezavisi od a, b -> mozeme zobrat (0, 1)
simulacie <- replicate(10^6, priklad1(0, 1))
prop.table(table(simulacie))
## simulacie
## FALSE TRUE
## 0.249764 0.750236
priklad3 <- function(){
r <- runif(1, 0, 60)
j <- runif(1, 0, 60)
return(abs(r-j) < 10)
}
simulacie <- replicate(10^5, priklad3())
prop.table(table(simulacie))
## simulacie
## FALSE TRUE
## 0.69389 0.30611
Príklady na normálne a exponenciálne rozdelenie
priklad1 <- function(n){
ziarovky <- rexp(n, rate = 1)
return(sum(ziarovky))
}
simulacie <- replicate(10^5, priklad1(10))
hist(simulacie)

mean(simulacie)
## [1] 9.99236
simulacie <- replicate(10^5, priklad1(20))
hist(simulacie)

simulacie <- replicate(10^5, priklad1(100)) # centralna limitna veta
hist(simulacie)

simulacie <- replicate(10^5, priklad1(1))
hist(simulacie)

simulacie <- replicate(10^5, priklad1(2))
hist(simulacie)

priklad2 <- function(){
x <- rnorm(1, mean = 20, sd = 30)
return(abs(x) > 50)
}
priklad2()
## [1] FALSE
simulacie <- replicate(10^5, priklad2())
prop.table(table(simulacie))
## simulacie
## FALSE TRUE
## 0.83065 0.16935
?pnorm
# pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
# distribution function
1 - (pnorm(50, mean = 20, sd = 30) - pnorm(-50, mean = 20, sd = 30)) # 0.1684706
## [1] 0.1684706
Dôležitý príklad: dosadzujeme náhodné čísla do distribučnej
funkcie
x <- rnorm(10^4, mean = 20, sd = 30)
y <- pnorm(x, mean = 20, sd = 30)
hist(y)

x <- rexp(10^4, rate = 10)
y <- pexp(x, rate = 10)
hist(y)

x <- rexp(10^4, rate = 1)
y <- pexp(x, rate = 1)
hist(y)

x <- rnorm(10^4) # N(0,1)
y <- pnorm(x)
hist(y)
