Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara...

21
Geração de variáveis aleatórias Geração de variáveis aleatórias

Transcript of Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara...

Page 1: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

Geração de variáveis aleatóriasGeração de variáveis aleatórias

Page 2: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 3: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 4: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 5: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 6: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 7: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 8: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

)(

Page 9: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 10: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 11: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 12: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

é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

Page 13: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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= =

⎜ ⎟⎝ ⎠

∑ ∏θ θ

Page 14: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 15: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 16: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 17: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 18: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 19: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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 =

λ

Page 20: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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

Page 21: Geração de variáveis aleatórias - chasqueweb.ufrgs.brvalner.brusamarello/aula4s.pdf · yPara uma amostra pequena (tamanho n): yOdOrdeneosdd d dados do ... Suponha que o número

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