在MATLAB中理解iwishrnd与1 /(wishrnd)的行为

时间:2015-07-06 00:13:55

标签: matlab function statistics distribution matrix-inverse

我正在测试一个Gibbs采样器来执行贝叶斯分层回归,对于我的一个先验,我需要从Inverse-Wishart分布中进行采样。在生成了一个样本协方差矩阵A,它被认为是正定和对称的,我称之为iwishrnd(A^-1, df)。偶尔,我会得到一个错误,说矩阵必须是正半定和对称的,但是当我调用1/(wishrnd(A,df)时,我从未遇到过这个错误。由于iwishrnd(A^-1,df)应该等同于1/wishrnd(A,df),我想知道是否有人可以告诉我发生了什么,即像MATLAB更好地处理1/(wishrnd(A,df)。我主要希望能够信任输出,并希望确保MATLAB正在产生我需要的东西。

我按照https://stats.stackexchange.com/questions/99153/sample-covariance-matrix概述的方法生成了样本协方差矩阵。我使用的代码如下:

Q_T = eye(num_groups) - ones(num_groups,num_groups)./num_groups;

这会生成矩阵Q_T

beta_init(:,ii) = regress(Y(groups(ii).index),X(groups(ii).index,:));

这会为我的Gibbs采样器生成一个beta的初始样本。

S_o = ((Q_T*(beta_init)')'*(Q_T*(beta_init)'))./num_groups;

这将生成初始样本协方差矩阵。 T的值等于组的数量。

谢谢!

0 个答案:

没有答案