MATLAB で特定のディストリビューションからサンプルを取得する方法について、助けが必要です。5 つのビンと、これらのビンがサンプルを生成する可能性が高い対応する確率があるとします。
たとえば、(0-19)、(20-39)、(40-59)、(60-79) の 5 つのビンに対応する確率として、.1、.2、.4、.2、.1 があるとします。 )、(80-99)。
MATLAB で特定のディストリビューションからサンプルを取得する方法について、助けが必要です。5 つのビンと、これらのビンがサンプルを生成する可能性が高い対応する確率があるとします。
たとえば、(0-19)、(20-39)、(40-59)、(60-79) の 5 つのビンに対応する確率として、.1、.2、.4、.2、.1 があるとします。 )、(80-99)。
確率がわかっている場合は、各ビンが数直線上の確率に比例するスペースを占有するようにし、その数直線から (フラットな分布から) 乱数を選択します。
簡単な例: 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