Взвешенная корреляция Пирсона?

У меня есть 2396x34 двойная матрица с именем y , в которой каждая строка (2396) представляет отдельную ситуацию состоящий из 34 последовательных временных сегментов.

У меня также есть числовой [34] с именем x , который представляет одну ситуацию из 34 последовательных временных сегментов.

В настоящее время я вычисляю корреляцию между каждой строкой в ​​ y и x следующим образом:

crs [, 2]

Теперь мне нужно заменить функцию cor в приведенном выше утверждении на взвешенную корреляцию. Весовой вектор xy.wt имеет длину 34 элемента, так что каждому из 34 последовательных временных сегментов может быть назначен другой весовой коэффициент.

Я нашел функцию взвешенной ковариационной матрицы cov.wt и подумал, что если я сначала масштабирую данные, она должна работать так же, как корр. функция. Фактически, вы также можете указать функции, чтобы она возвращала корреляционную матрицу. К сожалению, не похоже, что я могу использовать его таким же образом, потому что я не могу предоставить две свои переменные ( x и y ) по отдельности.

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

Изменить: Возможно, некоторая математическая функция могла бы быть применена к y до функции cor , чтобы получить те же результаты, которые я ищу. Может быть, если я умножу каждый элемент на xy.wt / sum (xy.wt) ?

Edit # 2 Я нашел другую функцию corr в пакете boot .

corr(d, w = rep(1, nrow(d))/nrow(d))

d   
A matrix with two columns corresponding to the two variables whose correlation we wish to calculate.

w   
A vector of weights to be applied to each pair of observations. The default is equal weights for each pair. Normalization takes place within the function so sum(w) need not equal 1.

Это тоже не то, что мне нужно, но ближе.

Редактировать № 3 Вот код для генерации данных, с которыми я работаю:

x<-cumsum(rnorm(34))
y<- t(sapply(1:2396,function(u) cumsum(rnorm(34))))
xy.wt<-1/(34:1)

crs<-cor(t(y),x) #this works but I want to use xy.wt as weight

13
задан Reinstate Monica - G. Simpson 27 February 2012 в 08:39
поделиться