Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

多項確率分布関数

この例では、確率分布関数を使用した乱数の生成、多項分布の 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

生成された行列の各行には、 k 個の多項分布のビンそれぞれのカウントが含まれます。たとえば、最初の実験 (最初の行に対応する) では、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')

Figure contains an axes. The axes contains 5 objects of type surface.

プロットは、起こり得る結果の組み合わせごとの確率質量を示しています。 x 3 は制約 x 1 + x 2 + x 3 = n により決定されるため,表示されません。

関連するトピック