Załóżmy, że mam funkcję , którą chcę zintegrować Oczywiście przy założeniu, że osiąga zero w punktach końcowych, brak wybuchów, fajna funkcja. Jednym ze sposobów, w jakie się bawiłem, jest użycie algorytmu Metropolis-Hastings do wygenerowania listy próbek z rozkładu proporcjonalnego do , w którym brakuje stałej normalizacyjnej który , a następnie obliczenia niektórych statystyk na tych :
Ponieważ , mogę podstawić aby anulować g z całki, co powoduje wyrażenie postaci \ frac {1} {N} \ int _ {- \ infty} ^ {\ infty} \ frac {U (x)} {g (x)} g (x) dx = \ frac {1} {N} \ int _ {- \ infty} ^ \ infty U (x) dx. Więc pod warunkiem, że U (x) integruje się z 1 wzdłuż tego regionu, powinienem uzyskać wynik 1 / N , który mógłbym wziąć na zasadzie wzajemności, aby uzyskać odpowiedź, której chcę. Dlatego mógłbym wziąć zakres mojej próbki (aby najskuteczniej wykorzystać punkty) r = x_ \ max - x_ \ min i pozwolić U (x) = 1 / r dla każdej narysowanej próbki. W ten sposób U (x)
Próbowałem to przetestować w R dla przykładowej funkcji . W tym przypadku nie używam Metropolis-Hastings do generowania próbek, ale używam rzeczywistych prawdopodobieństw rnorm
do generowania próbek (tylko do testowania). Nie do końca otrzymuję wyniki, których szukam. Zasadniczo pełne wyrażenie tego, co bym obliczał, to:
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
Edycja dla CliffAB
Powodem, dla którego używam zakresu jest po prostu łatwe zdefiniowanie funkcji, która nie jest zerowa w regionie, w którym znajdują się moje punkty, ale która integruje się z w zakresie . Pełna specyfikacja funkcji jest następująca: Nie musiałem używać jako tej jednolitej gęstości. Mógłbym użyć innej gęstości zintegrowanej z , na przykład gęstości prawdopodobieństwa Sprawiłoby to jednak, że sumowanie poszczególnych próbek byłoby banalne, tzn [ - ∞ , ∞ ] U ( x ) = { 1U(x)1P(x)=1
Mógłbym wypróbować tę technikę dla innych dystrybucji, które integrują się z . Chciałbym jednak nadal wiedzieć, dlaczego nie działa w przypadku równomiernej dystrybucji.