Припустимо, у мене є функція g(x) яку я хочу інтегрувати
∫∞−∞g(x)dx.
Звичайно, припустимо, що
g(x) переходить до нуля в кінцевих точках, відсутність вибухів, хороша функція. Один з способів , який я смикав є використання алгоритму Метрополіс-Гастингса , щоб сформувати список зразків
x1,x2,…,xn з розподілу
пропорційно до
g(x), Який відсутня константа нормалізації
N=∫∞−∞g(x)dx
,
які я буду називати
p(x) , а потім обчислення деякі статистичні
f(x) на цих
x «и:
1n∑i=0nf(xi)≈∫∞−∞f(x)p(x)dx.
Оскільки p(x)=g(x)/N , я можу підставити в f(x)=U(x)/g(x) скасувати g від інтеграла, в результаті чого вираз форми
1N∫∞−∞U(x)g(x)g(x)dx=1N∫∞−∞U(x)dx.
Отже за умови, що
U(x)інтегрується до
1уздовж цього регіону, я повинен отримати результат
1/N, який я міг би просто прийняти зворотним, щоб отримати відповідь, яку я хочу. Тому я міг би взяти діапазон моєї вибірки (щоб найбільш ефективно використовувати точки)
r=xmax−xminі дозволити
U(x)=1/rдля кожного намальованого зразка. Таким чином
оцінює нуль за межами регіону, де моїх зразків немає, але інтегрується до
1 у цьому регіоні. Отже, якщо я зараз прийму очікуване значення, я повинен отримати:
E [ U ( x )U(x)1E[U(x)g(x)]=1N≈1n∑i=0nU(x)g(x).
Я спробував тестувати це в R для вибіркової функції . У цьому випадку я не використовую Metropolis-Hastings для створення зразків, але використовую фактичні ймовірності з для генерування зразків (просто для тестування). Я не дуже отримую результати, які шукаю. В основному, повне вираження того, що я б обчислював:
1g(x)=e−x2rnorm
Це має в моїй теорії оцінювати до1/√
1n(xmax−xmin)∑i=0n1e−x2i.
. Це наближається, але це, звичайно, не зближується очікуваним чином, чи я щось роблю не так?
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 ) = { 11[−∞,∞]
Мені не довелося використовуватиU(x)як цю рівномірну щільність. Я міг би використовувати іншу щільність, інтегровану до1, наприклад, щільність ймовірності
P(x)=1
U(x)={1xmax−xmin0xmax>x>xminotherwise.
U(x)1
Однак це зробило б підсумовування окремих зразків тривіальним, тобто
1P(x)=1π−−√e−x2.
1n∑i=0nP(x)g(x)=1n∑i=0ne−x2i/π−−√e−x2i=1n∑i=0n1π−−√=1π−−√.
Я міг би спробувати цю техніку для інших розподілів, які інтегруються в . Однак я все ж хотів би знати, чому це не працює для рівномірного розподілу.1