Предположим, у меня есть функция которую я хочу интегрировать Конечно, предполагая, что стремится к нулю в конечных точках, нет сбоев, хорошая функция. Один из способов , который я теребил является использование алгоритма Метрополиса-Гастингса , чтобы создать список образцов от распределения пропорционально к , который отсутствует константа нормировки который я назову , а затем вычислю некоторую статистику по этим : ∫ ∞ - ∞ g ( x ) d x . г ( х ) х 1 , х 2 , … , х н
Поскольку , я могу заменить в f (x) = U (x) / g (x), чтобы отменить g из интеграла, что приведет к выражению вида \ frac {1} {N} \ int _ {- \ infty} ^ {\ infty} \ frac {U (x)} {g (x)} g (x) dx = \ frac {1} {N} \ int _ {- \ infty} ^ \ infty U (x) dx. Таким образом, при условии, что U (x) интегрируется в 1 вдоль этой области, я должен получить результат 1 / N , который я мог бы просто взять обратно, чтобы получить желаемый ответ. Поэтому я мог бы взять диапазон моей выборки (чтобы наиболее эффективно использовать точки) r = x_ \ max - x_ \ min и позволить U (x) = 1 / r для каждой выборки, которую я нарисовал. Таким образом, U (х)fg 1U(x)11/Nr=xmax-xminU(x)=1/rU(x)
Я попытался проверить это в R для примера функции . В этом случае я не использую Metropolis-Hastings для генерации выборок, но использую фактические вероятности для генерации выборок (просто для тестирования). Я не совсем получаю результаты, которые я ищу. По сути, полное выражение того, что я бы вычислял, таково:
В моей теории это должно быть равно . Это близко, но это, конечно, не сходится ожидаемым образом, я делаю что-то не так? 1rnorm
1/√
ys = rnorm(1000000, 0, 1/sqrt(2))
r = max(ys) - min(ys)
sum(sapply(ys, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.6019741. 1/sqrt(pi) = 0.5641896
Редактировать для CliffAB
Причина, по которой я использую диапазон, заключается в простом определении функции, которая не равна нулю в области, где находятся мои точки, но которая интегрируется в в диапазоне . Полная спецификация функции: Мне не нужно было использовать качестве этой равномерной плотности. Я мог бы использовать некоторую другую плотность, интегрированную в , например, плотность вероятности Однако это сделало бы суммирование отдельных образцов тривиальным, т.е. [ - ∞ , ∞ ] U ( x ) = { 1U(х)
Я мог бы попробовать эту технику для других дистрибутивов, которые интегрируются в . Тем не менее, я все еще хотел бы знать, почему это не работает для равномерного распределения.