Quelqu'un peut-il m'aider à courir dans R VAR (1) (autorégression vectorielle) avec une fenêtre roulante sur une série chronologique multiple ET en quelque sorte stocker les Bcoef
(coefficients) et résiduels? Il semble que je ne peux pas trouver un moyen de tout faire à la fois.VAR (1) fenêtre glissante (Autorégression vectorielle)
Mon code: (en utilisant des paquets library(vars)
pour vecteur autoregressions
varcoef <- function(x) Bcoef(VAR(x, p=1, type =c("const"), lag.max = NULL))
varr <- function(x) resid(VAR(x, p=1, type =c("const"), lag.max = NULL))
rolling.var.coef <- rollapply(eur.var,width=120,varcoef, by.column=FALSE)
var.resids<-as.data.frame(rollapplyr(eur.var,width=120,varr, by.column=FALSE))
les deux problèmes avec cette approche:
- I ont 3000 jours et les matrices de sortie
rolling.var.coef
etvar.resids
sont également de la longueur 3000, alors que les longueurs doivent être 7x3000 (il y a 7 coefficients) et 119 * 3000 (chaque régression a 119 résidus), donc il calcule le VAR (1) seulement pour les quelques premiers jours - ET la chose la plus importante: comment le faire dans une fonction, pas deux. parce que la sortie est deux matrices
Voici la vue approximative de mes données - 3000 jours comme ceci.
V1 V2 V3 V4 V5 V6 V7
2016-05-10 -0.34 -0.35 -0.37 -0.40 -0.41 -0.30 0.14
2016-05-09 -0.36 -0.35 -0.37 -0.40 -0.41 -0.30 0.15
Bienvenue sur Stacko verflow. S'il vous plaît jeter un oeil à des conseils sur la façon de créer un [exemple minimum] (http://stackoverflow.com/help/mcve) et ce post sur [produisant un bon exemple] (http://stackoverflow.com/questions/5963269/comment-faire-un-grand-r-reproductible-exemple) dans R. Aussi, cela vous dérangerait-il d'inclure dans votre question les paquets que vous utilisez? 'Bcoef', par exemple, ne fait pas partie de la base R. – lmo
Merci pour le commentaire! ajouté le nom du paquet .. – Katia
Comme mentionné dans les liens, c'est aussi une bonne idée d'inclure un exemple de jeu de données (probablement plus petit que votre original) qui reproduit votre problème pour les personnes à travailler avec. Jetez un coup d'oeil à la première réponse du lien de l'exemple R pour voir comment utiliser 'dput'. – lmo