Prévia do material em texto
“Testando” a lei dos grandes números: simulando cálculo de
probabilidades através do Stata
53) A lança uma moeda n+1 vezes e B lança a mesma moeda n vezes. Qual é
a probabilidade de A obter mais caras que B?
Solução:
Seja XA o número de caras obtido por A em n+1 lançamentos da moeda e seja
seja XB o número de caras obtido por B em n lançamentos da mesma moeda.
Pergunta-se: P(XA > XB).
1 1
1 1 1 ( 1)! 1
( )
2 2 ( 1 )! ! 2
A AX n X n
A
A A A
n n
P X
X n X X
1 1 ! 1
( )
2 2 ( )! ! 2
B BX n X n
B
B B B
n n
P X
X n X X
Temos uma matriz constituída por (n+1) linhas correspondentes aos
lançamentos de A e n colunas correspondentes aos n lançamentos de B.
1,1 1,2 1,
2,1 2,2 2,
,1 ,
1,1 1,
... ...
... ...
... ... ... ... ...
... ... ... ... ...
... ... ...
... ... ...
n
n
n n n
n n n
x x x
x x x
x x
x x
O valor do primeiro subscrito dos elementos desta matriz corresponde ao
número de caras de A e o valor do segundo subscrito dos elementos desta
matriz corresponde ao número de caras de B. As combinações em que A faz
maior número de caras do que B correspondem a região da matriz que está
abaixo da diagonal que vai de x1,1 a xn,n.
11 1
2 1
( 1)! 1 ! 1
( 1 )! ! 2 ( )! ! 2
n nn i
i j
n n
n i i n j j
2 11 1
2 1
( 1)! ! 1
( 1 )! !( )! ! 2
nn i
i j
n n
n i i n j j
2 1 1 1
2 1
1 1
( 1)! !
2 ( 1 )! !( )! !
n n i
i j
n n
n i i n j j
1 1 1
...
( 1)!2!( 1)!1! ( 2)!3!( 1)!1! ( 2)!3!( 2)!2!n n n n n n
1 1 1
...
(0)!( 1)!( 1)!1! (0)!( 1)!( 2)!2! (0)!( 1)!0! !n n n n n n
Fiz uma simulação deste somatório para n = 2 até 30 através de uma rotina no
Stata conforme abaixo e cheguei aos resultados listados depois do programa.
Os resultados do cálculo da probabilidade convergem rapidamente para 0,5.
Mas esta é uma solução por “simulação”. Se alguém conseguir uma solução
analítica para o desenvolvimento do somatória acima, favor enviar.
forvalues n = 2(1)30 {
scalar soma = 0
forvalues i=2(1)`n' {
local k = `i' - 1
forvalues j=1(1)`k' {
scalar fator = (exp(lnfactorial(`n'+1-`i'))*exp(lnfactorial(`i'))*exp(lnfactorial(`n'-
`j'))*exp(lnfactorial(`j')))^(-1)
scalar soma = soma + fator
}
}
disp "n = ", `n', " probabilidade = ", soma*.5^(2*`n' +
1)*exp(lnfactorial(`n'+1))*exp(lnfactorial(`n'))
}
n = 2 probabilidade = .1875
n = 3 probabilidade = .328125
n = 4 probabilidade = .41015625
n = 5 probabilidade = .45410156
n = 6 probabilidade = .47680664
n = 7 probabilidade = .48834229
n = 8 probabilidade = .49415588
n = 9 probabilidade = .49707413
n = 10 probabilidade = .49853611
n = 11 probabilidade = .49926782
n = 12 probabilidade = .49963385
n = 13 probabilidade = .49981691
n = 14 probabilidade = .49990845
n = 15 probabilidade = .49995422
n = 16 probabilidade = .49997711
n = 17 probabilidade = .49998856
n = 18 probabilidade = .49999428
n = 19 probabilidade = .49999714
n = 20 probabilidade = .49999857
n = 21 probabilidade = .49999928
n = 22 probabilidade = .49999964
n = 23 probabilidade = .49999982
n = 24 probabilidade = .49999991
n = 25 probabilidade = .49999996
n = 26 probabilidade = .49999998
n = 27 probabilidade = .49999999
n = 28 probabilidade = .49999999
n = 29 probabilidade = .5
n = 30 probabilidade = .5
70) Motores de avião funcionam independentemente e cada motor tem uma
probabilidade p de falhar durante o vôo. Um avião voa com segurança se a
maioria de seus motores funciona. Para que valores de p um avião com 3
motores é preferível a um avião com 5 motores?
Solução: para um avião de três motores a probabilidade de voar é:
2 3 2 3 3 3 2 3
3 3 3! 3!
3 (1 ) (1 ) (1 )
2 3 2!1! 3!0!
P p p p p p p p
2 3 2 33 (1 ) 3 2p p p p p
Para o avião de 5 motores:
4 5 4 5 5 5 4 5 4 5
5 5
5 (1 ) (1 ) 5 (1 ) 5 4
4 5
P p p p p p p p p p
Então o avião de 3 motores é preferível ao avião de cinco motores quando é
satisfeita a seguinte inequação:
2 3 4 53 2 5 4p p p p
5 4 3 24 5 2 3 0p p p p
2 3 2(4 5 2 3) 0p p p p
Desenvolvi a seguinte rotina no Stata para estudar o sinal deste polinômio.
Esta rotina resulta na construção do gráfico a seguir. Pelo gráfico verifica-se
que o valor do polinômio é sempre positivo para 0 < p < 1. Portanto o trimotor
é sempre preferível ao avião de 5 motores.
clear
set more off
set matsize 2000
matrix A = J(1000,2,0)
local j = 0
forvalues i = 0(.001)1 {
local j = `j' + 1
scalar t = 4*`i'^5 - 5*`i'^4 - 2*`i'^3 + 3*`i'^2
matrix A[`j',1] = `i'
matrix A[`j',2] = t
disp t
}
svmat A, names(A)
rename A2 y
rename A1 p
twoway (line y p), ytitle(f(p))
0
.1
.2
.3
f(p
)
0 .2 .4 .6 .8 1
p
58) Quantas vezes, no mínimo, se deve lançar um dado não tendencioso para
que a probabilidade de obter algum 6 seja superior a 0,9?
Solução:
Seja n o número de lançamentos do dado. A probabilidade de se obter no
mínimo um 6 em n lançamentos é dado por:
0 0
n 1 1
P(no minimo um 6) = 1 - P(nenhum 6) = 1 - 1
0 6 6
n
! 5 5
1 1 0.9
( 0)!0! 6 6
n n
n
n
5
0.1
6
n
5
nlog log0.1
6
log0.1
n>
5
log
6
n> 12.63
Para n = 12 125
1- 0.888
6
Para n = 13 135
1- 0.906
6
7) Uma loteria tem N números e só um prêmio. Um jogador compra n bilhetes
em uma extração. Outro compra só um bilhete em n extrações diferentes. (
ambos os jogadores apostam portanto a mesma importância). Qual deles tem
maior probabilidade de ganhar o prêmio?
Solução: O primeiro jogador tem probabilidade de ganhar o premio igual:
1 2
1 ( 0) 1 ... 1
1 1
N N N n N n
P X
N N N n N
1 1
n n
N N
O segundo jogador tem probabilidade igual a:
0 0
1 1 1
1 ( 0) 1 1 1 1
0
n n
n
P X
N N N
Para demonstrar que o segundo jogador tem maior probabilidade de ganhar o
premio, temos que demonstrar que 1
1 1
n
n
N N
para qualquer n e N, n
< N.
1
1 1
n
n
N N
1
1
n
N n
N N
1
n
N n N
N N
Esta expressão é falsa, pois quando N é grande 1
1
n
N
N
e
1
N n
N
Portanto o primeiro jogador terá maior probabilidade de ganhar o premio.
39) Uma moeda é jogada 6 vezes. Sabendo-se que no primeiro lançamento
deu coroa,calcular a probabilidade condicional de que o número de caras nos 6
lançamentos supere o número de coroas.
Solução: Em cinco lançamentos restantes, como já temos uma coroa, o
número de caras deve superar o numero de coroas + 1. Temos então de
calcular P(X>= 3) onde X é o número de caras em 5 lançamentos.
3 2 4 1 5 0
5 5 51 1 1 1 1 1
3 4 52 2 2 2 2 2
10 5 1 16
0,5
32 32 32 32
Simulei 100000 vezes 5 lançamentos de uma mesma moeda através do
seguinte programa Stata e a proporção de resultados com 3 ou mais caras foi
igual a 0,49648.
* Simulando 5 lançamentos de uma moeda
cap prog drop moeda
prog def moeda
local contador = 0
forvalues i = 1(1)5 {
scalar z = runiform()
if z <= .5 {
scalar moeda = 0
}
else {
scalar moeda = 1
local contador = `contador' + 1
}
}
if `contador' >= 3 {
scalar x = 1
}
else {
scalar x = 0
}
end
simulate y=x , reps(100000) nodots: moeda
summa y
30) João e Pedro lançam, cada um, um dado não-tendencioso. Qual é a
probabilidade do resultado de João ser maior ou igual ao resultado de Pedro?
Solução: Supoe-se que os resultados de João e Pedro são independentes.A
probabilidade dp resultado de João ser maior do que o resultado de Pedro
corresponde a um subconjunto do espaço amostral, que se constitui de 36
eventos subtraindo-se os eventos em que Pedro ganha e teremos (36-6)/2 = 15
eventos em que João ganha, cada um com probabilidade 1/36 e portanto a
probabilidade de João ganhar é igual a 15/36.
27) Colocam-se ao acaso n botões em um tabuleiro n x n, não sendo permitido
haver dois botões em uma mesma casa. Qual é a probabilidade de não haver
dois botões nem na mesma linha nem na mesma coluna?
Solução: Existem n2 possibilidades de se colocar o primeiro dos n botões no
tabuleiro. Para cada uma destas n2 possibilidades temos (n2-1) possibilidades
de colocarmos o segundo dos n botões e assim por diante – quando chegamos
ao penúltimo botão só nos resta uma possibilidade restante de colocarmos o
nosso n-esimo botão. Então o numero de eventos distintos em que não
ocorrem dois botões na mesma casa é:
2
2 2 2 2
2
!
( 1) ( 2) ...( 2) 1
( 1)!
n
n n n n n
n n
Este é o tamanho de nosso espaço amostral. O número de eventos favoráveis
é igual a n!. Por exemplo, se n = 3 temos os seguintes eventos favoráveis:
b x x
x b x
x x b
ou b x x
x x b
x b x
ou x b x
b x x
x x b
ou x x b
b x x
x b x
ou x b x
x x b
b x x
ou x x b
x b x
b x x
O número de resultados (eventos) distintos do espaço amostral é igual a nn .
Portanto a probabilidade será igual a:
2
2 2
2
! !( 1)!
! !
( 1)!
n n n n
n n
n n
Por exemplo, para n = 3 temos:
2
2 2
2
! !( 1)! 3!(9 3 1)! 3!7! 3
! ! 9! 9! 4
( 1)!
n n n n
n n
n n
Vamos simular este experimento através da seguinte rotina Stata:
* Simulando o preenchimento com botões em um tabuleiro
* com n x n posições
cap prog drop tabuleiro
prog def tabuleiro
local n = 5
matrix X = J(`n',`n',0)
local i = 1
while `i' <= `n' {
local k = int(1+(`n')*runiform())
local l = int(1+(`n')*runiform())
scalar x = X[`k',`l']
if x == 1 {
}
else {
matrix X[`k',`l'] = 1
local i = `i' + 1
}
}
matrix list X
matrix lin = J(1,`n'+1,0)
matrix col = J(`n',1,0)
matrix X = X,col
matrix X = X\lin
forvalues i = 1(1)`n' {
forvalues j = 1(1)`n' {
matrix X[`i',`n'+1] = X[`i',`n'+1] + X[`i',`j']
matrix X[`n'+1,`j'] = X[`n'+1,`j'] + X[`i',`j']
}
}
scalar x = 0
forvalues i = 1(1)`n' {
forvalues j = 1(1)`n' {
if X[`n'+1,`j'] > 1 {
scalar x = 1
continue, break
}
}
if X[`i',`n'+1] > 1 {
scalar x = 1
continue, break
}
}
scalar x = 1 - x
end
simulate y=x , reps(10000) nodots: tabuleiro
summa y
qui local n = 5
disp exp(lnfactorial(`n'))*exp(lnfactorial(`n'^2-`n'+1))/exp(lnfactorial(`n'^2))