9 Transformação e Misturas
Utilizar variáveis aleatórias que já sabemos simular para gerar valores de outra variável aleatória com uma distribuição de probabilidade específica.
9.1 Transformação de V.A.
- Queremos simular valores da variável aleatória \(X\)
- Sabemos simular valores da variável aleatória \(Y\)
- Ideia: Se existe uma função \(g : \mathbb{R} \to \mathbb{R}\) tal que \(X = g(Y)\), então para simular um valor de \(X\) basta fazer:
- Simular \(Y\)
- Fazer \(X = g(Y)\)
9.1.1 Exemplo 1: Transformação para Distribuição de Weibull
Seja \(X\) uma variável aleatória com distribuição de Weibull com parâmetro de forma \(k > 0\) e parâmetro de escala \(\lambda > 0\) dada por
\[ f_X(x) = \frac{k}{\lambda^k} x^{k-1} e^{-(x/\lambda)^k}, \quad x > 0. \]
Queremos simular valores dessa distribuição. Para isso, utilizaremos o seguinte resultado: se \(Y \sim \text{Exp}(1/\lambda^k)\), então \(X = Y^{1/k} \sim \text{Weibull}(\lambda, k)\).
De fato, temos que
\[ f_Y(y) = \frac{1}{\lambda^k} e^{-y/\lambda^k}, \quad y > 0. \]
Para \(x > 0\),
\[ P(X \leq x) = P(Y^{1/k} \leq x) = P(Y \leq x^k) = F_Y(x^k) \]
e
\[ f_X(x) = \frac{dF_Y(x^k)}{dx} = kx^{k-1} f_Y(x^k) \]
\[ = kx^{k-1} \frac{1}{\lambda^k} e^{-x^k/\lambda^k} \]
\[ = \frac{k}{\lambda^k} x^{k-1} e^{-(x/\lambda)^k}. \]
Pseudo-Algoritmo para Transformação de Weibull
- Gere \(U_1 \sim \text{Unif}(0, 1)\)
- Faça \(Y = -\lambda^k \log U_1\)
- Faça \(X = Y^{1/k}\)
9.2 Misturas
- Queremos simular valores da variável aleatória \(X\)
- Suponha que sabemos simular valores da variável aleatória \(Y\) e de \(X | Y\) e suponha que:
\[ f_X(x) = \int_{-\infty}^{\infty} f_{X|Y}(x|y) f_Y(y) dy \quad \text{(caso contínuo)} \] \[ f_X(x) = \sum_y p_{X|Y}(x|y) p_Y(y) \quad \text{(caso discreto)} \]
- Dizemos que \(f_X\) é uma distribuição de mistura
Ideia: Para simular um valor de \(X\), fazemos: 1. Simular \(y\) de \(f_Y\) 2. Simular \(X\) de \(f_{X|Y=y}\)
9.2.1 Exemplo 2: de Misturas para t-student
Seja \(X \sim t_k\). Queremos simular um valor de \(X\).
Podemos escrever a densidade de \(X\) fazendo \(X | Y = y \sim N(0, k/y)\) e \(Y \sim \chi^2_k\). Vamos verificar essa afirmação. Temos que
\[ f_{X|Y=y}(x|y) = \frac{1}{\sqrt{k/y} \sqrt{2\pi}} e^{-\frac{y}{2k} x^2} \]
e
\[ f_Y(y) = \frac{1}{2^{k/2} \Gamma(k/2)} y^{k/2 - 1} e^{-y/2}. \]
Logo,
\[ f_X(x) = \int_{-\infty}^{\infty} f_{X|Y}(x|y) f_Y(y) dy \]
\[ = \int_{-\infty}^{\infty} \frac{1}{\sqrt{k/y} \sqrt{2\pi}} e^{-\frac{y}{2k} x^2} \frac{1}{2^{k/2} \Gamma(k/2)} y^{k/2 - 1} e^{-y/2} dy \]
\[ = \frac{1}{\sqrt{k} \sqrt{2\pi}} \frac{1}{2^{k/2} \Gamma(k/2)} \int_{-\infty}^{\infty} y^{k/2 + 1/2 - 1} e^{-y(x^2/2k + 1/2)} dy \]
\[ = \frac{1}{\sqrt{k} \sqrt{2\pi}} \frac{1}{2^{k/2} \Gamma(k/2)} \frac{\Gamma(k/2 + 1/2)}{(x^2/2k + 1/2)^{(k+1)/2}} \]
\[ = \frac{\Gamma(k/2 + 1/2)}{\Gamma(k/2)} \frac{1}{\sqrt{k \pi}} \frac{1}{(x^2/k + 1)^{(k+1)/2}}. \]
Então, \(X \sim t_k\).
Pseudo-Algoritmo para Misturas:
- Gere \(y\) de \(\chi^2_k\)
- Gere \(X\) da \(N(0, k/y)\)
9.3 Exercícios
- Simular uma amostra de tamanho 1000 de Weibull usando o pseudo-algoritmo do Exemplo 1.
- Compare os valores simulados com a densidade da Weibull usando uma amostra gerada pelo Python ou R.
- Simular uma amostra de tamanho 1000 de um t-student usando o pseudo-algoritmo do Exemplo 2.
- Compare os valores simulados com a densidade da t-Student usando uma amostra gerada pelo Python ou R.