を統合したい関数あるとし もちろん、がエンドポイントでゼロになり、爆発がなく、素晴らしい機能であると仮定します。私がいじっていた1つの方法は、Metropolis-Hastingsアルゴリズムを使用して、正規化定数が欠落している比例する分布からサンプルリストを生成することです これをと呼び、これらのについて統計を計算します。 g(x) x 1、 x 2、…、 x n
以来、、私は置換することができるキャンセルする形の発現をもたらす、積分から そのため、その領域に沿ってに統合される場合、結果を取得する必要があります。これは、必要な答えを得るために逆数を取ることができます。したがって、サンプルの範囲を取得して(ポイントを最も効果的に使用するため)、とし、描画した各サンプルに対してU(x)= 1 / rとします。そのようにU(x)f (x )= U (x )/ g (x )g 1U(x)1
サンプル関数g(x)= e ^ {-x ^ 2}の Rでこれをテストしてみました。この場合、Metropolis-Hastingsを使用してサンプルを生成するのではなく、実際の確率を使用してrnorm
サンプルを生成します(テストのみ)。探している結果が得られません。基本的に、私が計算することの完全な表現は次のとおりです。
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の編集
範囲を使用する理由は、ポイントがある領域でゼロ以外の関数を簡単に定義するためですが、範囲[-\ infty、\ infty]でに統合されます。関数の完全な仕様は次のとおりです 。U(x)= \ begin {cases} \ frac {1} {x_ \ max-x_ \ min}&x_ \ max> x> x_ \ min \\ 0&\ text {それ以外の場合。} \ end {cases}この均一な密度としてU(x) を使用する必要はありませんでした。たとえば、確率密度P(x)= \ frac {1} {\ sqrt {\ pi}} e ^ {-x ^ 2}など、1に 統合された他の密度を使用することもできます。 ただし、これにより個々のサンプルの合計が簡単になります。
私はに統合する他のディストリビューションのためにこのテクニックを試みることができる。ただし、均一な配布では機能しない理由を引き続き知りたいと思います。