機率

不同度量的機率

  • November 3, 2017

我在理解問題時遇到了一些麻煩。

問題:“說明如何使用度量變化來估計 $ Y > 100 $ 什麼時候 $ Y \sim \mathcal{N}(0, 1) $ .

我正在使用的這本書沒有很好地介紹這部分,所以有人可以解釋這個例子嗎?

為了估計小機率事件的機率,您可能希望嘗試估計為事件發生分配更大機率質量的已更改隨機變數的機率。所以,在你的情況下,你可能想改變原來的 $ N(0, 1) $ 至 $ N(100, 1) $ 因為對於第二個 rv,它高於 100 的機率是 $ \frac{1}{2} $ . 因此,您正在尋找一種形式上的改變:

$$ \frac{dQ}{dP} = \frac{dN(0,1)}{dN(100,1)} = exp(-100y+5000), $$ 在哪裡 $ Q $ 是與相關的機率測度 $ N(0, 1) $ 和 $ P $ 是與相關的機率測度 $ N(100, 1) $ .

因此對於一個事件 $ A = {Y > 100} $ 根據 Radon-Nikodym 定理,我們可以得到:

$$ Q(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) $$ 通過執行,例如這個 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;
}

你得到輸出 0.00400264。乘以 exp(-5000) 得到 1.34876725857872×10^(-2174),非常接近真實值(即 1.34417907674465×10^(-2174),通過 Mathematica 獲得)

引用自:https://quant.stackexchange.com/questions/36411