Wednesday 27 December 2017

Cálculo da média móvel de 60 dias


Suponha que você tem N séries de tempo (xts classe) Você pode sugerir uma maneira (por exemplo, uma função existente) para calcular a correlação média de rolamento (rolando = janela em movimento)? Então você tem (por exemplo) 10 séries de tempo. O primeiro passo é calcular a correlação de 60 dias entre o primeiro eo segundo, primeiro e terceiro, primeiro e quarto, e assim por diante. O segundo passo é calcular a média desse valor de correlação. Fim do primeiro ciclo. Depois de avançar de um dia e começar todo o processo (primeiro e segundo passo) Os resultados são uma série temporal com os valores médios de correlação. Alguém pode ajudar a encontrar uma maneira eficiente de fazer isso? Esta é a estrutura dos meus dados: Suponha que você tenha todas as séries no quadro de dados chamado X, nas primeiras dez variáveis. Então: Se você não os tiver em uma moldura de dados, então eu acho que a maneira mais fácil é primeiro para fazer um quadro de dados :) - desde que sua série de tempo são todos do mesmo comprimento. (editar) Para excluir a diagonal 1 da matriz de correlação, você pode primeiro definir uma função que calcula a média de todos os valores abaixo da diagonal (ou acima do diag, não faz diferença): (Não testado, mas eu acho que shoudlwork) Respondeu Apr 9 '14 às 11:05 Obrigado lebatsnok. Está correto que em sua função a média é calculada com o 1? Uma matriz de correlação típica tem 1 na diagonal. Como excluir aqueles no cálculo da média? & Ndash; Fryc Apr 9 '14 at 16:00 Ok agora talvez seja mais fácil definir primeiro uma função que calcula a média da matriz de correlação excluindo a diagonal e, em seguida, usar sapply. Consulte editar acima & ndash; Lebatsnok Apr 9 '14 at 18:35

No comments:

Post a Comment