2015-06-02 1 views
0

Я пытаюсь вычислить вероятность двумерного нормального распределения по определенной области с помощью Matlab.Вероятности двумерной нормально распределенной случайной величины

Предположим, что случайная величина соответствует стандартным нормальным распределениям, и я хочу рассчитать массу единичного круга.

Я использовал следующий код:

fun = @(x,y) exp(-0.5*(x.^2+y.^2))/(2*pi); 
ymin = @(x) -sqrt(1-(x.^2)); 
ymax = @(x) sqrt(1-(x.^2)); 
integral2(fun,-1,1,ymin,ymax) 

я получаю 0.3935. Мне интересно, что этот результат правильный.

Может ли кто-нибудь подтвердить, что результат верен или указывает на ошибку, которую я сделал?

ответ

2

Я думаю, что это правильно. Некоторые проверки:

  • Объединяют на большой площади и посмотреть, если результат почти 1:

    >> integral2(fun,-5,5,-5,5) 
    ans = 
        0.999998853581851 
    
  • 90-процентиль однофакторном гауссовского распределения

    >> norminv(.9) 
    ans = 
        1.281551565544601 
    

    Так , интеграл вашей функции на [−∞,∞] × [−∞,1.281] должен быть 0.9:

    >> integral2(fun,-10,10,-10,norminv(.9)) 
    ans = 
        0.900000750806316 
    
  • Окончательное Монте-Карло проверка:

    >> N = 1e6; 
    x = randn(1,N); 
    y = randn(1,N); 
    mean((x>-1)&(x<1)&(y>-sqrt(1-(x.^2)))&(y<sqrt(1-(x.^2)))) 
    ans = 
        0.393678000000000 
    
+0

большой, большое спасибо Луис Mendo –