在试图为Dirichlet过程Gibbs抽样器编写代码时,我使用了一个正态Wishart模型,得到了一个误差,我想用它作为后验矩阵的标度矩阵是不对称的。我还用我自己的方法试了一下,得到了以下结果
is.symmetric.matrix(solve(cov(data)))结果为假输出。另外,cov(数据)是一个对称矩阵,它也应该使解( cov(data) )成为一个对称矩阵。当我尝试使用基包等效函数来检查矩阵是否是对称的时
isSymmetric.matrix(solve(cov(data)))我得到了一个真实的答案
知道为什么会这样吗?
发布于 2016-11-16 21:40:22
不同之处在于这两个函数如何度量相等。
LaplacesDemon::is.symmetric.matrix使用严格的等式
return(sum(x == t(x)) == (nrow(x)^2))当比较浮点数时,这可能会出现问题:请参见Why are these numbers not equal?来使用此函数,一种方法是,您可以舍入协方差矩阵。
isSymmetric.matrix使用all.equal:如果数字等于公差
all.equal(object, t(object), tolerance = tol, ...)https://stackoverflow.com/questions/40642516
复制相似问题