【问题标题】:R - functions of an estimated vector and its covariance matrixR - 估计向量及其协方差矩阵的函数
【发布时间】:2013-07-28 08:14:02
【问题描述】:

给定变量向量 x[1:3] 及其协方差矩阵 V[1:3,1:3] 的估计值,我寻求一种实用程序,它将线性或非线性函数应用于两个或多个变量,例如作为

x[4] = x[1] + x[2]

x[5] = x[4] / x[3]。

x[4] 和 x[5] 的估计值需要简单的代数。

包含线性变换x[4]的协方差矩阵就是(H * V * H'),其中

H =

| 1 0 0 | 
| 0 1 0 |
| 0 0 1 |
| 1 1 0 |

添加 x[5] 的协方差矩阵可以用 a 和 b 项的一阶泰勒级数近似来估计:

H =

| 1 0 0 0 | 
| 0 1 0 0 |
| 0 0 1 0 |
| 1 1 0 0 |
| 0 0 a b |

在概念上,我知道算法应该如何工作。但这需要大量的编码,特别是如果我在用户界面中尝试某种通用方程解析器。

是否有任何现有的 R 库可以解决这个问题?

【问题讨论】:

    标签: r covariance nonlinear-functions taylor-series


    【解决方案1】:

    您可以使用numDeriv 包对梯度进行数值估计, 或者Ryacas,如果你想要一个精确的值。

    library(numDeriv)
    f <- function(x) c( x, x[1] + x[2], ( x[1] + x[2] ) / x[3] )
    x0 <- c(1,1,1)
    V <- diag(1:3)
    J <- jacobian(f, x0)
    J
    #      [,1] [,2] [,3]
    # [1,]    1    0    0
    # [2,]    0    1    0
    # [3,]    0    0    1
    # [4,]    1    1    0
    # [5,]    1    1   -2
    f(x0)             # (Biased) estimator of the mean of f(X)
    J %*% V %*% t(J)  # Estimator of the variance of f(X)
    

    包括粗麻布将提供更好的近似值。

    【讨论】:

    • 谢谢文森特。这正是我要找的!
    • 相关问题:是否有库函数会施加不等式约束,例如 (x[5] >= 0)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2019-04-15
    • 2020-04-13
    • 1970-01-01
    • 2013-02-01
    相关资源
    最近更新 更多