aula 5 - dcc.ufrj.brsadoc/ad20142/adaula05.pdf · como gerar amostras de uma distribuição...

12
1 Aula 5 Como gerar amostras de uma distribuição qualquer a partir de sua CDF e de um gerador de números aleatórios? Processo de chegada: o Chegadas em grupo ocorrem segundo um processo Poisson com taxa . O tamanho do grupo é uma variável aleatória discreta Assuma que possa ser estimada para . o Se uma simulação se inicia no instante ZERO e queremos programar a próxima chegada do grupo, qual o tamanho do grupo neste instante? o Quando uma determinada pessoa da fila é colocada em serviço, sabendo que o serviço é dado por uma variável aleatória com conhecida (gráfica ou analiticamente), qual o serviço a ser alocado a essa pessoa? Veremos que amostra de uma variável aleatória poderá sempre ser gerada com uso de um gerador de números pseudo- aleatórios e com a inversa da função . Precisaremos, para isso, de estudar as funções de variáveis aleatórias.

Upload: hoangthien

Post on 04-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

1

Aula 5

Como gerar amostras de uma distribuição qualquer a partir de sua CDF e de um gerador de números aleatórios?

Processo de chegada:

o Chegadas em grupo ocorrem segundo um processo

Poisson com taxa . O tamanho do grupo é uma variável aleatória discreta

Assuma que possa ser estimada para .

o Se uma simulação se inicia no instante ZERO e queremos programar a próxima chegada do grupo, qual o tamanho do grupo neste instante?

o Quando uma determinada pessoa da fila é colocada em serviço, sabendo que o serviço é dado por uma variável

aleatória com conhecida (gráfica ou analiticamente), qual o serviço a ser alocado a essa pessoa?

Veremos que amostra de uma variável aleatória poderá sempre ser gerada com uso de um gerador de números pseudo-

aleatórios e com a inversa da função . Precisaremos, para isso, de estudar as funções de variáveis

aleatórias.

2

Funções de Variáveis Aleatórias

Assuma que é uma variável aleatória com e conhecidos.

Queremos obter a pdf e a CDF de , tal que , onde é uma função qualquer.

O que isso quer dizer?

Se é uma amostra de X, então é uma amostra de .

Além disso, e também .

Como obter ? Resposta: 3 passos.

(

) ( )

Observe que

[ ] ∫ ∫

[ ]

que é o Teorema Fundamental da Esperança.

⇒ Os 3 passos permitem relacionar as pdf’s de e .

Exemplos (outros existem na apostila):

a) ⇒

{ √ }

{ √ } (√ )

(√ )

(√ ) (

⁄ )

√ (√ )

I

II

III

3

b)

Lembrar que é uma função não decrescente e que tende a 1.

Então, .

(

)

Ou seja, Y é uma variável aleatória com

Distribuição Uniforme entre 0 e 1. Y é a uniforme unitária, representada por

. Sabemos que

e que

e .

No caso acima,

e

e .

Como pode ser obtido com um gerador de números aleatórios entre 0

e 1, , então, dado , .

4

Graficamente,

Como obter uma amostra de X qualquer?

Obtenha amostra da uniforme unitária U(0,1) com uso de

um gerador pseudo-aleatório [qualquer linguagem de

programação fornece uma chamada de função – RAND() ou

RANDOM() – que retorna um valor aleatório entre 0 e 1

(pseudo-aleatório, como veremos mais adiante)].

Faça a inversa, calculando , analiticamente,

graficamente ou algoritmicamente.

5

Exemplo: Amostra da exponencial

Então, dado amostra de U(0,1):

Observação:

Na prática, é também um valor aleatório, de modo que podemos

calcular a amostra de X com Distribuição Exponencial com taxa como:

economizando uma operação de subtração.

6

Exemplo: Amostra de uma geométrica

Observação:

∑ ∑

Recordando Progressão Geométrica…

7

Obtenha amostra de U(0,1) = RAND()

Para , determine inteiro, tal que

(

)

⌉ ⌈

Atenção: O valor de q varia entre 0 e 1, de forma que é negativo.

Dividir por força a inversão do sinal da inequação!

é também uma uniforme!

Retorne

8

Os procedimentos vistos se aplicam a qualquer variável aleatória, seja ela discreta, contínua ou mista.

Exemplo: Exponencial Truncada

Muito simples gerar a amostra de uma v.a. qualquer!

Fazer a inversa é a única dificuldade!

9

Exponencial truncada

Algoritmo

U = RAND();

Se U , retorna x=a;

Se U , retorna x=b;

Caso contrário, retorna x = -(ln(1-U))/ . (neste caso não pode eliminar a subtração!)

10

Interessante uso da CDF:

∫ ( )

[ ] ∫ ( )

Ver prova na página 49 da apostila, seção 13.1.

_________

1

2

1

2

11

Geração de números pseudo-aleatórios Referência: ver apostila (capítulo 16), capítulo 3 Knuth (69), etc.

Como gerar uma seqüência de números que se repetem num determinado ciclo – daí a denominação de pseudo – e que seguem uma aparente aleatoriedade?

Método Básico: Gerador Congruencial

Exemplo: c=0, b=9, Z0 = 1

O gerador depende da escolha dos parâmetros. Para m primo e escolha adequada de b produz período de (m-1). IBM /360 palavra de 32 bits, 1 bit de sinal

(maior inteiro primo)

Pacote SIMSCRIPTH II (pacote estatístico)

Trabalho dos estatísticos e não nosso!

Para no. aleatório entre 0 e 1 faz-se

, para período = m-1.

1 1 9 9 2 9 81 17 3 17 153 25 4 25 225 33 5 33 297 41 6 41 369 49 7 49 441 57 8 57 513 1

9 1 9 9

Período de oito!

Você acha que estes números parecem ser aleatórios? Sempre crescentes. Não parece.

12

Lembrar que a seqüência pseudo-aleatória é totalmente determinística. Com precisão estendida em máquinas de 32 ou 64 bits o período é enorme.

S0 semente inicial S0

repete no final do período

SRAND(S0) função para fixar a semente inicial

RAND() retorna próximo número (dependendo da linguagem pode ser no intervalo 0 e 1 ou não, sendo necessário dividir pelo módulo utilizado. Veja a definição da função geradora).

Fixar a semente serve para garantir que estamos percorrendo uma

parte determinada da seqüência pseudo-aleatória.

Se quiser percorrer seqüências distintas uso sementes bastante afastadas, que garantem independência de comportamento estatístico.

S0 S1 S0