ドキュメンテーション

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

多変量 t 分布

定義

d 次元の多変量スチューデントの t 分布の確率密度関数は、次のようになります。

f(x,Σ,ν)=1|Σ|1/21(νπ)dΓ((ν+d)/2)Γ(ν/2)(1+x Σ-1xν)(ν+d)/2.

ここで、x は 1 行 d 列のベクトル、Σ は dd 列の対称な正定行列、ν は正のスカラーです。特異な Σ に対して、多変量スチューデントの t 分布は定義できますが、その密度を上記のように記述することはできません。特異なケースの場合は、乱数発生のみがサポートされます。多くの教科書は、x を列ベクトルとして多変量スチューデントの t 分布を定義しますが、データ解析ソフトウェアの目的のためには、x を行ベクトルとする方が都合がよいので、Statistics and Machine Learning Toolbox™ ソフトウェアでは行ベクトルを使用することに注意してください。

背景

多変量スチューデントの t 分布は、一変量スチューデントの t 分布を 2 つまたはより多くの変数に汎化したものです。これは、ベクトルの各成分は一変量スチューデントの t 分布をもち、相関のある変数からなるランダムなベクトルに対する分布です。一変量のスチューデントの t 分布と同じように、標準の一変量正規確率変数を一変量カイ二乗確率変数の平方根でことによって作成できます。多変量スチューデントの t 分布は、平均 0 と分散 2 をもつ多変量の乱数ベクトルを、一変量のカイ二乗確率変数で割ることによって作成できます。

多変量スチューデントの t 分布は、相関行列 Σ と正のスカラーの自由度パラメーター ν でパラメーター表現されます。ν は、一変量スチューデントの t 分布の自由度パラメーターに似ています。Σ の非対角要素は、変数どうしの相関を含みます。Σ が恒等行列のときには、変数には相関がないことに注意してください。ただし、変数は独立ではありません。

多変量スチューデントの t 分布は、個々の変数の周辺分布が正規分布よりも広い裾をもつことが知られている状況で、多変量正規分布の代わりにしばしば使用されます。

多変量 t 分布の確率密度関数と累積分布関数のプロット

二変量のスチューデントの t 分布の確率密度関数をプロットします。可視化は容易ではありませんが、この分布はより高次元においても使用できます。

Rho = [1 .6; .6 1];
nu = 5;
x1 = -3:.2:3; x2 = -3:.2:3;
[X1,X2] = meshgrid(x1,x2);
F = mvtpdf([X1(:) X2(:)],Rho,nu);
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 .2])
xlabel('x1'); ylabel('x2'); zlabel('Probability Density');

二変量のスチューデントの t 分布の累積分布関数をプロットします。

F = mvtcdf([X1(:) X2(:)],Rho,nu);
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 1])
xlabel('x1'); ylabel('x2'); zlabel('Cumulative Probability');

二変量のスチューデントの t 分布は平面上で定義されているので、四角形領域で累積確率を計算することもできます。たとえば、次の等高線図は、図に示された単位正方形に含まれる確率の計算を示します。

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');

単位正方形に含まれる確率の値を計算します。

F = mvtcdf([0 0],[1 1],Rho,nu)
F = 0.1401

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

[F,err] = mvtcdf([0 0],[1 1],Rho,nu)
F = 0.1401
err = 1.0000e-08

参考

| |

関連するトピック