سؤال
أحاول استخدام XTS قدر الإمكان في عمل سلسلتي الزمنية كما يبدو أنها الطريقة المقترحة لفعل الأشياء. ومع ذلك ، لدي خطأ غريب.
CPI.NSA و int هي كائنات 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
لقد فهمت أنه كلما كان لدي وظيفة تأخذ حديقة الحيوان ، يمكنني تمريرها XTS ويجب أن تعمل فقط ، ولكن من الواضح أن هذا ليس هو الحال هنا.
ماذا يحدث هنا؟
شكرا للمساعدة.
المحلول
قول انت
لقد فهمت أنه كلما كان لدي وظيفة تأخذ حديقة الحيوان ، يمكنني تمريرها XTS ويجب أن تعمل فقط ، ولكن من الواضح أن هذا ليس هو الحال هنا.
وأنا أتساءل إذا كنت تعتقد ذلك zoo
و xts
متطابقة. هم ليسوا -- xts
يمتد zoo
بطرق مفيدة في أسعار أنواع الفهرس على كائنات الوقت أو التاريخ الفعلي (بدلاً من المؤشرات التعسفية كما zoo
).
الآن، dynlm
كتبه أخيم زيليس الذي هو أحد مؤلفي zoo
بما أنني لا أرى لماذا لا يمكنك الاحتفاظ ببياناتك xts
ولكن بعد ذلك تمر إلى zoo
(عبر ، على سبيل المثال ، as.zoo(foo)
) عند الاتصال dynlm
المهام.
لا يوجد سحر "هبوط". ولكن يمكنك أن تفعل ذلك باليد. وهو ما تفعله في الجزء الأول من سؤالك. حسنا؟
نصائح أخرى
الإجابة البسيطة هي أن حديقة الحيوان و XTs ليست قابلة للتبديل تمامًا ، على الرغم من أنها في بعض الأحيان.
هذا مثال جيد حقًا على الوقت الذي لا يكون فيه قابلاً للتبديل.