geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · ypara...
TRANSCRIPT
Geração de variáveis aleatóriasGeração de variáveis aleatórias
ObjetivosGeração de amostras para uma distribuição em específico a Geração de amostras para uma distribuição em específico a fim de servir de entrada na simulação de um modelo.
Ilustrar algumas técnicas usadas para geração de variáveisaleatórias.
Técnica da transformação inversaTécnica da convolução
éTécnica para aceitação / rejeiçãoTécnica especial para a distribuição normal
2
Técnica da transformação inversaTécnica da transformação inversa
O itO conceito:Para a função cdf : r = F(x)
Gerar R amostras de uma distribuição uniforme [0,1]; ç [ , ];
Encontre a amostra X:
r = F(x)
X = F-1(R)r1
x1
1Pr( ) Pr( ( ) ) Pr( ( )) ( )X x F R x R F x F x−≤ = ≤ = ≤ =
3
Distribuição Exponencial [t f ã i ]Distribuição Exponencial [transformação inversa]
Distribuição Exponencial:Distribuição Exponencial:Cdf Exponencial:
P X X X R R
r = F(x) = 1 – e-λx para x ≥ 0
Para gerar X1, X2, X3 ,… gere R1, R2, R3 ,…
Xi = F-1(Ri) = -(1/λ) ln(1-Ri)
Figura: técnica da transformaçãoinversa para exp(λ = 1)
4
Distribuição Exponencial [ f ã i ]Distribuição Exponencial [transformação inversa]
Exemplo: Gerar 200 amostras X com distribuição exp(λ= 1)Exemplo: Gerar 200 amostras Xi com distribuição exp(λ= 1)
Código Matlabfor i=1:200,o : 00,
expnum(i)=-log(rand(1));
end
R e (1 – R) tem distribuição U(0 1)distribuição U(0,1)
5
Distribuição Uniforme [Transformação Inversa]
0 x a≤⎧
Distribuição Uniforme:Cdf Uniforme:
0
( )
x ax ar F x a x bb
≤⎧⎪ −⎪= = < ≤⎨( )
1b a
b x
⎨ −⎪<⎪⎩
Para gerar X1, X2, X3 ,…, gere R1, R2, R3 ,…
( )i iX a b a R= + −
6
Uniform Distribution [T f ã I ]Uniform Distribution [Transformação Inversa]
Exemplo: Gerar 500 amostras X com distribuição Uniforme (3 8)Exemplo: Gerar 500 amostras Xi com distribuição Uniforme (3,8)
Código Matlabfor i=1:500,o :500,
uninum(i)=3+5*rand(1);
end
7
Distribuição Empírica Continua [ f ã i ]Distribuição Empírica Continua [transformação inversa]
Quando uma distribuição teórica não é aplicávelQ ç p
Para adquirir dados empíricos:
Re-amostre dados observados
Interpole entre os dados observados para preencher “espaços vazios”
Para uma amostra pequena (tamanho n):
O d d d d iOrdene os dados do menor para o maior
Atribua a probabilidade 1/n para cada intervalo(n)(2)(1) x x x ≤…≤≤
(i)1)-(i xxx ≤≤p p (i)1)(i
⎠⎞
⎜⎝⎛ −
−+== −− iRaxRFX ii
)1()(ˆ)1(
1
onde
⎠⎝ nii )1(
nxx
ninxx
a iiiii /1/)1(/1
)1()()1()( −− −=
−−
−=
8
)(
Dist Contínua Empírica [t f ã I ]Dist. Contínua Empírica [transformação Inversa]
Exemplo: Suponha os dados de 100 tempos de manutenção de dispositivos:
iIntervalo (Horas) Frequencia
Frequencia Relativa
Frequência acumulada, c i inclinação , a ii ç i
1 0.25 ≤ x ≤ 0.5 31 0,31 0,31 0,812 0.5 ≤ x ≤ 1.0 10 0,10 0,41 5,03 1.0 ≤ x ≤ 1.5 25 0,25 0,66 2,04 1.5 ≤ x ≤ 2.0 34 0,34 1,00 1,47
Considere R1 = 0.83:
c3 = 0.66 < R1 < c4 = 1.00
X1 = x(4-1) + a4(R1 – c(4-1))= 1.5 + 1.47(0.83-0.66)= 1.75
9
Distribuição Discreta [transformação Inversa]
Todas as distribuições discretas podem ser geradaspela técnica da transformação inversa.
x p(x)1
F(x)
a p1b p2c p3
p1 + p2
p1 + p2 + p3
R1pp1
a b c
1
Forma Geralmin{ : ( ) }X x F x r= ≥
a c
10
Distribuição Discreta [t f ã I ]Distribuição Discreta [transformação Inversa]
Exemplo: Suponha que o número de remessas x na plataforma de Exemplo: Suponha que o número de remessas, x, na plataforma de carregamento da empresa IHW é 0, 1, ou 2
Dado – Distribuição de Probabilidades:
x p(x) F(x)0 0.50 0.501 0 30 0 80
Método - dado R, a geração de dados
1 0.30 0.802 0.20 1.00
, g ç
torna-se:
0, 0.5R ≤⎧⎪1, 0.5 0.8
2, 0.8 1.0x R
R
⎪= < ≤⎨⎪ < ≤⎩
Considere R1 = 0.73:F(xi-1) < R <= F(xi)
11
F(x0) < 0.73 <= F(x1)E aqui, x1 = 1
éTécnica da ConvoluçãoUse para X = Y + Y + +YUse para X = Y1 + Y2 + … +Yn
Exemplos de applicaçãoDistribuição de ErlangDistribuição de ErlangDistribuiçãoTriangular (“Trapezoidal”)
G t Y Y Y di i tGere amostras para Y1 , Y2 , … ,Yn e adicione essas amostraspara obter uma amostra de X.
12
Distribuição de Erlang [Convolução]ç gUma variável aleatória exponencial descreve a distância até que a primeira contagem é obtida em um processo de Poisson.
Uma variável aleatória X que segue uma distribuição de Erlang com parâmetros (k,θ) pode ser escrita como uma soma de k variáveis exponenciais aleatórias e independentes Xi=1 2 Kescrita como uma soma de k variáveis exponenciais aleatórias e independentes Xi 1,2,…,K
Cada um com média 1/ kθk
X X∑A técnica da convolução consiste em gerar X1, X2, …, Xk e então somá-las para obter X;
No caso de Erlang λ=Κ θ
1i
iX X
=
= ∑
No caso de Erlang λ=Κ θ
1 1ln lnkk
i iX R Rk k
⎛ ⎞= − = − ⎜ ⎟
⎝ ⎠∑ ∏θ θ
131 1
i ii ik k= =
⎜ ⎟⎝ ⎠
∑ ∏θ θ
Distribuição de ErlangExemplo: Gere 500 Xi com distribuição Erlang k=3 (θ = 1/2)p i ç g ( )Código Matlab
for i=1:500,
l (i) 1/6*(l ( d(1))+l ( d(1))+l ( d(1)))erlnum(i)=-1/6*(log(rand(1))+log(rand(1))+log(rand(1)));
end
14
Convolução (Folding) Integral
Considere X e Y variáveis aleatórias comh pdf’s f e g. Então, Z= X + Y produz a pdf h
( ) ( ) ( ) ( ) ( ) ( ) ( )h t f t g t f g t d g f t dτ τ τ τ τ τ∞ ∞
−∞ −∞
= ∗ ≡ − = −∫ ∫
15
Técnica da Aceitação RejeiçãoTécnica da Aceitação-RejeiçãoÚtil quando a inversa da cdf não existe de forma definidaÚ q
Passos para gerar X com a pdf f(x)Passo 0: Identificar uma função g(x) e uma pdf h(x) que satisfaça
, ( ) ( )
( )
x g x f x
d∞
∀ ≥
∫ ( )
( )( )
c g x dx
g xh xc
−∞= < ∞
=
∫Gere Y,U
não
O parâmetro de eficiência é c
Passo 1: Gerar Y com a pdf h(x)
Passo 2: Gerar U ~ Uniforme(0,1) independente de Y
cCondicional
simp
Passo 3: ( ) faça ( )
f YU X Yg Y
≤ ⇒ =
Saída X=Y
senão repetir a partir do passo 1.
16
Distribuição Triangular ã ãDistribuição Triangular [Aceitação -Rejeição]
Exemplo: Gere Y, Up :4 0 1/ 2
( ) 4 4 1/ 2 10 caso contrário
x xf x x x
≤ ≤⎧⎪= − < ≤⎨⎪⎩
não
0 caso contrário
2 0 1( ) ( ) ( )
0 caso contráriox
g x g x f x
⎪⎩
≤ ≤⎧= ⇒ ≥⎨
⎩
0.5 20.5 2 2
Y U YY U Y
≤ ∧ ≤> ∧ ≤ −
+
( ) 2 g(x)
1 0 1( )
c g x dx
xg x
∞ ∞
−∞ −∞
= = ⇒ ≤ ∞
≤ ≤⎧
∫ ∫ sim
1 0 1( )( )0 caso contrário
xg xh xc
≤ ≤⎧= = ⎨
⎩
g(x)Saída X = Y
f(x)h(x)
( ) faça ( )
f YU X Yg Y
≤ ⇒ =
17 0 1
( )senão repetir a partir do passo 1.
g
Distribuição Triangular ã ãDistribuição Triangular [Aceitação -Rejeição]
Códi M l b ( 1000 )Código Matlab: (para 1000 amostras)i=0;while i<1000,
Y=rand(1);Y=rand(1);U=rand(1);if Y<=0.5 & U<=2*Y | Y>0.5 & U<=2-2*Y
i=i+1;X(i)=Y;
endend
18
Distribuição Normal [Té i i l]Distribuição Normal [Técnica especial]
Abordagem para a normal(0,1):Considere duas curvas normais padrão com variáveis aleatórias Z1 e Z2, representadascomo pontos no plano:
Em coordenadas polares:Z1 = B cos θZ B i θ
θ ∼ Uniforme(0,2π)
Z2 = B sin θ
B2 = Z21 + Z2
2 ~ distribuição chi-square com 2 graus de liberdade. A Distribuição Chi-quadrado com k graus de liberdade é a distribuição gama com parâmetros (k/2, 1/2)). No caso (1,1/2).Uma distribuição Chi-quadrado com 2 graus de liberdade equivale a uma distribuiçãoexponencial com média dois e assim
19
1 (ln )i iX R= −λ
( ) 1ionde E X =
λ
Distribuição Normal [Técnica especial]ç
Dessa forma o raio B pode ser gerado com 2/1)ln2( RBDessa forma o raio B pode ser gerado com
O i B â l θ ã i d d
/)ln2( RB −=
O raio B e o ângulo θ são mutuamente independentes .1/ 2
1 1 2( 2 ln ) cos(2 )Z R Rπ= −
Abordagem para a normal (µ,σ2):G (0 1)
1/ 22 1 2( 2 ln ) sin(2 )Z R Rπ= −
Gere Zi ~ N(0,1)
A l l( 2)
Xi = µ + σ Zi
Aproximação para a lognormal(µ,σ2):Gere X ~ N(µ,σ2)
20Yi = eXi
Distribuição Normal [Técnica especial]Distribuição Normal [Técnica especial]
Gerar 1000 amostras de uma Normal(7,4)Código Matlab
for i=1:500,R1=rand(1);R2 d(1)R2=rand(1);Z(2*i-1)=sqrt(-2*log(R1))*cos(2*pi*R2);Z(2*i)=sqrt(-2*log(R1))*sin(2*pi*R2);
endend
for i=1:1000,Z(i)=7+2*Z(i);Z(i) 7+2 Z(i);
end
21