2012-12-13 24 views
0

我正在对具有未知协方差矩阵X的特定高斯模型进行最大似然估计,该模型可以包含任意位置的固定元素。当没有固定的元素,我一直用以下日志乔莱斯基参数化,以确保X的正面semidefinity:R:使用固定元素的协方差矩阵的参数化

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的标记的一个例子中的元素我wan't估计,而其他元素是固定的:

> 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 

回答

0

如果我理解正确的话,你要简单地忽略列(或变量),你甚至不需要重新计算从零开始的Cholesky分解,而是有效地将其降级​​,而使用正交变换可以做到这一点,例如吉恩斯旋转。我会通过物理删除该列并从中取出它。

+0

我在原来的问题中增加了一个X的例子。当例子中的第二个和第三个变量都有完全已知的变量和其他变量的协方差时,我可以删除这些行和列并使用X的子矩阵,但是如果我有固定的变量bot而不是协方差或其他方式,此方法不能使用。 –