Имитирующее вычисление ожидаемого значения случайной величины Y

#r #statistics #data-science #probability #probability-theory

#r #Статистика #наука о данных #вероятность #теория вероятностей

Вопрос:

Мне была поставлена следующая задача: вычислить ожидаемое значение Y = e ^ {-X} (X равно от 0 до 1) с помощью моделирования в R. Постройте ожидаемое значение как функцию от количества симуляций, где n — целое число от 1 до 10000. pdf этой функции: f (y) = 1 / y, для 1 /e < y < 1.

Формула нахождения ожидаемого значения, конечно: E [Y] = интегрировать (y * 1 / y dy)

Как вы моделируете что-то подобное? Я ожидаю, что вы нарисуете случайную выборку между (1 / e < y < 1), но pdf-файл распределения имеет разные вероятности в зависимости от того, что вы рисуете, кажется.

Я думал об использовании функций «sample» или «runif», но я не могу понять, как заставить эти функции работать с разными вероятностями.

Ответ №1:

Вы могли бы использовать тот факт, что случайная величина U = F (Y) является однородной, где F — функция кумулятивной плотности случайной величины Y (с pdf 1 / y). Тогда вы получите, что Y = F ^-1 (U). Это означает, что вы можете выполнить выборку из однородной переменной, а затем преобразовать ее через F ^-1 (U), чтобы получить выборку из Y. Затем вы можете взять среднее значение вашей выборки. Это известно как обратное преобразование выборки.

Для вашего примера у вас есть F (y) = ln (y) 1 и F ^-1 (u) = exp (u — 1). Затем легко получить образец:

 n = 1000
u = runif(n)
y = exp(u - 1)
mean(y)
0.6342477
  

что очень близко к истинному среднему значению 0,6321206 (1 — 1 / e).

Редактировать

Чтобы увидеть, как изменяется оценочное среднее значение в зависимости от того, сколько выборок вы моделируете, вы могли бы сделать что-то вроде этого:

 sample_y = function(n){
  u = runif(n)
  y = exp(u - 1)
  mean(y)
}

n = seq(10, 20000, 10)
res = sapply(n, sample_y)
ts.plot(res)

  

Оно очень быстро стабилизируется вокруг истинного среднего значения, и отклонение от среднего значения становится все меньше и меньше по мере роста n.

введите описание изображения здесь

Комментарии:

1. Большое спасибо, очень хорошо объяснил!

2. Может быть, одна вещь, о которой я задавался вопросом. Обратная к CDF: F(y) = ln(y) — 1, я не понимаю, как вы получаете exp (u-1) как обратную к ln (y)-1. Я получаю exp (u 1), и, как вы можете видеть, то же самое делает онлайн-калькулятор: emathhelp.net/calculators/algebra-2/inverse-function-calculator / … мне интересно, не упускаю ли я чего-то? @J.C.Wahl

3. Вы правы, CDF равен ln(y) 1, поскольку значение int 1 /y, 1 /e < y < 1, равно ln(y) — ln (1 / e) = ln(y) 1. Я обновлю свой ответ.

4. Спасибо. Да, но вы предпочитаете брать интеграл: 1 / e -> y, чтобы в итоге получить ровно ln (y) — ln (1 / e) = ln (y) 1, что в точности соответствует cdf: F (Y <= y).