如何使矩阵正定?

机器算法验证 因子分析 期望最大化
2022-03-29 04:02:12

我正在尝试为以下因子分析模型实现 EM 算法;

Wj=μ+Baj+ejforj=1,,n

其中是 p 维随机向量,是潜在变量的 q 维向量,是参数的 pxq 矩阵。WjajB

由于模型使用的其他假设,我知道其中是误差项的方差协方差矩阵, = diag( , ,..., )。WjN(μ,BB+D)DejDσ12σ22σp2

为了使 EM 算法正常工作,我正在进行涉及矩阵估计的圆顶迭代,并且在这些迭代期间,我的新估计在每次迭代中的倒数。不幸的是,在迭代过程中,失去了它的正定性(但这不应该,因为它是一个方差-协方差矩阵),这种情况破坏了算法的收敛性。我的问题是:BDBB+DBDBB+D

  1. 这种情况是否表明我的算法有问题,因为可能性在 EM 的每一步都应该增加?

  2. 使矩阵正定的实用方法是什么?

编辑:我正在使用矩阵求逆引理计算逆,它指出:

(BB+D)1=D1D1B(Iq+BD1B)1BD1

其中右侧仅涉及矩阵的逆矩阵。q×q

1个回答

好的,因为您正在执行 FA,所以我假设具有完整的列等级不过,我们需要更多细节。这可能是一个数值问题;您的数据也可能有问题。Bqq<p

你如何计算逆?您是否需要明确的逆,或者可以将计算重新表达为线性系统的解决方案?(即得到为 x求解,这通常更快更稳定)A1bAx=b

发生了什么估计值真的很小/0/负吗?在某种意义上它是关键环节,因为当然是秩不足的,并且在添加之前定义了一个奇异的协方差矩阵,所以你不能反转它。从技术上讲,添加正对角矩阵使其满秩,但很小仍然可能是可怕的病态。DBBDDBB+DD

通常,对异质方差的估计(您的的对角线元素)接近零甚至为负;这些被称为海伍德案。参见例如http://www.technion.ac.il/docs/sas/stat/chap26/sect21.htm(任何FA文本也应该讨论这个问题,这是一个非常古老和众所周知的问题)。这可能是由于模型指定错误、异常值、运气不好、太阳耀斑...... MLE 特别容易出现这个问题,所以如果您的 EM 算法旨在让 MLE 看起来很明显。σi2D

我认为,如果您的 EM 算法正在接近具有此类估计的模式,则可能会失去其正定性。有多种解决方案;就我个人而言,我更喜欢贝叶斯方法,但即使那样你也需要小心你的先验(不正确的先验,甚至是在 0 附近质量太大的正确先验可能会因为基本相同的原因而出现同样的问题)BB+D