Foi-se utilizado duas distribuições uniformes. O “x” com intervalo de (-0.5 à 0.5) e o “y” com intervalo de (0 à 1/sqrt(2*pi)). Além disso, chamamos a função da distribuição normal e fizemos uma simulação “n” vezes.
library(tidyverse)
## -- Attaching packages ----------------------------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 2.2.1 v purrr 0.2.4
## v tibble 1.4.2 v dplyr 0.7.4
## v tidyr 0.8.0 v stringr 1.3.0
## v readr 1.1.1 v forcats 0.3.0
## -- Conflicts -------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
area <- function(n){
args(runif)
runif(n,min = -0.5,max = 0.5)
x <- runif(n,min = -0.5,max = 0.5)
y <- runif(n,min = 0,max = (1/sqrt(2*pi)))
f = (1/sqrt(2*pi))*exp(-(x^2)/2)
ind <- if_else(y<f,1,0)
freQ <- sum(ind)/n
r = freQ * (1/sqrt(2*pi))
return(r)
}
area(200)
## [1] 0.3750057
Ao término das simulações, contabilizamos a frequência de quantos casos pontos estão abaixo da curva da normal. Lembrando que esses pontos são gerados através dos “x” e “y” que foram simulados. Por fim, calculamos a área. Nesse exemplo, eu chamei “n” de 200 e verifiquei que essa área é de aproximadamente 0,39.