用奇异sigma实现高斯分布

时间:2014-12-23 02:33:16

标签: algorithm gaussian

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

有没有办法让sigma矩阵可逆并保持模型拟合数据?

有一组数据:(x1,x2)_1,(x1,x2)_2,...,(x1,x2)_i。其中x1和x2是连续的实数,有些(x1,x2)可以显示serval时间,我假设这些数据遵循Guassian分布,然后可以将平均向量计算为(mean(x1),mean(x2)),然后像往常一样计算协方差矩阵。在某些情况下,协方差矩阵可能是单数的,我认为添加一些随机的小移位可以使它非常规,但我不知道如何正确地做到这一点,以便模型仍能很好地拟合数据。

1 个答案:

答案 0 :(得分:0)

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

如果你的二维数据{(x1,x2)_i}的协方差矩阵是单数,这意味着数据沿着一条直线。 {x2}数据是{x1}数据的确定性函数,因此您只需要随机建模{x1}数据。 {x2}数据会立即从{x1}开始,一旦您知道{x1},就不再是随机的。


这是我的推理:

协方差矩阵看起来像这样,因为所有协方差矩阵都是对称的:

| a  b |
| b  c |

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

现在,如果此矩阵是单数,则第二列向量必须是第一列的标量倍数(因为它们是线性相关的)。让我们说常数是k。然后:

b = k*c
a = k*b = k*k*c

因此协方差矩阵看起来很像:

| k*k*c  k*c |
|  k*c    c  |

这里只有一个参数c = var(x2)决定了分布(因为k可以是任何东西),所以数据本身就是一维的。使用一个变量x1对其进行建模就足够了。另一种看待此问题的方法是检查此分布的Pearson Correlation Coefficient是否为b/(sqrt(a)*sqrt(c)) = 1