このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
多項確率分布関数
この例では、確率分布関数を使用した乱数の生成、多項分布の pdf の計算およびプロットの方法を示します。
手順 1. 分布パラメーターを定義する。
各結果の確率を含むベクトルp
を作成します。結果 1 の確率は 1/2、結果 2 の確率は 1/3、結果 3 の確率は 1/6 です。各実験の試行回数n
は 5、実験の反復数reps
は 8 です。
p = [1/2 1/3 1/6]; n = 5; reps = 8;
手順 2. 1 つの乱数を生成する。
1 回の試行の結果である多項分布から 1 つの乱数を生成します。
rng('default')% For reproducibilityr = mnrnd(1,p,1)
r =1×30 1 0
返されるベクトルr
には 3 つの要素が含まれ、起こりうる各結果のカウントが示されます。この 1 回の試行の結果が結果 2 です。
手順 3. 乱数の行列を生成する。
多項分布から乱数の行列を生成することもできます。この行列は、それぞれ複数の試行を含む複数の実験の結果を報告します。試行回数n = 5
、反復数reps = 8
の実験の結果を含む行列を生成します。
r = mnrnd(n,p,reps)
r =8×31 1 3 3 2 0 1 1 3 0 4 1 5 0 0 1 2 2 3 1 1 3 1 1
生成された行列の各行には、 個の多項分布のビンそれぞれのカウントが含まれます。たとえば、最初の実験 (最初の行に対応する) では、5 回の試行のうちの 1 回が結果 1、5 回の試行のうちの 1 回が結果 2、5 回の試行のうちの 3 回が結果 3 となります。
手順 4. pdf を計算する。
多項関数はビン数を使用するため、可能性のある結果をすべて組み合わせた多次元配列を作成し、mnpdf
を使用して pdf を計算します。
count1 = 1:n; count2 = 1:n; [x1,x2] = meshgrid(count1,count2); x3 = n-(x1+x2); y = mnpdf([x1(:),x2(:),x3(:)],repmat(p,(n)^2,1));
手順 5. 確率密度関数をプロットする。
3 次元の棒グラフを作成し、結果の頻度の組み合わせごとに確率密度関数を可視化します。
y = reshape(y,n,n); bar3(y) set(gca,'XTickLabel',1:n); set(gca,'YTickLabel',1:n); xlabel(“x_1频率”) ylabel('x_2 Frequency') zlabel('Probability Mass')
プロットは、起こり得る結果の組み合わせごとの確率質量を示しています。 は制約 により決定されるため,表示されません。