2013-10-28 4 views
0

У меня есть кадр данных с ежедневными данными в R (148 столбцов на 6230 строк). Я хочу найти коэффициенты корреляции с помощью скользящих окон длиной 600 (дней) с сдвигом окон 5 (дней) и попыткой генерации 1220 корреляционных матриц (приблизительно). Все примеры, которые я видел, использовали только один информационный вектор. Есть простой способ найти эти корреляционные матрицы с помощью скользящего окна? Буду признателен за любое предложение.Скользящее окно с использованием R

+0

Добро пожаловать к переполнению стека , Пожалуйста, прочитайте [Контрольный список вопросов переполнения стека] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) и [о каких темах я могу спросить здесь?] (Http://stackoverflow.com/help/on-topic) перед публикацией. Вопросы, требующие кода, должны показать некоторые усилия («попытки решения, почему они не сработали и ожидаемые результаты»), иначе ваш вопрос будет отклонен и закрыт как не по теме. – zero323

ответ

2

Если M является входной матрицей, то каждая строка out одна корреляционной матрица растянута столбец за столбцом:

library(zoo) 
out <- rollapply(M, 600, by = 5, function(x) c(cor(x)), by.column = FALSE) 

Они могли бы быть преобразованы в список корреляционных матриц, в случае необходимость:

L <- lapply(1:nrow(out), function(i) matrix(out[i, ], ncol(M))) 

или как массив:

simplify2array(L) 
Смежные вопросы