【问题标题】:R: Parametrization of covariance matrix with fixed elementsR:具有固定元素的协方差矩阵的参数化
【发布时间】:2012-12-13 18:32:54
【问题描述】:

我正在对具有未知协方差矩阵 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

【问题讨论】:

    标签: r optimization matrix constraints covariance


    【解决方案1】:

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

    【讨论】:

    • 我在原始问题中添加了一个 X 示例。当示例中的第二个和第三个变量与其他变量具有完全已知的方差和协方差时,我可以删除这些行和列并使用 X 的子矩阵,但如果我有固定方差机器人而不是协方差或其他方式,这个方法不能用。
    猜你喜欢
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 2019-04-15
    • 2011-08-15
    • 1970-01-01
    • 2020-01-28
    相关资源
    最近更新 更多