如果我们知道x2 = rho * x1,x1〜N0.127,0.053,x2〜N0.106,0.09,如何通过R代码估算covx1,x2

问题描述

我已经通过rnorm()函数生成了x1和x2,对于有限的样本,估计似乎不稳定。因此,我想知道如何通过公式或模拟方法来计算cov(x1,x2)。

解决方法

因此,您有x2 = rho * x1。 cov(x1,x2)的定义为E [(x1-E [x1])(x2-E [x2])]。因此:

cov(x1,x2)= E [(x1-E [x1])(x2-E [x2])] = E [(x1-E [x1])(rho * x1-E [rho * x1 ])] = E [(x1-E [x1])(rho *(x1-E [x1]))] = E [(x1-E [x1])(x1-E [x1])] * rho = rho * E [(x1-E [x1])^ 2] = rho * Var(x1)

因此,cov(x1,x2)= rho * Var(x1)。

但是,您的问题有误。 您说E [x1] = 0.127 ans E [x2] = 0.106,所以由于x1和x2是正态分布,因此rho = 0.106 / 0.127 Var(x1)???

您可以在这里看到

> a = rnorm(100000,0.127,sqrt(0.053)) #generate some samples
> b = 0.106/0.127 * a
> cov(a,b) #empirical correlation
[1] 0.04406267
> 0.106/0.127 * var(a) #expected correlation
[1] 0.04406267
> mean(a)
[1] 0.1276717
> mean(b) #mean of a and b is correct
[1] 0.1065606
> var(a)
[1] 0.05279207
> var(b) #but the variance not
[1] 0.03677672