Calculer roulement de corrélation à l'aide de rollapply
J'ai zoo objet avec 10000+ lignes.
> head(tt)
A B
2007-01-04 0.005945924 0.0021167475
2007-01-05 -0.004201991 -0.0080020024
2007-01-08 0.001740897 0.0045804104
2007-01-09 0.000000000 -0.0008163931
2007-01-10 -0.004503531 0.0032615812
2007-01-11 -0.005841138 0.0043863282
J'ai essayé les variations de la ligne suivante, mais en vain.
rollapply(tt, 21, function(x) cor(x[,1],x[,2]))
Chaque entrée a donné la corrélation de 1, on dirait qu'il est de ramasser le 1 hors de la diagonale de la matrice de corrélation.
2013-11-25 1 1
2013-11-26 1 1
2013-11-27 1 1
2013-11-29 1 1
2013-12-02 1 1
2013-12-03 1 1
Ce que je veux vraiment, c'est -0.4649, comme suit
> cor(tt)
A B
A 1.0000000 -0.4649881
B -0.4649881 1.0000000
OriginalL'auteur simon | 2013-12-19
Vous devez vous connecter pour publier un commentaire.
Pour votre cas simple, vous pouvez utiliser
TTR::runCor
.OriginalL'auteur Joshua Ulrich
Essayer quelque chose comme cela:
En d'autres termes, je pense que vous pourriez juste besoin de l'
by.column=FALSE
argument.Fonctionne avec un objet zoo trop
Modifier pour traiter d'une question dans le commentaire sur l'ajout d'une autre colonne.
Vous pouvez spécifier les colonnes que vous souhaitez utiliser dans la
cor
fonction.by.column=FALSE
indique que la fonction ne doit pas être appliqué à chaque colonne séparément. Siby.column=TRUE
, alors la fonction sera appliquée pour chaque colonne séparément, et c'est le comportement par défaut.J'ai édité ma réponse pour répondre à vos commentaires.
merci pour les commentaires, j'ai posé la même question sur plusieurs colonnes à Josué, Ulrich et puis vu vos modifications, donc j'ai juste supprimé, apoloiges. Si j'avais 100 colonnes de données est-il un moyen plus efficace pour exécuter le cor de la fonction plutôt que de spécifier chaque paire? Cela pourrait-il être obtenus en utilisant l'un de l'appliquer les fonctions de la famille?
Vous pouvez utiliser cette fonction dans
rollapply
à gérer n'importe quel nombre de colonnes:function(x) cor(x)[lower.tri(cor(x))]
OriginalL'auteur Jota
OriginalL'auteur Gucci148