首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用奇异σ实现高斯分布

用奇异σ实现高斯分布
EN

Stack Overflow用户
提问于 2014-12-23 02:33:16
回答 1查看 1.2K关注 0票数 0

我在某些数据上实现了高斯分布模型,如果σ(协方差矩阵)是奇异的,那么它就不是可逆的,将导致计算概率的失败。我认为在sigma中添加一个恒等矩阵将使sigma可逆,但这将使模型不适合数据。

是否有办法使σ矩阵可逆,并保持模型拟合数据?

有一组数据:(x1,x2)_1,(x1,x2)_2,.,(x1,x2)_i。其中x1和x2是连续实数,有些(x1,x2)可以出现伺服次数,我假设这些数据遵循Guassian分布,然后计算平均向量为(平均(X1),均值(X2)),然后像往常一样计算协方差矩阵。在某些情况下,协方差矩阵可能是奇异的,我认为在它上增加一些随机的小位移可以使它成为非奇异的,但我不知道如何正确地做它,以便模型仍然能够很好地拟合数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-24 20:15:32

在这种情况下,您只需要用一维高斯分布来建模数据的一维。

如果你有二维数据{(x1,x2)_i},它的协方差矩阵是奇异的,这意味着数据沿着一条直线。{x2}数据是{x1}数据的确定性函数,因此您只需要对{x1}数据进行随机建模。{x2}数据紧跟于{x1},一旦了解{x1},就不再是随机的。

以下是我的推理:

协方差矩阵如下所示,因为所有协方差矩阵都是对称的:

代码语言:javascript
复制
| a  b |
| b  c |

a = var(x1)c = var(x2)b = cov(x1,x2)

如果这个矩阵是奇异的,那么第二列向量必须是第一个矩阵的标量倍数(因为它们是线性相关的)。假设常数是k。然后:

代码语言:javascript
复制
b = k*c
a = k*b = k*k*c

所以协方差矩阵看起来真的很像:

代码语言:javascript
复制
| k*k*c  k*c |
|  k*c    c  |

这里只有一个参数c = var(x2)来决定分布(因为k可以是任何东西),所以数据本身就是一维的。用一个变量x1建模就足够了。查看此发行版的另一种方法是检查此发行版的皮尔逊相关系数是否为b/(sqrt(a)*sqrt(c)) = 1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27613297

复制
相关文章

相似问题

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