Как рассчитать параметры суммы коррелированных гауссовых вариаций? - PullRequest
0 голосов
/ 10 февраля 2019

enter image description here

Тривиально для независимого случая.

Согласно Wiki, если они коррелированы, ковариация Z равна enter image description here

последний член в квадратном корне на самом деле является ковариацией X и Yа именно cov (X, Y).Я просто не знаю, как вычислить этот термин.У вас есть идеи?

1 Ответ

0 голосов
/ 11 февраля 2019

Вычисление ρ на самом деле включает вычисление Cov (X, Y), поэтому ваше последнее уравнение математически верно, но не полезно.Давайте сразу перейдем к оценке ковариации.

В дальнейшем я предполагаю, что вы знакомы и относительно знакомы с определениями среднего значения, дисперсии и ковариации и понимаете разницу между параметром и его оценкой..

Сначала напомним, что:

σ x 2 = E [(X-μ x ) 2 ] = E [X 2 ] - E [X] 2 .

Аналогично:

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

Обратите внимание, фактически, что это означает, что дисперсия - это просто особый случай ковариации, т. Е. Var (X) = Cov (X, X)!

По оценке.Оценка максимального правдоподобия для дисперсии в основном определяется путем усреднения данных, соответствующих слагаемым в крайних правых равенствах выше.Оценка отклонения:

с x 2 = (Сумма (x i 2 ) -n * (x_bar 2 )) / n

, где n - размер выборки, а x_bar - среднее значение выборки x.(Разделите на (n-1), а не на n, если вы предпочитаете несмещенную оценку для MLE.) Учитывая взаимосвязь между дисперсией и ковариацией, указанную выше, вас не должно удивлять, обнаружив, что оценка MLE для ковариации:

c = (Сумма (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)
...