Как рассчитать среднее значение коррелированных значений?

Допустим, следующий вектор:

x = c( 0.5, 0.4, 0.8 )

где значения x[1] и x[2] коррелируют с матрицей корреляции:

     x[1]  x[2]  x[3]
x[1]  1    0.8    0
x[2]  0.8  1      0
x[3]  0    0      1

Я хочу вычислить среднее значение х, но с учетом корреляций.

Я попытался с обобщенным методом наименьших квадратов с помощью lm(), но это подразумевает использование горизонтальной функции, а lm () не нравится с poly(x,0). Я искал использование пользовательской функции, но она должна возвращать параметр, который будет установлен...

В качестве конкретного примера, давайте возьмем три вида дерева эволюции:

library(ape)
## The evolution tree
t=rtree(3)
## Plot it, you notice that two are closer to each other than the 3rd one
plot(t)
## Correlation matrix
vcv.phylo(t,corr=T)
      t1        t3 t2
t1 1.0000000 0.4019544  0
t3 0.4019544 1.0000000  0
t2 0.0000000 0.0000000  1

Любой совет приветствуется!

1 ответ

Решение

Ответ можно найти в этой статье ЦЕРН:

ftp://ftp.desy.de/pub/preprints/cern/ppe/ppe94-185.ps.gz

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

Смотрите уравнение (2) на странице (1) для получения результата.

Другие вопросы по тегам