如何计算相关高斯变量总和的参数?

时间:2019-02-10 13:54:29

标签: distribution gaussian probabilistic-programming

enter image description here

对于独立案例而言,这是微不足道的。

根据Wiki,如果它们相互关联,则Z的协方差为enter image description here

平方根中的最后一项实际上是X和Y的协方差,即cov(X,Y)。我只是不知道如何计算这个术语。你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

计算ρ实际上涉及计算Cov(X,Y),因此您的最后一个方程在数学上是正确的,但无济于事。让我们直接去估计协方差。

接下来,我假设您熟悉并比较熟悉均值,方差和协方差的定义,并了解参数与其估计量之间的差异。

首先,请记住:

  

σ x 2 = E [(X-μ x 2 ] = E [X < sup> 2 ]-E [X] 2

类似地:

  

Cov(X,Y)= E [(X-μ X )(Y-μ Y )] = E [XY]-E [X] E [Y]。

实际上,请注意,这意味着方差只是协方差的一种特殊情况,即Var(X)= Cov(X,X)!

继续估算。基本上,通过对与以上最右边等式中的项相对应的数据求平均,来找到方差的最大似然估计器。方差估计量为:

  

s x 2 =(Sum(x i 2 )-n *(x_bar 2 ))/ n

其中,n是样本大小,x_bar是x样本的平均值。 (如果您更喜欢无偏估计量而不是MLE,则除以(n-1)而不是n。)鉴于上面指出的方差和协方差之间的关系,发现协方差的MLE估计量为:< / p>

  

c =(Sum(x i * y i )-n * x_bar * y_bar)/ n

这将我们引向您的目标:

  

s x + y 2 = s x 2 + s y 2 + 2 * c,

然后从这里开始取平方根即可得到标准偏差。

使用伪代码:

function std_dev_sum(x_vector, y_vector):
  n = x_vector.length
  fail "different size vectors" unless y_vector.length == n   
  sum_x = sum_y = sum_x_sqr = sum_y_sqr = sum_xy = 0.0
  for each index i:
    x = x_vector[i]
    y = y_vector[i]
    sum_x += x
    sum_y += y
    sum_x_sqr += x * x
    sum_y_sqr += y * y
    sum_xy += x * y
  x_bar = sum_x / n
  y_bar = sum_y / n
  var_x = sum_x_sqr / n - x_bar * x_bar
  var_y = sum_y_sqr / n - y_bar * y_bar
  cov = sum_xy / n - x_bar * y_bar
  return Sqrt(var_x + var_y + 2.0 * cov)