【问题标题】:on symmetric positive semi-definiteness of covariance matrices in matlab关于matlab中协方差矩阵的对称正半定性
【发布时间】:2015-07-12 07:04:40
【问题描述】:

大家好,我有这个问题:

  • 我有 n 个向量的数据集,每个向量都有 D 维。
  • 我还有一个大小为 D*D 的协方差矩阵,设为 C。

我执行以下操作:

  • 我从数据集中选择了K个向量,也随机选择了E个维度。令 M 为所选数据在所选维度上的样本协方差。因此 M 为 E*E 矩阵。
  • 设P为对应于C的维度E的部分协方差矩阵,即。 matlab中的C(E,E)

下面的矩阵是半正定的吗?:

X = (1-a)P + aM

其中 a 是一个常数,例如 0.2。

使用 mvnrnd(mean,X) 时有时会出现以下错误: SIGMA 必须是一个对称的半正定矩阵

我的代码是:

%%%Dims are randomly choosen dimensions
%%%Inds are randomly choosen Indexes form {1, 2, ...,n}
%%% PP are n D dimensional vectors, composing my data set PP is n*D
%%% Sigmaa is a D*D covariance matrix
co = cov(PP(Inds,Dims));
me = mean(PP(Inds,Dims));
Bettaa = 0.2;
sigmaaDims = sigmaa(Dims,Dims);
sigmaaDims = (1-Bettaa)*sigmaaDims + (co)*Bettaa;
Tem = mvnrnd(me,sigmaaDims);

【问题讨论】:

  • 半正定矩阵的凸(和圆锥)组合是半正定矩阵(只需在v'Xv 中扩展X 的定义)。所以你的问题归结为(对称)矩阵 P 和 M 是否都是半正定的。
  • 谢谢 Ben,但正如我所说,M 是样本协方差,所以它应该是半正定的。 P 是从投影维度 E 形成的半正定矩阵得到的部分矩阵。所以问题是:P 是否总是正半定义,第二个问题是如果是这样,为什么 matlab 会不断出错以及如何防止这种情况发生?
  • 只是为了确认一下,你的常数 a 总是在 0 和 1 之间,对吧?
  • 是的,实际上总是 0.2
  • 我没有很好地理解你的最后一个问题,“你需要所有的特征值都是非负的,而不仅仅是一个?”但是,我的数学并不多,而且我总是遇到特征值问题;)但我添加了我的代码以获取更多详细信息

标签: matlab matrix covariance


【解决方案1】:

仅查看矩阵维度 无法判断矩阵是否为半正定矩阵。

要确定给定矩阵是否为positive semi-definite,您必须检查它的特征值是否为非负且对称:

symmetry = issymmetric(X);
[~,D]=eig(X);
eigenvalues = diag(D);
if all(eigenvalues>0) & symmetry
    disp('Positive semi-definite matrix.')
else
     disp('Non positive semi-definite matrix.')
end

其中 X 是您感兴趣的矩阵。

请注意,如果您使用正定矩阵的较弱定义(请参阅非对称矩阵的扩展部分),X 不需要是对称的,您可以最终得到:

[~,D]=eig(X);
eigenvalues = diag(D);
if all(eigenvalues>=0)
    disp('Positive semi-definite matrix.')
else
     disp('Non positive semi-definite matrix.')
end

【讨论】:

  • 非常感谢。但我的问题是:我认为 X 应该是半正定的,但是 matlab 有时会给出错误,所以我该如何防止这种情况发生:stackoverflow.com/questions/11269715/… 有一些类似的情况
  • 我意识到我回答了这个问题,但还没有给出问题的解决方案。 @BenVoigt 谢谢,应该是全部,而不是任何。
  • 我在这里找到了关于如何缓解问题的很好的讨论:mathworks.com/matlabcentral/answers/…
猜你喜欢
  • 2019-04-10
  • 1970-01-01
  • 2014-02-07
  • 2017-03-27
  • 1970-01-01
  • 2012-11-22
  • 1970-01-01
  • 2017-09-28
相关资源
最近更新 更多