HT Crie um novo vetor no quadro de dados que leva a correlação dos vetores existentes

StackOverflow https://stackoverflow.com/questions/2467019

  •  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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top