HT Crie um novo vetor no quadro de dados que leva a correlação dos vetores existentes
-
20-09-2019 - |
Pergunta
Eu tenho uma série temporal de dois índices, com cada linha representando o preço de fechamento no mesmo dia. Eu gostaria de ir para a linha 30 e procurar nos últimos 30 'dias' e calcular a correlação de Pearson. E depois armazene esse valor em um novo vetor. Em seguida, repita o cálculo para toda a série temporal.
É uma tarefa trivial no Excel, por isso estou convencido de que isso pode ser feito em R. Não sei o método a ser usado.
Solução
Existem muitas maneiras de fazer isso (como tudo em R). Eu sempre recomendo usar uma série temporal ao trabalhar com dados de séries temporais.
o zoo
O pacote é provavelmente o pacote de séries temporais mais populares (embora você também possa olhar para outras pessoas, como XTS, Timesseries, ITS, FTS):
library(zoo)
z <- zoo(data.frame(a=1:50, b=3:52), as.Date(1:50))
rollapply(z, 30, cor, by.column=F, align = "right")
Você também pode encontrar o chart.RollingCorrelation
função no PerformanceAnalytics
Pacote útil.