2

セット S={a1,a2,a3,a4,a5,......,an} があります。各要素が選択される確率は、それぞれ {p1,p2,p3,p4,p5,...,pn} です (もちろん、p1+p2+p3+p4+p5+....+pn=1} .

それを行う実験をシミュレートしたい。ただし、ライブラリなしで(つまり、第一原則から)それを行いたい

私は次の方法を使用しています: 1) 次のように要素を実数直線にマッピングします X(a1)=1; X(a2)=2; X(a3)=3; X(a4)=4; X(a5)=5;....,X(an)=n

2) 次に、各座標の累積確率分布関数を計算します (つまり、次のように P(x < X): cdf(x)= P(a1) + P(a2) + .....P(ai) など)。 X(ai) <= x < X(a(i+1))

(したがって、cdf はステップ関数です)

3) (0,1) の間の実数 q をランダムに選択します。そして、線 y = q が cdf と交差する x 座標を計算します。cdf は 1,2,...n でジャンプするステップ関数であるため、ポイントは 1 と n の間の整数 x 座標を持ちます。x 座標を m とします。

4) X(ai) = m となる ai を選択します。

私の質問は、この方法はバイアスなしで実験をシミュレートすることですか?

必要な結果が得られていないため、少し懐疑的です。

どんな助けでも大歓迎です!ありがとう!

4

1 に答える 1

3

ロジックは大丈夫そうです。一般に、一様分布 U(0,1) から任意の分布関数 Y(x) をサンプリングするには、Y ベクトルで一様ランダム値 u を検索し、Y(x) 以上の x の最小値を返します。つまりmin{x:Y(x)>=u}

以下の例のように、基本確率に x=0 観測を追加することができます。

x      P(x)    Y(x)
0      0       0
1      0.1     0.1
2      0.3     0.4
3      0.4     0.8
4      0.2     1

u = 0.3 -> x = 2などu = 0.81 -> x = 4。_

多くの試行で相対頻度を明確に計算すると、偏りのない P(x) の推定値が得られます。

于 2012-05-30T08:51:53.807 に答える