R - 估计向量的函数及其协方差矩阵

时间:2013-07-28 13:39:25

标签: r covariance nonlinear-functions taylor-series

给定变量向量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库?

1 个答案:

答案 0 :(得分:0)

您可以使用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)

包括粗麻布将给出更好的近似值。