5 votos

Probabilidad en diferentes medidas

Estoy teniendo algunos problemas en la comprensión de un problema.

El problema: "Mostrar cómo una medida de cambio puede ser utilizado para estimar la probabilidad de $Y > 100$ cuando $Y \sim \mathcal{N}(0, 1)$.

El libro que estoy utilizando no ir a través de esta parte, que bien, así que alguien podría explicar este ejemplo?

13voto

willlma Puntos 148

Para la estimación de la probabilidad de un evento con probabilidad pequeña, es posible que desee probar para estimar la probabilidad de un cambio de variable aleatoria que asigna una mayor probabilidad de masa para el evento. Así que, en su caso, es posible que desee cambiar el original de $N(0, 1)$ a $N(100, 1)$ porque para la segunda r.v. la probabilidad de que sea mayor que 100 es $\frac{1}{2}$. Así, usted está buscando un cambio de la medida en la forma:

$$ \frac{dQ}{dP} = \frac{dN(0,1)}{dN(100,1)} = exp(-100y+5000), $$

donde $P$ es la probabilidad de medida asociados con $N(0, 1)$ y $P$ es la probabilidad de medida asociados con $N(100, 1)$.

Y por lo tanto para un evento $A = \{Y > 100\}$ por el Radon-Nikodym teorema podemos obtener: $$ P(A) = E_{P}[exp(-100Y+5000)I(a)] \approx \frac{1}{n} \sum_{i=1}^{n} e^{-100y_i + 5000} I(y_i > 100) \\ = e^{-5000} \frac{1}{n} \sum_{i=1}^{n} e^{-100(y_i-100)} I(y_i > 100) $$

Mediante la ejecución de, por ejemplo, este código de C++:

#include <vector>
#include <random>
#include <iostream>
int main()
{
    std::vector<long double> estimation;
    int simulation_length { 1000000 };
    std::default_random_engine generator;
    std::normal_distribution<long double> distribution(100.0, 1.0);
    long double pick;
    long double estimation_sum { 0.0 };

    for (int i = 0; i != simulation_length; ++i)
    {
        pick = distribution(generator);
        if (pick > 100)
        {
            estimation.push_back(exp(-100 * (pick - 100)));
        }
    }

    for (double i : estimation)
    {
        estimation_sum += i;
    }

    std::cout << estimation_sum / simulation_length << std::endl;

    return 0;
}

usted obtener la salida 0.00400264. Multiplicando por exp(-5000), se obtiene 1.34876725857872×10^(-2174), que está muy cerca del valor real (es decir, 1.34417907674465×10^(-2174), obtenida a través de Mathematica)

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X