1 Introdução

Nesta seção abordaremos as distribuições de probabilidade. Para uma grande variedade de modelos de probabilidade, discretos ou contínuos, o pacote Stats do R possui um conjunto de funções que permitem o cálculo de probabilidades e quantis, e a obtenção por simulação de amostras aleatórias para a variável de interesse. Por exemplo, para o modelo binonial com parâmetros \(n\) e \(p\), \(B(n,p)\), as seguintes funções são disponiveis:

dbinom - retorna a probabilidade \(P(X = x)\).

pbinom - retorna a probabilidade acumulada \(P(X \leq x)\).

qdinom - retorna o quantil de ordem \(q\).

rbinom - retorna uma amostra de \(n\) valores da variável aleatória binomial.

Para outros modelos de probabilidade, existem funções equivalentes, cujos nomes seguem o padrão utilizado para o modelo binomial, onde a primeira letra do nome corresponde ao objeto da função, seguido do nome abreviado da distribuição de probabilidade. Por exemplo, para um modelo normal temos as funções dnorm, pnorm, qnorm e rnorm. A função dnorm, assim como as funções equivalentes para outros modelos contínuos, retorna a função densidade de probabilidade para um dado valor \(x\) da variável aleatória.

Mostraremos, para os modelos Binomial, Poisson e Normal, alguns exemplos envolvendo o uso dessas funções.


1.1 Modelo Binomial

O modelo Binomial, \(B(n,p)\), descreve a variável aleatória X número de sucessos em n experimentos aleatórios independentes, onde cada experimento possui 2 resultados possíveis, sucesso ou fracasso, e onde a probabilidade de sucesso é igual a p. Segundo este modelo, a probabilidade de observar x sucessos, é dada por:

\[ P(X=x) = \binom{n}{x}p^x(1-p)^{n-x}\ para\ x = 0,...,n;\] onde \(\binom{n}{x} = \frac{n!}{x!(n-x)!}.\)

O valor esperado e a variância de uma variável aleatória Binomial são respectivamente iguais a \(E(X) = np\) e \(VAR(x)=np(1-p)\).

===============================================================================================================

Exemplo 1:

Uma maquina de empacotar café é configurada para embalagens de 1/2 kg. Embalagens cujo peso estão distante de 1/2 kg em mais de 5 gramas são consideradas fora de especificação. Sabe-se que, quando a máquina está bem regulada, 90% dos pacotes são produzidos dentro da especificação.

Considerando que uma embalagem está fora ou dentro da especificação, independentemente do resultado observado para outras embalagens, vamos utilizar o modelo Binomial com \(n = 10\) e \(p = 0,90\) para responder essa e outras perguntas de interesse. No R os valores de \(n\) e \(p\) são denotados nas funções descritas acima para o modelo Binomial por size e prob.

a) Qual a probabilidade de todas as embalagens amostradas estejam dentro do padrão esperado?

Para responder esta pergunta usamos a função dbinom, cujos argumentos são o valor \(x\) para o qual desejamos calcular a probabilidade, o valor de \(n\) (size) e o valor de \(p\) (prob). O valor obtido para a probabilidade é 0,3486.

dbinom(x = 10, size = 10, prob = 0.90)
## [1] 0.3486784

b) Qual a probabilidade de que 8 das embalagens amostras estejam dentro do padrão?

dbinom(8, size = 10, prob = 0.90)
## [1] 0.1937102

A seguir, usamos a função dbinom para obter as probabilidades para todos os valores possíveis de \(X\) e a partir deles construir o gráfico da distribuição de probabilidade. Neste gráfico destacamos em verde a barra correspondente ao valor 8, cuja altura é igual a \(P(X=8)\).

x = dbinom(0:10, size = 10, 0.90, log = FALSE)
names(x)=0:10
barplot(x,  col=c(rep("grey",8),'forestgreen', rep("grey",2)), main = 'Binomial (n = 10, p = 0.90)', xlab = "x" , ylab = "P(X = x)")

c) Qual a probabilidade de que, dos 10 pacotes selecionados, no máximo 8 tenham peso dentro do padrão?

Podemos calcular esta probabilidade de 2 maneiras:

  • somando as probabilidades \(P(X = x)\) para todos os valores de x de 0 a 8, como:
sum(dbinom(x=0:8, size = 10, prob = 0.90))
## [1] 0.2639011
  • usando a função pbinom, que possui como argumento o valor de \(X\), denotado por \(q\), além dos argumentos size e prob.
pbinom(q = 8, size = 10, prob = 0.90)
## [1] 0.2639011

Essa probabilidade corresponde à soma das alturas das barras verdes do gráfico mostrado a seguir.

x = dbinom(0:10, size = 10, prob = 0.90)
names(x) = 0:10
barplot(x,col= c(rep('forestgreen',9),rep('grey',2)), main = 'Binomial (n = 10, p = 0.90)', xlab = "x" , ylab = "P(X = x)")

d) Qual a probabilidade de que 9 ou mais pacotes estejam dentro do padrão?

Podemos calcular \(P(X \geq 9) = P(X > 8)\) como:

  • o complementar da probabilidade \(P(X \leq 8)\):
1 - pbinom(q = 8, size = 10, prob = 0.9)
## [1] 0.7360989
  • fazendo o argumento lower.tail da função pbinom igual a FALSE. Quando este argumento é igual a TRUE, a função retorna \(P(X \leq x)\); e, quando é igual a FALSE, retorna \(P(X > x)\).
pbinom(q = 8, size = 10, prob = 0.9, lower.tail = FALSE)
## [1] 0.7360989

Destacamos em verde, no grafico seguinte, as barras cujas soma das alturas correpondem à \(P(X \geq 9)\).

x= dbinom(0:10, size = 10, 0.90, log = FALSE)
names(x)=0:10
barplot(x, col= c(rep('grey',9),rep('forestgreen',2)), main = 'Binomial (n = 10, p = 0.90)',xlab = "x" , ylab = expression(P(X <= x)))

e) Obtenha o gráfico da função distribuição acumulada \(B(10, 0.90)\).

# calculando as probabilidades acumuladas
p= pbinom(0:10, size = 10, 0.90, log = FALSE)
names(x)=0:10
# construindo o gráfico
barplot(p, col= rep('grey',11), main = 'Binomial (n = 10, p = 0.90)', ylab=expression(P(X <= x)), xlab = "x")

A função qbinom nos fornece o caminho “inverso” da função pbinom. Enquanto a função pbinom retorna o valor da probabilidade acumulada para um certo valor de \(x\), a função qbinom retorna o menor valor de \(x\) para o qual a probabiidade acumulada é maior ou igual a \(p\).

f) Obtenha o quantil de ordem 0,60 da distribuição \(B(10, 0.90)\).

qbinom(p = 0.60, size = 10, prob = 0.9)
## [1] 9

Portanto, se observássemos muitas amostras de 10 pacotes, pelo menos 60% delas teriam no máximo 9 pacotes dentro do padrão.

g) Obtenha os quartis da distribuição \(B(10, 0.90)\)

Obtemos os quartis fazendo p igual ao vetor contendo as probabilidades: 0,25, 0,50 e 0,75.

qbinom(p = c(0.25,0.50,0.75), size = 10, prob = 0.9)
## [1]  8  9 10

Por fim, vamos apresentar a função rbinom, que retorna uma amostra de tamanho \(n\), obtida por simulação, para uma variável aleatória com distribuição Binomial. Esta função tem como argumentos, o tamanho da amostra, n, e os parâmetros da distribuição dados por size e prob.

A simulação de variáveis aleatórias possui muitas aplicações, como por exemplo o cálculo de probabilidades.

===============================================================================================================

Exemplo 2:

Para calcular a probabilidade da variável aleatória B(10; 0.90) assumir valores menores ou iguais a 8, usamos a função pbinom. Esta probabilidade também pode ser calculada por simulação, gerando muitas amostras desta distribuição e calculando a proporção de vezes em que valores menores ou iguais a 8 ocorrem. Neste caso o resultado obtido é uma estimativa da probabilidade, que deverá aproximar-se da probabilidade verdadeira com o aumento do número de simulações realizadas. Para exemplificar, consideramos n = 10000.

# obtendo 1000 valores da B(10; 0.90)
x = rbinom(n = 10000, size = 10, prob = 0.9)
# tabela de frequências para os 10000 valores obtidos
table(x)
## x
##    5    6    7    8    9   10 
##   15  115  555 1988 3903 3424
# calculo de prop, a proporção de valores menores ou iguais a 8, entre os 1000 valores
prop=length(x[x<=8])/10000
prop
## [1] 0.2673

Observe que o valor obtido por simulação ficou bastante próximo do valor calculado usando a função pbinom, igual a 0,2639.

Também podemos estimar, a partir dos valores simulados, a média e a variância de X, pela média e variância amostrais, cujos valores obtidos abaixo são próximos dos respectivos valores teóricos, \(E(X) = np = 9\) e \(VAR(X) = np(1-p) = 0,81\).

mean(x)
## [1] 8.9921
var(x)
## [1] 0.8907267

Se dois alunos usarem usarem o mesmo código rbinom(n,size, prob), com mesmos valores para os argumentos n, size e prob, para obterem amostras de uma distribuição Binomial, eles encontrarão resultados diferentes. Entretanto, é possível assegurar que as sequências obtidas pelos alunos sejam as mesmas fazendo uso da função set.seed antes de usar a função rbinom. Com a função set.seed, fixamos um valor inteiro como semente para a geração da sequência; e sequências obtidas com mesma semente são iguais.

set.seed(66) 
rbinom(n = 10, size = 10, prob = 0.9)
##  [1] 6 8 9 9 9 9 9 8 9 8

Exemplo 3:

Suponha uma prova com 10 questões e assuma que um aluno acerta ou erra cada questão com probabilidade 0,5, independente do resultado obtido nas outras questões. Podemos usar a função rbinom para simular o número de acertos do aluno na prova, fazendo:

set.seed(321)
rbinom(n = 1, size = 10, prob = 0.5)
## [1] 8

Suponha agora que uma turma possui 20 alunos e que estamos interessados em calcular a probabilidade da nota mínima da turma ser menor ou igual a 1. Para calcular exatamente esta probabiidade precisamos conhecer a distribuição de probabilidade da menor nota obtida na prova pelos alunos da turma. Outra possibilidade é estimá-la por simulação.

Assumindo que as notas dos diferentes alunos da turma são variáveis aleatórias independentes com distribuição B(10, 0.5), podemos obter por simulação uma realização das notas dos alunos da turma e a partir delas calcular a nota mínima. Repetindo este procedimento um número grande de vezes, por exemplo 10.000, obtemos por simulação 10.000 valores para a nota mínima da turma. Estimamos a probabilidade da nota mínina ser menor ou igual a 1 calculando a proporção dos valores simulados para a nota mínima que são menores ou iguais a 1. Para isto usaremos o seguinte código:

# Função para simular uma realização das notas da turma e calcular seu valor mínimo
fmin=function(n,size,prob){
x=rbinom(n, size, prob)
min=min(x)
return(min)}

# Com a função replicate executamos a função fmin 10.000 vezes.
xmin=replicate(10000,fmin(20,10,0.50))
table(xmin)
## xmin
##    0    1    2    3    4    5 
##  203 1765 4837 2960  234    1
# Estimando a probabilidade da nota mínima ser menor ou igual a 1 pela proporção de valores da amostra simulada menores ou iguais a 1
p1 = length(xmin[xmin<=1])/10000
p1
## [1] 0.1968

A probabilidade da nota mínima da prova, numa turma de 20 alunos, ser menor ou igual a 1 é estimada, por simulação, em 0.1968.


1.2 Modelo Poisson

Um outro modelo de probabiidade discreto muito importante é o modelo de Poisson. Uma variável aleatória \(X\) tem distribuição de Poisson com parâmetro \(\lambda\) se:

\[ P(X=x) = \frac{e^{-λ}λ^x}{x!},\ x = 0,\ 1,\ 2,\ ...,\]

A média e o valor esperado de uma variável aleatória Poisson são ambas iguais a \(\lambda\), isto é, \(E(X) = VAR(X) =\lambda\).

A distribuição de Poisson pode ser vista como o limite da distribuição \(B(n,p)\) quando \(n \rightarrow \infty\) e \(p\) é pequeno. Para aproximarmos uma distribuição \(B(n,p)\) pela Poisson, fazemos o parâmetro \(\lambda\), da distribuição de Poisson, igual ao valor esperado Binomial, isto é, \(\lambda = n \times p\).

O modelo de Poisson também é utilizado para descrever variáveis aleatórias que representem a contagem de eventos por unidade de tempo, desde que a ocorrência dos eventos se distribua de forma completamente aleatória ao longo do tempo. De forma equivalente, ele é também usado para descrever a contagem de eventos por unidades de área, de comprimento, de volume, etc.

Para o modelo Poisson, as seguintes funções são disponíveis no R: dpois, ppois, qpois e rpois. Para utilizarmos estas funções devemos especificar o valor do parâmetro \(\lambda\) através do argumento lambda. Apresentamos a seguir alguns exemplos de utilização destas funções.

Exemplo 4:

Poisson como aproximação para Binomial: Suponha que uma empresa produz diariamente muitas unidades de certo produto e que em condições normais de operação, 3% dos produtos são produzidos com defeito. Uma amostra de 300 produtos é escolhida ao acaso entre os itens produzidos num dia e cada item é classificado como defeituoso ou não defeituoso. Assumindo que os resultados da inspeção dos itens são eventos independentes, qual a probabilidade de se encontre na amostra no máximo 7 itens defeituosos?

Utilizando o modelo \(B(300, 0.03)\), temos que \(P(X \leq 7)\) é dada por:

pbinom(7,300,0.03)
## [1] 0.3203237

Aproximando o modelo \(B(300,0.03)\) pelo modelo de Poisson com \(\lambda= 300 \times 0.03 = 9\), obtemos \(P(X \leq 7)\) através da função ppois, como mostrado a seguir.

ppois(7,300*0.03)
## [1] 0.323897

Os valores de \(P(X \leq 7)\), obtidos usando os modelos Binomial e Poisson, são muito parecidos, diferindo neste caso somente a partir da terceira casa decimal.

No gráfico abaixo, observe que as probabilidades obtidas pelos modelos \(B(300, 0.03)\) e Poisson com \(\lambda = 9\), usando as funçõesdbinom e dpois, são muito parecidas.

plot(0:20, dbinom(0:20, 300,0.03),xlab="x",ylab="P(X = x)",type="h")
points(0:20, dpois(0:20, 9), col= 2,pch=16)
title("Comparação dos modelos Binomial(300, 0.03) e Poisson(9)")
legend("topright", pch=c(NA,16),lty=c(1,NA),legend=c("Binomial",  "Poisson"),col=c(1,2)) 


Exemplo 5:

Contagens de eventos distribuídos aleatoriamente no tempo: Assuma que reclamações de clientes chegam a um serviço de atendimento ao cliente (SAC) de uma empresa de forma completamente aleatória ao longo do tempo, a uma taxa de 3 reclamações por dia. Então, podemos considerar que \(X\), o número de reclamações que chegam ao SAC, por dia, segue um modelo de Poisson com média \(\lambda=3\).

a) Qual a probabilidade de que, num dia qualquer, o SAC receba 5 reclamações?

\(P(X =5)\), cujo valor é igual a 0,1008, é calculada através da função dpois:

dpois(x = 5, lambda = 3)
## [1] 0.1008188

b) Qual a probabilidade de que, num dia qualquer, cheguem 5 ou menos reclamações?

Para calcular \(P(X ≤ 5)\), usamos a função ppois:

ppois(q = 5, lambda = 3)
## [1] 0.9160821

Essa probabilidade corresponde à soma das alturas das barras verdes do gráfico seguinte.

p= dpois(0:12, lambda = 3)
names(p)=0:12
barplot(p,  col= c(rep('forestgreen',6), rep('grey',7)), main = expression(paste("Poisson (", lambda, " = 3)")), xlab = "k", ylab = "P(X=k)")

c) Qual a probabilidade de que, num dia qualquer, o SAC receba pelo menos 4 reclamações?

Calculamos esta probabilidade como o complementar de \(P(X\leq 3)\), como:

1-ppois(q = 3, lambda = 3, lower.tail = FALSE)
## [1] 0.6472319

ou fazendo o argumento lower.tail=TRUE, de forma similar ao visto no caso da distribuição binomial.

ppois(q = 3, lambda = 3, lower.tail=TRUE)
## [1] 0.6472319

d) Qual o menor valor de X, número diário de reclamações que chegam ao SAC, tal que pelo menos 95% dos dias apresentem número de reclamações menores ou iguais a ele?

Queremos obter o quantil de ordem 0,95 da distribuição de Poisson com média \(\lambda=3\). o que fazemos utilizando a função qpois:

qpois(p = 0.95, lambda = 3)
## [1] 6

O quantil de ordem 0.95 da Poisson(3) é 6, ou seja, em pelo menos 95% dos dias, o número de reclamações que chegam ao SAC deverá ser no máximo igual a 6.


1.3 Modelo Normal

Nas seções anteriores, vimos algumas funções úteis para o cálculo de probabilidades e quantis para os modelos discretos Binomial e Poisson. Nesta seção mostraremos como obter probabilidades e quantis para uma distribuição contínua, a distribuição Normal.

Distribuições de probabilidade de variáveis aleatórias contínuas são geralmente definidas por sua função densidade de probabilidade. Uma variavel aleatória X, possui distribuição Normal se sua função densidade de probabilidade é dada pela equação:

\(f(x) = \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{1}{2}(\frac{x-\mu}{\sigma})^2}, para\ -\infty < x < \infty,\ -\infty < \mu < \infty,\ \sigma^2>0\)

Esta função depende de 2 parâmetros, \(\mu\) e \(\sigma\), respectivamente a média e desvio padrão da variavel aleatória X, que são argumentos das funções dnorm, pnorm, qnorm e rnorm, denotados por mean e sd. Cada combinação de \(\mu\) e \(\sigma\) define uma distribuição Normal diferente.

Usando a função dnorm, que retorna o valor da função densidade para um dado valor, x, da variável aleatória, construímos o gráfico da função densidade de probabilidade para o caso de \(\mu = 9\) e \(\sigma = 2\) (em vermelho) e também para o caso de \(\mu = 8\) e \(\sigma = 1\) (em azul).

curve(dnorm(x, 9, 2), xlim=c(0,21), ylim=c(0,dnorm(8,8,1)*1.1), xlab="x", ylab = "Densidade de Probabilidade" ,main= "Comparação de duas Distribuições Normais", col= "darkred", lwd = 3,yaxs="i") 
curve(dnorm(x, 8, 1), xlim=c(0,21), ylim=c(0,0.5), add = T, col = "navy" , lwd = 3, lty = 1,yaxs="i") 
legend("topright", c("X ~ N(9, 2)","X ~ N(8, 1)"), col=c("darkred","navy"), lty=c(1,1))

Distribuições Normais, como visto no gráfico acima, se caracterizam pela simetria da função densidade de probabilidade em torno da média \(\mu\) e pela forma de sino. O parâmetro \(\sigma\) mede a dispersão dos valores da variável em torno da média. Observe que a curva azul, com menor desvio padrão, é mais concentrada em torno da média do que a curva vermelha.

Diferentemente do caso de variáveis aleatórias discretas, onde calculamos probabilidades para cada valor possível da variável, no caso contínuo, calculamos probabilidades para intervalos de valores. A probabilidade de uma variável contínua assumir valores no intervalo \((a,b)\) é dada pela área, neste intervalo, abaixo da função densidade de probabilidade. Por exemplo, para uma distribuição \(N(9,2)\) a probabilidade de \(X\) estar entre 8 e 10 é dada pela área colorida em vermelho no gráfico seguinte.

curve(dnorm(x, 9, 2), xlim=c(0,21), ylim=c(0,dnorm(9,9,2)*1.1), xlab="x", ylab = "Densidade de Probabilidade" ,col= 1, lwd = 3,yaxs="i") 
x=c(8,8,seq(8,10,0.01),10)
y=c(0,dnorm(8,9,2),dnorm(x=seq(8,10,0.01),9,2),0)
polygon(x=x,y=y,col="darkred")

No R, o cálculo de probabilidades para intervalos de valores para uma variável aleatória Normal é realizado atráves da função pnorm, que retorna para um certo valor \(x\) a probabilidade acumulada \(P(X \leq x)\).

Exemplo 6:

Suponha que, X, o preço de um produto praticado no pontos de venda do mercado varejista de uma cidade tenha distribuição Normal com média igual a R$300,00 e desvio padrão igual a R$20,00 reais.

a) Para um ponto de venda escolhido ao acaso, qual a probabilidade do preço do produto ser menor ou igual a R$290,00?

Calculamos \(P(X \leq 290)\) através da função pnorm, fazendo:

pnorm(290,mean=300,sd=20)
## [1] 0.3085375

Destacamos o valor dessa probabilidade no gráfico da função distribuição acumulada, e também no gráfico da função densidade de probabilidade, onde ela corresponde à área colorida em vermelho.

par(mfrow=c(1,2))
# grafico 1
curve(pnorm(x, 300, 20), from=200, to=400, ylim=c(0,1), xlab="x", ylab=expression(P(X <= x)),col= 1, lwd = 3,yaxs="i", main=c(paste("Distribuição Acumulada para"),paste("X ~ N(300,20)")))
lines(x=c(290,290),y=c(0, pnorm(290,300,20)),lty=2, col="darkred")
lines(y=rep(pnorm(290,300,20),2),x=c(0,290),lty=2,col="darkred") 
mtext(290,side=1, at=290, col="darkred")
mtext(round(pnorm(290,300,20),4), side=2, at=pnorm(290,300,20), col="darkred" )
# gráfico 2
curve(dnorm(x, 300, 20), xlim=c(200,400), ylim=c(0,dnorm(300,300,20)*1.1), xlab="x", ylab = "Densidade de Probabilidade" ,col= 1, lwd = 3,yaxs="i", main =c(paste("Função Densidade de Probabilidade"),paste("de X ~ N(300,20)"))) 
mtext(290,side=1, at=290, col="darkred")
x=c(0,seq(200,290,0.01),290)
y=c(0,dnorm(seq(200,290,0.01),300,20),0)
polygon(x=x,y=y,col="darkred")
legend("topright",legend=expression(P(X <= 290)),  fill="darkred")

b) Para um ponto de venda selecionado ao acaso, qual a probabilidade do preço do produto ser superior a R$325,00?

\(P(X > 325)\) pode ser obtida como o complemetar da probabilidade \(P(X \leq 325)\), ou fazendo o argumento lower.tail da função pnormigual a FALSE:

pnorm(325,mean=300,sd=20,lower.tail=FALSE)
## [1] 0.1056498

c) Qual a probabilidade do preço do produto praticado por um ponto de venda escolhido ao acaso estar entre R$290,00 e R$325,00?

Essa probabilidade, obtida como a diferença entre as probabilidades acumuladas \(P(X \leq 325)\) e \(P(X \leq 290)\), é calculada fazendo:

pnorm(325,mean=300,sd=20)-pnorm(290,mean=300,sd=20)
## [1] 0.5858127

Esse código pode ser escrito usando a função diff, que calcula a diferença \(x[i+1] - x[i]\) entre 2 elementos consecutivos de um vetor x, como:

diff(pnorm(c(290,325),mean=300,sd=20))
## [1] 0.5858127

O cálculo da probabilidade \(P(290 \leq X \leq 325)\) é ilustrado na figura seguinte:

par(mfrow=c(1,3))
curve(dnorm(x, 300, 20), xlim=c(200,400), ylim=c(0,dnorm(300,300,20)*1.1), xlab="x", ylab = "Densidade de Probabilidade" ,col= 1, lwd = 3,yaxs="i", main=expression(P(paste(290 <=X ) <= 325))) 
x=c(290,290,seq(290,325,0.01),325)
y=c(0,dnorm(290,300,20),dnorm(x=seq(290,325,0.01),300,20),0)
polygon(x=x,y=y,col="darkred")
# grafico 2
curve(dnorm(x, 300, 20), xlim=c(200,400), ylim=c(0,dnorm(300,300,20)*1.1), xlab="x", ylab = "Densidade de Probabilidade" ,col= 1, lwd = 3,yaxs="i", main=expression(P(X <= 325))) 
x=c(200,seq(200,325,0.01),325)
y=c(0,dnorm(seq(200,325,0.01),300,20),0)
polygon(x=x,y=y,col="darkred")
# grafico 3
curve(dnorm(x, 300, 20), xlim=c(200,400), ylim=c(0,dnorm(300,300,20)*1.1), xlab="x", ylab = "Densidade de Probabilidade" ,col= 1, lwd = 3,yaxs="i", main=expression(P(X <= 290))) 
x=c(200,seq(200,290,0.01),290)
y=c(0,dnorm(seq(200,290,0.01),300,20),0)
polygon(x=x,y=y,col="darkred")

d) Qual o valor do preço do produto que deixa 95% dos preços praticados nos pontos de venda abaixo dele?

Para encontrar o valor de x tal que \(P(X \leq x) = 0,95\), isto é o quantil de ordem 0,95 da distribuição \(N(300,20)\), usamos a função qnorm:

qnorm(0.95,mean=300,sd=20)
## [1] 332.8971

f) Obtenha os decis da distribuição dos preços do produto.

Para isto fazemos a ordem do quantil p igual ao vetor formado pela sequência com as ordens dos decis.

qnorm(p=seq(0.1,0.9,0.1),mean=300,sd=20)
## [1] 274.3690 283.1676 289.5120 294.9331 300.0000 305.0669 310.4880 316.8324
## [9] 325.6310

Uma vez que já sabemos como usar o R para calcular probabilidades e quantis para uma distribuição \(N(\mu,\sigma)\) através das funções pnorm e qnorm, vamos considerar agora a função rnorm. Especificado o tamanho da amostra, n, e os parâmetros da distribuição, essa função retorna os valores para uma amostra obtida por simulação.

Vamos utilizar esta função para ilustrar um resultado muito importante sobre o modelo Normal: Se uma variável aleatória X tem distribuição \(N(\mu,\sigma)\), então, a variável \(Z = \frac{X - \mu}{\sigma}\), que mede a distância, em desvios padrão, de X ao seu valor esperado, possui distribuição \(N(0,1)\), a distribuição Normal Padrão.

Inicialmente vamos gerar uma amostra de 10000 observações de uma distribuição \(N(300,20)\) e guardar esses valores num vetor denotado por x. Para cada valor deste vetor, vamos calcular a quantidade \(z = \frac{x - 300}{20}\).

rm(.Random.seed)
x = rnorm(10000,mean=300,sd=20)
z = (x-300)/20

Na figura seguinte apresentamos os histogramas construídos para x e z.

par(mfrow=c(2,1))
hist(x,xlab="x",ylab="Densidade de frequência",main ="Histograma de x",freq=FALSE)
hist(z,xlab="z",ylab="Densidade de frequência",main ="Histograma de z",freq=FALSE)

Observe, na figura acima, que a forma dos 2 gráficos é exatamente a mesma. As distribuições de X e Z diferem-se com relação aos seus valores médios e desvios padrão, cujos valores obtidos por simulaçao são muito próximos dos valores teóricos: \(\mu_{x}=300, \sigma_{x}=20, \mu_{z}=0,\sigma_{z}=0.\)

medias = round(c(mean(x), mean(z)),2)
dp = round(c(sd(x),sd(z)),2)
medias
## [1] 300.15   0.01
dp
## [1] 20.28  1.01

O resultado que acabamos de ilustrar nos permite calcular probabilidades e quantis para qualquer variável aleatória \(N(\mu, \sigma)\) em função da distribuição Normal padrão. Temos que:

\[P(X \leq x)=P\biggl(Z \leq \frac{x-\mu}{\sigma}\biggr)\]

\[Q^{N(\mu,\sigma)}_{1-\alpha}=\mu + Q^{N(0,1)}_{1-\alpha} \times \sigma\].

onde \(Q^{N(\mu,\sigma)}_{1-\alpha}\) é o quantil de ordem \(1-\alpha\) da distribuição \(N(\mu,\sigma)\).

Vamos verificar estes resultados para um exemplo, calculando \(P(X \leq 320)\) e o quantil 0,90 para a distribuição \(N(300,20)\).

# usando as funções pnorm e qnorm para N(300,20)

pnorm(320,300,20)
## [1] 0.8413447
qnorm(0.9,300,20)
## [1] 325.631
# em função dos valores de pnorm e qnorm obtidos para N(0,1)

pnorm((320-300)/20,mean=0, sd=1)
## [1] 0.8413447
Q95= 300 + qnorm(0.9,mean=0,sd=1)*20
Q95
## [1] 325.631

Nas funções dnorm, pnorm, qnorm e rnorm, quando os valores dos parêmetros \(\mu\) e \(\sigma\) não são especificados, eles são assumidos iguais a \(0\) e \(1\), respectivamente.


1.4 Outros Modelos de Probabilidade

Como dito anteriormente, o R possui, para outras distribuições de probabilidade, funções análogas àquelas vistas para os modelos Binomial, Poisson e Normal. Ao utilizar estas funções é importante ficar atento à parametrização usada pelo R, pois para algumas distribuições de probabilidade existem mais de uma parametrização possível.

Nos tópicos seguintes, indicamos para os principais modelos de probabilidades discretos e contínuos univariados, a parametrização usada pelo R e os nomes das funções destinadas ao cálculo de probabilidades, quantis e para geração de valores aleatórios.

1.4.1 5.4.1 Modelos Discretos

1) Distribuição Geométrica:

X - número de falhas até que ocorra o primeiro sucesso para uma sequência de ensaios independentes de Bernoulli com probabilidade de sucesso igual a p

\[P(X = x) = p (1-p)^x \quad x = 0,1,... \quad e \quad 0 < p \leq 1\]

\[E(X) = \frac{1-p}{p},\quad VAR(X) = \frac{1-p}{p^2}\]

No R:

Parâmetro: p = prob

Funções: dgeom, pgeom, qgeom, rgeom



2) Distribuição Binomial Negativa:

X - número de falhas até que ocorram r sucessos numa sequência de ensaios independentes de Bernoulli com probabilidade de sucesso igual a p

\[P(X=x) = \binom{x+r-1}{r-1} p^r (1-p)^x \quad x = 0,1,..., \quad 0 < p \leq 1 \quad e \quad r >0\]

\[E(X) = n\biggl(\frac{1-p}{p}\biggr),\quad VAR(X) = n\biggl(\frac{1-p}{p^2}\biggr)\]

No R:

Parâmetros: n = size e p = prob

Funções: dnbinom, pnbinom, qnbinom, rnbinom


3) Distribuição Hipergeométrica:

X - número de objetos do tipo 1 numa amostra de tamanho k, obtida sem reposição, de uma população de N objetos, onde m objetos são do tipo 1 e n objetos são do tipo 2.

\[P(X = x) = \frac{{{m}\choose{x}} {{n}\choose{k-x}}}{{{N}\choose{k}}},\quad x = max(0,k-n),..., min(n,x)\]

\[E(X) = k\biggl(\frac{n}{N}\biggr), \quad VAR(X) = k\biggl(\frac{n}{N}\biggr)\biggl(\frac{m}{N}\biggr)\biggl(\frac{N-k}{N-1}\biggr)\]

No R

Parâmetros: k = k, n = n, m = m

Funções: dhyper, phyper, qhyper,rhyper

1.4.2 5.4.2 Modelos Contínuos

 

1) Distribuição Uniforme Contínua:

\[f(x) = \frac{1}{(b-a)}, \quad a ≤ x ≤ b, -\infty < a < b < \infty\]

\[E(X) = \frac{b-a}{2}, \quad VAR(X) = \frac{(b-a)^{2}}{12}\]

NO R:

Parâmetros: a = min, b = max

Funções: dunif,punif, qunif, runif

Quando não especificados, a e b são assumidos iguais a 0 e 1, respectivamente (distribuição uniforme padrão).

2) Distribuição Exponencial:

\[f(x) = λ {e}^{- λ x},\quad para \quad x ≥ 0, \lambda > 0 \]

\[E(X)=\frac{1}{\lambda}, \quad VAR(X) = \frac{1}{\lambda^2}\]

NO R:

Parâmetros: \(\lambda = rate\)

Funções: dexp, pexp, qexp, rexp

Quando não especificado, valor 1 é assumido para rate.



3) Distribuição Qui-Quadrado com \(v\) graus de liberdade:

\[f(x) = \frac{1}{2^{\frac{v}{2}} \Gamma(\frac{v}{2})} x^{\frac{v}{2-1}} e^{-x/2}, \quad x > 0,v \geq 0\]

\[E(X) = v, \quad VAR(X) = 2v\]

NO R:

Parâmetros: v = df (graus de liberdade)

Funções: dchisq, pchisq, qchisq, rchisq


4) Distribuição T de Student com \(v\) graus de liberdade:

\[f(x) =\frac{1}{\sqrt{vπ}} \frac{\Gamma\biggl(\frac{v+1}{2}\biggr)}{\Gamma\biggl(\frac{v}{2}\biggr)} \biggl(1 + \frac{x^2}{v}\biggr)^{-\frac{v+1}{2}},\ -\infty < x < \infty, \quad v >1 \]

\[E(X) = 0, \quad VAR(X) = \frac{v}{v-2} \quad para \quad v > 2\]

NO R:

Parâmetros: ν = df (chamado de graus de liberdade)

Funções: dt, pt, qt, rt



5) Distribuição Gama:

\[f(x)= \frac{1}{\beta^\alpha \Gamma(\alpha)} x^{\alpha-1} e^{-\frac{x}{\beta}}, \quad se\quad x > 0, \quad \alpha > 0,\quad \beta > 0\]

\[E(X) = \alpha\beta, \quad VAR(X) = \alpha\beta^{2}\]

NO R:

Parâmetros: \(\alpha = a,\quad \beta = s\)

Quando α = 1, X tem distribuição Exponencial com parãmetro \(\lambda = \frac{1}{\beta}\).

Quando \(\alpha = n/2\), n inteiro, e \(\beta = 1/2\), X tem distribuição Qui-quadrado com n graus de liberdade.

Funções: dgamma, pgamma, qgmma, rgamma



6) Distribuição Weibull:

\[f(x) = \biggl(\frac{\alpha}{\beta}\biggr) \biggl(\frac{x}{\beta}\biggr)^{(\alpha-1)} exp\biggl(-\biggl(\frac{x}{\beta}\biggr)^\alpha \biggr), \ \ se \ \ x ≥ 0, \quad \beta >0, \alpha > 0\]

\[E(X) = b\ \Gamma\biggl(1+\frac{1}{a}\biggr), \quad VAR(X) = b^2 \biggl(\Gamma\biggl(1+\frac{2}{a}\biggr)-\biggr(\Gamma\biggl(1+\frac{1}{a}\biggr)\biggr)^2\biggr)\]

No R

Parâmetros: \(\alpha = a,\quad \beta = b\)

Quando \(\alpha = 1\), X tem distribuição Exponencial com parâmetro \(\lambda = \frac{1}{\beta}\)

Funções: dweibull, pweibull, qweibull, rweibull



7) Distribuição Lognormal:

\[f(x) = \frac{1}{\sqrt{2π} \ σx} \exp{-\biggl(\frac{(\ln{x} - μ)^2}{2σ^2}\biggr)}\]

\[E(X) = exp\biggl(μ + 1/2 σ^2\biggr), \quad VAR(X) = exp\biggl(2μ + σ^2\biggr)\biggl(exp(σ^2) - 1\biggr), x > 0, \quad \mu > 0, \sigma > 0\]

No R:

Parâmetros: \(\mu = meanlog, \quad \sigma = sdlog\) (média e desvio padrão de ln(X))

Se X tem distribuição Lognormal com parãmetros \(\mu\) e \(\sigma\), então ln(X) tem distribuição Normal com média \(\mu\) e \(\sigma\).

Funções: dlnorm, plnorm, qlnorm, rlnorm


* Aplicativo Shiny

Para algumas das distribuições de probabilidade apresentadas, o aplicativo Shinny disponivel no link https://pmg-dest-ufmg-exatas.shinyapps.io/Shiny_Prob/ facilita a visualização das mesmas e também para o cálculo de probabildades e quantis.