Wolfram言語

ランダム行列

行列正規分布と行列T分布

行列正規分布と行列 分布は,指定の行・列尺度行列を持つ,行列が変量である正規分布と 分布であり,主な適用分野には,時系列解析,確率過程,多変量回帰等がある.

尺度行列を ΣrowΣcolとすると,行列正規分布の確率密度はに比例する.行列正規分布からサンプルを抽出する.

In[1]:=
Click for copyable input
Subscript[\[CapitalSigma], row] = {{1, 0.9}, {0.9, 1}}; Subscript[\[CapitalSigma], col] = {{1, -0.9}, {-0.9, 1}};
In[2]:=
Click for copyable input
RandomVariate[ MatrixNormalDistribution[Subscript[\[CapitalSigma], row], Subscript[\[CapitalSigma], col]]]
Out[2]=

抽出された行ベクトルを散布図で可視化し,密度関数と比較する.

In[3]:=
Click for copyable input
sample = RandomVariate[ MatrixNormalDistribution[Subscript[\[CapitalSigma], row], Subscript[\[CapitalSigma], col]], 10^4]; firstrows = sample[[All, 1]];
完全なWolfram言語入力を表示する
In[4]:=
Click for copyable input
Show[ContourPlot[ PDF[MultinormalDistribution[{0, 0}, Subscript[\[CapitalSigma], col] ], {x, y}], {x, -4.5, 4.5}, {y, -4.5, 4.5}, PlotPoints -> 30, PlotTheme -> "Detailed", ImageSize -> Medium], ListPlot[firstrows, ImageSize -> Medium, PlotTheme -> "Detailed", PlotStyle -> Black]]
Out[4]=

抽出された列ベクトルをヒストグラムで可視化し,密度関数と比較する.

In[5]:=
Click for copyable input
firstcols = sample[[All, All, 1]];
完全なWolfram言語入力を表示する
In[6]:=
Click for copyable input
Show[Histogram3D[firstcols, Automatic, "PDF", ImageSize -> Medium, PlotTheme -> "Detailed", ChartStyle -> "Pastel"], Plot3D[PDF[ MultinormalDistribution[{0, 0}, Subscript[\[CapitalSigma], row] ], {x, y}], {x, -5, 5}, {y, -5, 5}, PlotRange -> All, ImageSize -> Medium, PlotTheme -> "Detailed", PlotLegends -> None]]
Out[6]=

スチューデントの 分布,多変量 分布と同様に,行列 分布は行列正規分布に逆ウィシャート分布の尺度母数を混ぜたものである.行列 分布からサンプルを抽出する.

In[7]:=
Click for copyable input
RandomVariate[ MatrixTDistribution[Subscript[\[CapitalSigma], row], Subscript[\[CapitalSigma], col], 3]]
Out[7]=

行列 分布の行列の集合を生成する.

In[8]:=
Click for copyable input
sample = RandomVariate[ MatrixTDistribution[Subscript[\[CapitalSigma], row], Subscript[\[CapitalSigma], col], 3], 10^4];

行列 分布の変量の低次元写像はスチューデント 分布と多変量 分布である.2次元ベクトルのサンプルの写像を求め,適合度を確かめる.

In[9]:=
Click for copyable input
v = {1, 2}; vecs = sample.v;
In[10]:=
Click for copyable input
DistributionFitTest[vecs, MultivariateTDistribution[ Subscript[\[CapitalSigma], row] (v.Subscript[\[CapitalSigma], col].v)/3, 3]]
Out[10]=

写像データを散布図で可視化し,密度関数と比較する.

完全なWolfram言語入力を表示する
In[11]:=
Click for copyable input
Show[ContourPlot[ PDF[MultivariateTDistribution[ Subscript[\[CapitalSigma], row] (v.Subscript[\[CapitalSigma], col].v)/3, 3], {x, y}], {x, -5, 5}, {y, -5, 5}, PlotPoints -> 30, PlotTheme -> "Detailed", ImageSize -> Medium], ListPlot[vecs, ImageSize -> Medium, PlotTheme -> "Detailed", PlotStyle -> Black]]
Out[11]=

関連する例

de en es fr ko pt-br ru zh