ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

多変量正規分布

定義

d 次元の多変量正規分布の確率密度関数は

y = f(x,μ,Σ) = 1|Σ|(2π)de12(x-μΣ-1(x-μ)

で与えられます。ここで、xμ は 1 行 d 列のベクトルであり、Σ は dd 列の対称正定行列です。特異な Σ に対して多変量正規分布を定義することは可能ですが、密度を上記のように記述することはできません。特異なケースに対しては、ランダムなベクトルの生成のみがサポートされます。教科書では、多くの場合、列ベクトルの xμ をもつ多変量正規分布を定義しますが、データ解析ソフトウェアの目的のためには、これらを行ベクトルとする方が便利になるので、Statistics Toolbox™ ソフトウェアが行ベクトルを使用することに注意してください。

背景

多変量正規分布は、2 つまたはより多くの変数に対する一変量正規分布の一般化です。これは、ベクトルの各成分が一変量正規分布をもち、相関のある変数からなるランダムなベクトルに対する分布です。最も簡単な場合は、変数間に相関がなく、ベクトルの各成分は一変量正規分布している独立確率変数です。

多変量正規分布は、平均ベクトル μ と共分散行列 Σ でパラメーター化されています。これらは、一変量正規分布のパラメーターである平均 μ と分散 σ2 に類似しています。Σ の対角要素は各変数の分散を含み、Σ の非対角要素は変数間の共分散を含みます。

多変量正規分布は、主に、取り扱いが容易な数少ない多変量分布の 1 つであるので、しばしば、多変量データのモデルとして使われます。

多変量正規確率密度関数の計算

多変量正規分布の pdf を計算してプロットします。

mu = [0 0];
Sigma = [.25 .3; .3 1];
x1 = -3:.2:3; x2 = -3:.2:3;
[X1,X2] = meshgrid(x1,x2);
F = mvnpdf([X1(:) X2(:)],mu,Sigma);
F = reshape(F,length(x2),length(x1));
surf(x1,x2,F);
caxis([min(F(:))-.5*range(F(:)),max(F(:))]);
axis([-3 3 -3 3 0 .4])
xlabel('x1'); ylabel('x2'); zlabel('Probability Density');

多変量正規 CDF の計算

mu = [1 -1] および SIGMA = [.9 .4; .4 .3] の各パラメーターを使用して多変量正規分布の CDF を計算し、プロットします。

mu = [1 -1];
SIGMA = [.9 .4; .4 .3];
figure;
[X1,X2] = meshgrid(linspace(-1,3,25)',linspace(-3,1,25)');
X = [X1(:) X2(:)];
p = mvncdf(X,mu,SIGMA);
surf(X1,X2,reshape(p,25,25));

領域上の累積確率の計算

2 変量正規分布は平面上で定義されているので、四角形領域で累積確率を計算することもできます。

単位正方形内での確率を計算し、結果の等高線図を作成します。

mu = [0 0];
Sigma = [.25 .3; .3 1];
x1 = -3:.2:3; x2 = -3:.2:3;
[X1,X2] = meshgrid(x1,x2);
F = mvnpdf([X1(:) X2(:)],mu,Sigma);
F = reshape(F,length(x2),length(x1));

mvncdf([0 0],[1 1],mu,Sigma);
contour(x1,x2,F,[.0001 .001 .01 .05:.1:.95 .99 .999 .9999]);
xlabel('x'); ylabel('y');
line([0 0 1 1 0],[1 0 0 1 1],'linestyle','--','color','k');

多変量累積確率を計算する場合、一変量確率を計算するよりも非常に多くの計算量を必要とします。既定の設定では、関数 mvncdf はマシンの最大精度に満たない値まで計算し、オプションの 2 番目の出力として誤差の推定値を返します。

[F,err] = mvncdf([0 0],[1 1],mu,Sigma)
F =

    0.2097


err =

   1.0000e-08

この情報は役に立ちましたか?