Distribuição normal, vamos criar uma sequência de z-scores e demonstrar a função densidade probabilidade de cada um.

zscore <- seq(-3,3, by = .1)
zscore
##  [1] -3.0 -2.9 -2.8 -2.7 -2.6 -2.5 -2.4 -2.3 -2.2 -2.1 -2.0 -1.9 -1.8 -1.7 -1.6
## [16] -1.5 -1.4 -1.3 -1.2 -1.1 -1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1
## [31]  0.0  0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1.0  1.1  1.2  1.3  1.4
## [46]  1.5  1.6  1.7  1.8  1.9  2.0  2.1  2.2  2.3  2.4  2.5  2.6  2.7  2.8  2.9
## [61]  3.0

Vamos criar um vetor dos valores que a função leva, considerando os valores do zscore

dvalues <- dnorm(zscore)

Vamos examinar esses valores

dvalues
##  [1] 0.004431848 0.005952532 0.007915452 0.010420935 0.013582969 0.017528300
##  [7] 0.022394530 0.028327038 0.035474593 0.043983596 0.053990967 0.065615815
## [13] 0.078950158 0.094049077 0.110920835 0.129517596 0.149727466 0.171368592
## [19] 0.194186055 0.217852177 0.241970725 0.266085250 0.289691553 0.312253933
## [25] 0.333224603 0.352065327 0.368270140 0.381387815 0.391042694 0.396952547
## [31] 0.398942280 0.396952547 0.391042694 0.381387815 0.368270140 0.352065327
## [37] 0.333224603 0.312253933 0.289691553 0.266085250 0.241970725 0.217852177
## [43] 0.194186055 0.171368592 0.149727466 0.129517596 0.110920835 0.094049077
## [49] 0.078950158 0.065615815 0.053990967 0.043983596 0.035474593 0.028327038
## [55] 0.022394530 0.017528300 0.013582969 0.010420935 0.007915452 0.005952532
## [61] 0.004431848

Agora vamos plotar os dados

plot(dvalues, # Plot where y = values and x = index of the value in the vector
     xaxt = "n", # Don't label the x-axis
     type = "l", # Make it a line plot
     main = "pdf of the Standard Normal",
     xlab= "Z-score") 

# These commands label the x-axis
axis(1, at=which(dvalues == dnorm(0)), labels=c(0))
axis(1, at=which(dvalues == dnorm(1)), labels=c(-1, 1))
axis(1, at=which(dvalues == dnorm(2)), labels=c(-2, 2))

### A função dnorm retorna a altura do gráfico da distribuição normal padrão.
### A função pnorm retorna a integral de menos infinito até o ponto z especificado na função, ou seja, o parâmetro lower.tail = TRUE é o padrão. Ao especificar lower.tail = FALSE, ele vai pegar a integral (cálculo da área abaixo do gráfico) a partir do ponto z até mais infinito. Lower.tail significa cauda inferior.
### Já a função qnorm, é o inverso da função pnorm, ela retorna o valor de z, dado o valor da área abaixo do gráfico até (ou a partir) do ponto z.

pvalues <- pnorm(zscore)

# Now we'll plot these values
plot(pvalues, # Plot where y = values and x = index of the value in the vector
     xaxt = "n", # Don't label the x-axis
     type = "l", # Make it a line plot
     main = "cdf of the Standard Normal",
     xlab= "Quantiles",
     ylab="Probability Density") 

# These commands label the x-axis
axis(1, at=which(pvalues == pnorm(-2)), labels=round(pnorm(-2), 2))
axis(1, at=which(pvalues == pnorm(-1)), labels=round(pnorm(-1), 2))
axis(1, at=which(pvalues == pnorm(0)), labels=c(.5))
axis(1, at=which(pvalues == pnorm(1)), labels=round(pnorm(1), 2))
axis(1, at=which(pvalues == pnorm(2)), labels=round(pnorm(2), 2))

### rnorm serve para gerar um vetor de números aleatórios distribuídos normalmente. É interessante definir uma semente antes, para que seus dados possam ser replicados em outro computador com os mesmos números. set.seed Eu vou gerar uma seed com uma equação de 5 menos 8 menos 2020.

set.seed(05-08-2020)
rnorm(5)
## [1] -0.4982783  0.4011413 -1.3838022  0.5074972 -0.8739998

Vamos gerar três vetores para avaliar o gráfico da distribuição

n10 <- rnorm(10, mean = 70, sd = 5)
n100 <- rnorm(100, mean = 70, sd = 5)
n10000 <-  rnorm(10000, mean = 70, sd = 5)

Agora vamos gerar o gráfico de cada um. Utilizaremos a função oldpar para deixar os gráficos lado a lado.

oldpar <- par()
par(mfrow=c(1,3))

# The breaks argument specifies how many bars are in the histogram
hist(n10, breaks = 5)
hist(n100, breaks = 20)
hist(n10000, breaks = 100)