XTS problème avec dynlm
-
26-09-2019 - |
Question
Je suis en train d'utiliser XTS autant que possible dans mon travail de séries chronologiques comme il semble être le moyen suggéré de faire les choses. Cependant, j'obtenir une étrange erreur.
CPI.NSA et INT sont des objets XTS.
library(dynlm)
CPI.NSA.x <- CPI.NSA[dr1]
INT.x <- INT[dr1]
CPI.NSA.z <- as.zoo(CPI.NSA.x)
INT.z <- as.zoo(INT.x)
> dynlm(CPI.NSA.z ~ INT.z + L(CPI.NSA.z, 1))
Time series regression with "zoo" data:
Start = 1953-02-01, End = 1971-06-01
Call:
dynlm(formula = CPI.NSA.z ~ INT.z + L(CPI.NSA.z, 1))
Coefficients:
(Intercept) INT.z L(CPI.NSA.z, 1)
-0.0006795 1.0440174 -0.0869050
> dynlm(CPI.NSA.x ~ INT.x + L(CPI.NSA.x, 1))
Error in `[.xts`(a, match0(indexes, attr(a, "index")), , drop = FALSE) :
i is out of range
Il était je crois comprendre que chaque fois que j'ai une fonction qui prend zoo, je peux passer un XTS et il devrait fonctionner, mais il est clair que n'est pas le cas ici.
Qu'est-ce qui se passe?
Merci pour l'aide.
La solution
Vous dites
Il a été je crois comprendre que chaque fois J'ai une fonction qui prend zoo, je peut transmettre un XTS et il devrait simplement le travail, mais il est clair que ce n'est pas le cas ici.
et je me demande si vous pensez que zoo
et xts
sont identiques. Ils ne sont pas - xts
étend zoo
de manière utile aux prix de limiter les types d'index à temps réel ou des objets la date (plutôt que des indices arbitraires comme pour zoo
).
, dynlm
est écrit par Achim Zeileis qui est l'un des auteurs de zoo
que je ne vois pas pourquoi vous ne pouvez pas garder vos données en xts
mais passe ensuite à zoo
(via, par exemple, as.zoo(foo)
) lors de l'appel fonctions dynlm
.
Il n'y a pas de magie "baissés. Mais vous pouvez le faire à la main. Ce qui est ce que vous faites dans la première partie de votre question. Ok?
Autres conseils
la réponse simple est que le zoo et XTS ne sont pas complètement interchangeables, bien que parfois ils sont.
Ceci est un très bon exemple d'un moment où ils ne sont pas interchangeables.