Variables en retard dans R
Quel est le moyen le plus efficace de faire une matrice de variables retardées en R pour une variable arbitraire (c'est à dire non de temps réguliers de la série)
Par exemple:
Entrée:
x <- c(1,2,3,4)
2 gal, sortie:
[1,NA, NA]
[2, 1, NA]
[3, 2, 1]
[4, 3, 2]
source d'informationauteur James in Ottawa
Vous devez vous connecter pour publier un commentaire.
Vous pouvez atteindre cet objectif en utilisant le haut-
embed()
fonction, d'où son deuxième dimension argument est équivalent à ce que vous avez appelé 'retard':embed()
a été discuté dans un réponse précédente par Joshua Reich. (Notez que j'ai ajouté en x avec NAs à reproduire votre sortie désirée).Il n'est pas particulièrement bien son nom, mais il est tout à fait utile et puissant pour les opérations impliquant des fenêtres coulissantes, telles que le laminage des sommes et des moyennes mobiles.
Utiliser un
class
pour vos objets; base R ats
qui a unlag()
de fonctionner sur. Notez que cests
objets est venu à partir d'un moment "delta" ou "fréquence" où constant: mensuelle ou trimestrielle des données macroéconomiques de la série.De données irrégulières telles que (d'affaires)tous les jours, utilisez la zoo ou xts paquets qui peut également traiter (très bien!) avec des décalages. Pour aller plus loin à partir de là, vous pouvez utiliser des packages comme dynlm ou dlm permettre dynamique des modèles de régression avec des décalages.
Le groupe de points de Vue sur les Séries temporelles, Économétrie, Finance ont tous plus de pointeurs.
La
running
fonction dans legtools
forfait ne comprend plus ou moins ce que vous voulez:La méthode qui fonctionne le mieux pour moi
est d'utiliser le
lag
fonction de ladplyr
paquet.Exemple: