0

我正在对具有未知协方差矩阵 X 的某些高斯模型进行最大似然估计,该矩阵可以包含任意位置的固定元素。当没有固定元素时,我一直在使用以下 log-cholesky 参数化来确保 X 的正半定义:

diag(X)<-exp(0.5*param[1:k]) 
X[lower.tri(X)]<-param[-(1:k)]
X<-crossprod(X)

如果某些行和列被固定为零,这当然很容易通过不更新矩阵的这些部分来处理:

nz<-diag(X)>0
diag(X)[nz]<-exp(0.5*param[1:k]) #different k now
X[nz,nz][lower.tri(X[nz,nz])]<-param[-(1:k)]
X[nz,nz]<-crossprod(X[nz,nz])

这可以推广到任何固定的行/列情况。但是,如果只有这样的行/列的对角线元素(即相应变量的方差)是固定的,或者只有与其他变量的相关性呢?有没有这样做的一般方法?

这是 X 的示例,NA 标记了我不想估计的元素,而其他元素是固定的:

   > x
        [,1] [,2] [,3] [,4] [,5]
   [1,]   NA    0    0   NA   NA
   [2,]    0    0    0  0.0  0.0
   [3,]    0    0    1  0.0  0.0
   [4,]   NA    0    0   NA  0.5
   [5,]   NA    0    0  0.5   2
4

1 回答 1

0

如果我理解正确,您想简单地忽略列(或变量),您甚至不需要从头开始重新计算 Cholesky 分解,而是有效地对其进行降级,而您可以使用正交变换(例如 Givens 旋转)来进行。我会通过物理删除该列并从那里取出它来解决这个问题。

于 2012-12-13T10:27:36.773 回答