首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的isSymmetric.matrix {B碱}与is.symmetric.matrix {LaplacesDemon}

R中的isSymmetric.matrix {B碱}与is.symmetric.matrix {LaplacesDemon}
EN

Stack Overflow用户
提问于 2016-11-16 21:17:57
回答 1查看 163关注 0票数 1

在试图为Dirichlet过程Gibbs抽样器编写代码时,我使用了一个正态Wishart模型,得到了一个误差,我想用它作为后验矩阵的标度矩阵是不对称的。我还用我自己的方法试了一下,得到了以下结果

代码语言:javascript
复制
is.symmetric.matrix(solve(cov(data)))

结果为假输出。另外,cov(数据)是一个对称矩阵,它也应该使解( cov(data) )成为一个对称矩阵。当我尝试使用基包等效函数来检查矩阵是否是对称的时

代码语言:javascript
复制
isSymmetric.matrix(solve(cov(data)))

我得到了一个真实的答案

知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-16 21:40:22

不同之处在于这两个函数如何度量相等。

LaplacesDemon::is.symmetric.matrix使用严格的等式

代码语言:javascript
复制
 return(sum(x == t(x)) == (nrow(x)^2))

当比较浮点数时,这可能会出现问题:请参见Why are these numbers not equal?来使用此函数,一种方法是,您可以舍入协方差矩阵。

isSymmetric.matrix使用all.equal:如果数字等于公差

代码语言:javascript
复制
all.equal(object, t(object), tolerance = tol, ...)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40642516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档