créer HT un nouveau vecteur dans le cadre de données qui prend corrélation des vecteurs existants

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

  •  20-09-2019
  •  | 
  •  

Question

J'ai une série temporelle de deux indices, chaque ligne représentant le cours de clôture le même jour. Je voudrais aller à la ligne 30 et LookBack au cours des 30 derniers « jours » et calculer la corrélation pearson. Et puis stocker cette valeur dans un nouveau vecteur. Ensuite, répétez le calcul pour toute la série de temps.

Il est une tâche triviale dans Excel, donc je suis convaincu qu'il peut être fait dans l'affaire R. Je ne sais pas la méthode à utiliser si.

Était-ce utile?

La solution

Il y a plusieurs façons de le faire (comme avec tout dans R). Je recommande toujours à l'aide d'une série chronologique lorsque vous travaillez avec des données de séries chronologiques.

Le paquet zoo est probablement le paquet de séries chronologiques les plus populaires (mais vous pouvez également regarder d'autres, comme XTS, TimeSeries, son, 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")

Vous trouverez également la fonction de chart.RollingCorrelation dans le package PerformanceAnalytics utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top