1

MATLAB で特定のディストリビューションからサンプルを取得する方法について、助けが必要です。5 つのビンと、これらのビンがサンプルを生成する可能性が高い対応する確率があるとします。

たとえば、(0-19)、(20-39)、(40-59)、(60-79) の 5 つのビンに対応する確率として、.1、.2、.4、.2、.1 があるとします。 )、(80-99)。

4

1 に答える 1

1

確率がわかっている場合は、各ビンが数直線上の確率に比例するスペースを占有するようにし、その数直線から (フラットな分布から) 乱数を選択します。

簡単な例: 40% と 60% の 2 つのビンを考えてみてください。0 から 1 までの乱数を選び、0.40 以下であれば bin1 から「引っ張ってきた」と言えます。.40 を超える場合は、ビン 2 から「引き出された」。

これは以下の悪いハックですが、エレガントなものが見つからない場合は....

 a = .1
 b = .2 + a
 c = .4 + b
 d = .2 + c
 e = .1 + d %cumulative probabilities (i.e. cdf)
 random = Random() %from 0 to 1 %pick random number
 if( 0 < random < = a) => bin1
 if( a < random < = b) => bin2
 if( b < random < = c) => bin3
 if( c < random <= d) => bin4
 if( d <= random) => bin5
于 2013-03-28T02:51:46.950 に答える