Как рассчитать среднее значение коррелированных значений?
Допустим, следующий вектор:
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) для получения результата.