Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Como posso extrair amostras de distribuições univariadas conhecidas a partir de uma amostra uniformemente distribuída entre 0 e 1?

0 votos
24 visitas
perguntada Set 28 em Programação Computacional por Gustavo Libório (1 ponto)  

Essa pergunta corresponde ao exercício (2.5) de Monte Carlo Statistical Methods, de Robert e Casella, presente na seção de exercícios do capítulo 2.

Usaremos as seguintes distribuições:

(a) Exponencial

(b) Biexponencial ou de Laplace

(c) Weibull

(d) Pareto

(e) Cauchy

(f) Valor extremo

(g) Arco seno

Compartilhe

1 Resposta

0 votos
respondida Set 28 por Gustavo Libório (1 ponto)  
selecionada Set 29 por Gustavo Libório
 
Melhor resposta

Podemos resolver o problema de obter amostras de distribuições univariadas a partir de uma variável aleatória uniformemente distribuída entre \(0\) e \(1\) usando um resultado que consta no capítulo 2 do livro citado na pergunta. resultado este que utiliza a uma função inversa generalizada.

Seja \(F(x)\) uma função não-decrescente. A partir dela, definimos função inversa generalizada como \(F^-(u)\) tal que:

\[F^-(u) = \inf \{ x: F(x) \geq u \} \]

A partir dessa definição, os autores propõem que:

Seja \(U\) uma variável com distribuição uniforme em \( [0,1]\) e F uma função de distribuição acumulada. A variável aleatória definida por \(F^-(U)\) tem por distribuição \(F(x)\).

Aplicar esse resultado consiste essencialmente em calcular \(F^-\) para a distribuição acumulada de qual se deseja amostrar. Com a função inversa em mãos, o procedimento pode ser sumarizado da seguinte maneira:

  1. Obter \(n\) amostras de uma uniforme em \([0,1]\)
  2. Para cada valor \(x_i\) amostrado calcular \(F^-(x_i)\)
  3. Os valores \((F^-(x_i))_1^n\) seguirão a distribuição desejada

Abaixo dos cálculos faremos a simulação de Monte Carlo para ilustrar o resultado. Para a exponencial teremos:

(a) Exponencial

A distribuição exponencial é descrita por \(P(X \leq x)=F(x)=1-e^{-\lambda x}\). Assim, vale que

\[ F^-(u)=\inf \{x: 1-e^{-\lambda x} \geq u\} \]

Como a função é contínua e crescente, fica claro que o ínfimo se dará com \(1-e^{-\lambda x} = u\), de modo que

\[1-e^{-\lambda F^-(u)} = u \Rightarrow\]
\[F^-(u) = \frac{-\ln{(1-u)}}{\lambda} \]

A imagem será apresentada aqui.

A imagem acima foi gerada extraindo uma amostra de tamanho 10000 de uniforme com o pacote Numpy e aplicando \(F^-\) sobre os valores observados, com \(\lambda=1.5\). A linha vermelha corresponde à distribuição teórica.

A lógica se repete. De forma sucinta, teremos para as demais distribuições:

(b) Biexponencial ou Laplace

Essa distribuição é descrita por:
\[ F(x,\mu,b)= \begin{cases} \frac{\exp{\frac{x-\mu}{b}}}{2} \textbf{ se } x \leq \mu,\\ 1 - \frac{\exp{\frac{-x+\mu}{b}}}{2} \textbf{ c. c. } \end{cases} \]

com b e \(\mu\) parâmetros. Calculando a inversa generalizada vemos que:

\[ F^-(x,\mu,b)= \begin{cases} \ln{(2u)b+\mu}, u \leq 1/2\\ \ln{(2-2u)b - \mu} \textbf{ c. c. } \end{cases} \]

Após a simulação obtemos:

A imagem será apresentada aqui.

onde os parâmetros são \(\mu=0\) e \(b=1\)

(c) Weibull

\[ F(x,\lambda,k)= \begin{cases} 1 - \exp{-(\frac{x}{\lambda})^k} \textbf{ se } x \geq 0,\\ 0, \textbf{ c. c. } \end{cases} \]

donde teremos

\[F^-(u) = (-\lambda \ln{(1-u)})^\frac{1}{k} \]

A imagem será apresentada aqui.

com parâmetros \(\lambda=1\) e \(k=2\).

(d) Pareto

\[ F(x,x_m,\alpha)=1-(\frac{x_m}{x})^\alpha \]

de forma que

\[F^-(u,x_m,\alpha)=\frac{x_m}{(1-u)^{\frac{1}{\alpha}}}\]

A imagem será apresentada aqui.

A imagem acima foi gerada com parâmetros \(x_m=1\) e \(\alpha=10\)

(e) Cauchy

\[ F(x,x_m,\gamma)=\frac{1}{\pi} \arctan{\frac{x-x_m}{\gamma}}+\frac{1}{2} \]

de forma que

\[F^-(u,x_m,\alpha)=x_m+\gamma \tan{(\pi (u-\frac{1}{2}))}\]

A imagem será apresentada aqui.

Foram usados parâmetros \(x_m=0\) e \(\gamma=.5\).

(f) Valor extremo

\[ f(x,m,\sigma)=\left(\frac{1}{\sigma} \right)\left(\exp(\frac{-(x - m)}{\sigma}) \right)\left(\exp(-\exp(\frac{-(x - m)}{\sigma})\right) \]

de forma que

\[F^-(u,m,\sigma)=m - \sigma \ln(-\ln(u))\]

A imagem será apresentada aqui.

Imagem gerada com parâmetros \(m=0\) e \(\sigma=.5\)

(g) Arco seno

\[ F(x)=\frac{2}{\pi} \arcsin{\sqrt{x}} \]

de forma que

\[F^-(u)=(\sin(\frac{u \pi}{2}))^2\]

A imagem será apresentada aqui.

...