PROBABILIDADE PARTE 2

Author

Barreira, R.

PROBABILIDADE PARTE 2: GAMMA E NORMAL

Por Renato Barreira

renatobarreira@edu.unirio.br

Vamos explorar duas distribuições continuas muito importantes em estatística: a Gamma e a Normal.

Distribuição Gamma

A distribuição Gamma é utilizada para modelar variáveis contínuas positivas, como o tempo entre eventos (ex: tempo entre uma eleição e outra). Dois parâmetros principais a controlam: shape e rate. Ela é utilizada para modelar o tempo necessário de se obter um número específico de ocorrências de um evento.

Shape (k): Este parâmetro controla a forma da distribuição. Um valor maior de shape significa que a distribuição se torna mais simétrica, enquanto valores pequenos criam distribuições mais assimétricas.

Rate (λ): O parâmetro de taxa controla a dispersão da distribuição. Um valor maior de λ significa que os eventos ocorrem mais rapidamente, concentrando os valores ao redor de zero, enquanto valores menores de λ alongam a distribuição, fazendo com que os eventos sejam menos frequentes.

Uma aplicação clássica da distribuição Gamma é a modelagem do tempo entre eventos sucessivos em processos que seguem a distribuição Poisson, como tempo entre eleições ou tempo entre ocorrências de um fenômeno natural.

Se você tem um shape alto, a distribuição tende a ter um pico mais pronunciado, enquanto um rate maior concentra os valores mais próximos de zero, indicando que os eventos estão mais próximos uns dos outros.

Função DGAMMA

Retorna a densidade de probabilidade para valores 𝑥 de uma distribuição Gamma.

shape: Controla a forma da distribuição. No exemplo, shape = 2 cria uma curva mais simétrica.

rate: Controla a dispersão. Um rate = 0.5 faz com que os valores sejam mais dispersos, enquanto um valor maior concentraria os valores mais próximos de zero.

#dgamma(x, shape, rate = 1, scale = 1/rate, log = FALSE)
x = seq(0, 20, by = 0.1) #criando uma sequência aleatória
y = dgamma(x, shape = 2, rate = 0.5) #definindo a probabilidade
plot(x, y, type = "l", col = "blue", main = "Densidade da Distribuição Gamma (shape=2, rate=0.5)") #plotando

Função PGAMMA

A função pgamma calcula a probabilidade acumulada até um determinado valor. Isso mostra a probabilidade de que a variável aleatória seja menor ou igual a um valor específico.

#pgamma(q, shape, rate = 1, scale = 1/rate, lower.tail = TRUE, log.p = FALSE)

pgamma(5, shape = 2, rate = 0.5)
[1] 0.7127025

Função QGAMMA

A função qgamma retorna o valor de x associado a uma probabilidade acumulada específica. Isso é útil para encontrar quantis.

#qgamma(p, shape, rate = 1, scale = 1/rate, lower.tail = TRUE, log.p = FALSE)
qgamma(0.8, shape = 2, rate = 0.5) # Valor onde 80% da distribuição está abaixo
[1] 5.988617

Função RGAMMA

Gera uma amostra aleatória de uma distribuição Gamma.

#rgamma(n, shape, rate = 1, scale = 1/rate)

# Definindo os parâmetros shape e rate
shape = 2
rate = 0.5

dist_aleatoria = rgamma(1000, shape = shape, rate = rate) #Gerando 1000 valores aleatórios em distribuição de probabilidade Gamma

#histograma da distribuição de probabilidade
hist(dist_aleatoria, breaks = 30, col = "lightblue",
     main = "Histograma de Valores Aleatórios da Distribuição Gamma",
     xlab = "Valores Aleatórios", freq = FALSE)

# Adicionando a curva teórica da distribuição Gamma
?curve
starting httpd help server ... done
curve(dgamma(x, shape = shape, rate = rate), col = "red", lwd = 2, add = TRUE)

Distribuição NORMAL

A distribuição Normal, também chamada de distribuição Gaussiana, é uma das distribuições mais importantes em estatística. Ela é usada para modelar variáveis contínuas que tendem a se agrupar ao redor de um valor médio, com uma simetria em relação a essa média. Muitas vezes, ela é usada em fenômenos naturais e sociais, como a altura de indivíduos, notas em exames e até mesmo a distribuição de votos em eleições onde não há grandes vieses.

A distribuição Normal é amplamente utilizada para modelar fenômenos simétricos que se concentram em torno de uma média, com variação medida pelo desvio padrão.

  • Simetria: A distribuição Normal é simétrica em torno de sua média (μ). Isso significa que as probabilidades de valores menores e maiores que a média são iguais.

  • Média, Mediana e Moda: Na distribuição Normal, a média, mediana e moda são todas iguais e coincidem no ponto central da distribuição.

  • Parâmetros: A distribuição é controlada por dois parâmetros:

    • Média (μ): Indica o valor central da distribuição.

    • Desvio padrão (σ): Mede a dispersão dos dados em torno da média. Quanto maior o desvio padrão, mais “espalhada” a distribuição; quanto menor, mais concentrada em torno da média.

  • Curva em forma de sino: O gráfico da distribuição Normal tem o formato clássico de sino, com a maior parte dos valores agrupados ao redor da média e caindo suavemente à medida que se afastam da média.

  • Propriedades probabilísticas:

    • Aproximadamente 68% dos valores de uma distribuição Normal estão dentro de 1 desvio padrão da média (μ ± σ).

    • Aproximadamente 95% dos valores estão dentro de 2 desvios padrões da média (μ ± 2σ).

    • Aproximadamente 99.7% dos valores estão dentro de 3 desvios padrões da média (μ ± 3σ).

Função DNORM

A função dnorm calcula a densidade (altura da curva) em um ponto específico da distribuição.

#dnorm(x, mean = 0, sd = 1, log = FALSE)

#Definindo os parâmetros média e desvio padrão aleatórios para esse exemplo
mu = 50  # Média
sigma = 10  # Desvio padrão

# Criando uma sequência de valores para x para a gente usar como exemplo
x = seq(20, 80, by = 0.1)

# Calculando a a probabilidade para todos os pontos x usando dnorm
y = dnorm(x, mean = mu, sd = sigma)


plot(x, y, type = "l", col = "blue", lwd = 2,
     main = "Densidade da Distribuição Normal (média = 50, desvio padrão = 10)",
     xlab = "x", ylab = "Densidade")

Função PNORM

A função pnorm calcula a probabilidade acumulada até um determinado valor. Isso mostra a probabilidade de que a variável seja menor ou igual a um valor específico.

#pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
pnorm(60, mean = mu, sd = sigma) #probabilidade acumulada até x = 60
[1] 0.8413447

Função QNORM

A função qnorm retorna o valor de x associado a uma probabilidade acumulada específica. Isso é útil para encontrar percentis, como o valor associado ao 95º percentil.

#qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
qnorm(0.95, mean = mu, sd = sigma)
[1] 66.44854

Função RNORM

A função rnorm gera valores aleatórios de uma distribuição Normal com os parâmetros especificados. Isso é útil para simulações.

#rnorm(n, lambda)

# Gerando 1000 valores aleatórios da distribuição Normal com parametros mu e sigma (definidos no primeiro bloco de código)
dist_normal = rnorm(1000, mean = mu, sd = sigma)

#Histograma dessas probabilidades
hist(dist_normal, breaks = 30, col = "lightblue",
     main = "Histograma de Valores Aleatórios da Distribuição Normal",
     xlab = "Valores Aleatórios", freq = FALSE)

#Curva para facilitar a leitura
curve(dnorm(x, mean = mu, sd = sigma), col = "red", lwd = 2, add = TRUE)

SERÁ QUE VOCÊ APRENDEU MESMO?

Tente você, clique na pergunta para ver a resposta.

# Gerando a amostra Gamma
set.seed(123) #para salvar e não gerar aleatório toda a vez q a gente correr o código
amostra_gamma = rgamma(500, shape = 3, rate = 1.2)

#histograma
hist(amostra_gamma, probability = TRUE, main = "Histograma da Amostra Gamma", col = "lightblue", border = "white", xlim = c(0, 15))

#Calculando a densidade e faznedo o gráfico
x = seq(0, 15, by = 0.1)
densidade_gamma = dgamma(x, shape = 3, rate = 1.2)
lines(x, densidade_gamma, col = "blue", lwd = 2)
legend("topright", legend = c("Densidade Teórica", "Histograma"), col = c("blue", "lightblue"), lwd = 2) #colocando a legenda pra ficar bonitinho

set.seed(123)
amostra_normal = rnorm(1000, mean = 5, sd = 2)


hist(amostra_normal, probability = TRUE, main = "Histograma da Amostra Normal", col = "lightgreen", border = "white", xlim = c(-2, 12))


x = seq(-2, 12, by = 0.1)
densidade_normal = dnorm(x, mean = 5, sd = 2)
lines(x, densidade_normal, col = "red", lwd = 2)
legend("topright", legend = c("Densidade Teórica", "Histograma"), col = c("red", "lightgreen"), lwd = 2)

set.seed(123) #sempre q vc usar algo q gera uma saída aleatória, se vc quiser um resultado fixo sempre vc usa set.seed para "salvar" o resultado.
amostra_duracao_campanha = rgamma(2000, shape = 4, rate = 0.8)
amostra_votos = rnorm(2000, mean = 50, sd = 10)
hist(amostra_duracao_campanha, probability = TRUE, main = "Tempo de Duração de Campanhas", col = "lightblue", border = "white", xlim = c(0, 12))
x = seq(0, 12, by = 0.1)
densidade_duracao_campanha = dgamma(x, shape = 4, rate = 0.8)
lines(x, densidade_duracao_campanha, col = "blue", lwd = 2)

# Plotando o histograma da amostra Normal (distribuição de votos)
hist(amostra_votos, probability = TRUE, main = "Distribuição de Votos", col = "lightgreen", border = "white", xlim = c(20, 80))
x = seq(20, 80, by = 0.1)
densidade_votos = dnorm(x, mean = 50, sd = 10)
lines(x, densidade_votos, col = "red", lwd = 2)

legend("topright", legend = c("Densidade Teórica"), col = c("blue", "red"), lwd = 2)

QUALQUER DÚVIDA SÓ DEIXAR UM COMENTÁRIO AQUI NO RPUBS MESMO.