में एक एक्सटीएस श्रृंखला में रोलिंग विंडो रिग्रेशन को लागू करना मेरे पास 5 मुद्रा जोड़े के लिए 1033 दैनिक रिटर्न पॉइंट्स का एक एक्सटी है, जिस पर मैं रोलिंग विंडो रिग्रेशन चलाने के लिए चाहता हूं, लेकिन रोलप्ली मेरे परिभाषित फ़ंक्शन के लिए काम नहीं कर रहा है जो एलएम का उपयोग करता है()।आर
> lm(USDZAR ~ ., data = fxr)$coefficients
(Intercept) USDEUR USDGBP USDCHF USDCAD
-1.309268e-05 5.575627e-01 1.664283e-01 -1.657206e-01 6.350490e-01
हालांकि मैं एक रोलिंग 62 दिन खिड़की चलाना चाहते हैं:
> head(fxr)
USDZAR USDEUR USDGBP USDCHF USDCAD
2007-10-18 -0.005028709 -0.0064079963 -0.003878743 -0.0099537170 -0.0006153215
2007-10-19 -0.001544470 0.0014275520 -0.001842564 0.0023058211 -0.0111410271
2007-10-22 0.010878027 0.0086642116 0.010599365 0.0051899551 0.0173792230
2007-10-23 -0.022783987 -0.0075236355 -0.010804304 -0.0041668499 -0.0144788687
2007-10-24 -0.006561223 0.0008545792 0.001024275 -0.0004261666 0.0049525483
2007-10-25 -0.014788901 -0.0048523001 -0.001434280 -0.0050425302 -0.0046422944
> tail(fxr)
USDZAR USDEUR USDGBP USDCHF USDCAD
2012-02-10 0.018619309 0.007548205 0.005526184 0.006348533 0.0067151342
2012-02-13 -0.006449463 -0.001055966 -0.002206810 -0.001638002 -0.0016995755
2012-02-14 0.006320364 0.006843933 0.006605875 0.005992935 0.0007001751
2012-02-15 -0.001666872 0.004319096 -0.001568874 0.003686840 -0.0015009759
2012-02-16 0.006419616 -0.003401364 -0.005194817 -0.002709588 -0.0019044761
2012-02-17 -0.004339687 -0.003675992 -0.003319899 -0.003043481 0.0000000000
मैं आसानी से एक एल एम उस पर संपूर्ण डेटा सेट के लिए अन्य जोड़े के खिलाफ USDZAR मॉडल करने के लिए चला सकते हैं: यहाँ अपने डेटा है समय के साथ इन गुणांकों के विकास प्राप्त करने के लिए, तो मैं एक समारोह dolm जो ऐसा करता है बनाने के लिए:
> dolm
function(x) {
return(lm(USDZAR ~ ., data = x)$coefficients)
}
लेकिन जब मैं इस पर rollapply चलाने मैं निम्नलिखित मिल:
> rollapply(fxr, 62, FUN = dolm)
Error in terms.formula(formula, data = data) :
'.' in formula and no 'data' argument
अपनी ही काम करता है पर ठीक भी dolm (FXR) यह है कि:
> dolm(fxr)
(Intercept) USDEUR USDGBP USDCHF USDCAD
-1.309268e-05 5.575627e-01 1.664283e-01 -1.657206e-01 6.350490e-01
यहाँ क्या हो रहा है? ऐसा लगता है कि डॉल्म एक आसान काम है उदाहरण के लिए:
> dolm <- edit(dolm)
> dolm
function(x) {
return(mean(x))
}
> rollapply(fxr, 62, FUN = dolm)
USDZAR USDEUR USDGBP USDCHF USDCAD
2007-11-29 -1.766901e-04 -6.899297e-04 6.252596e-04 -1.155952e-03 7.021468e-04
2007-11-30 -1.266130e-04 -6.512204e-04 7.067767e-04 -1.098413e-03 7.247315e-04
2007-12-03 8.949942e-05 -6.406932e-04 6.637066e-04 -1.154806e-03 8.727564e-04
2007-12-04 2.042046e-04 -5.758493e-04 5.497422e-04 -1.116308e-03 7.124593e-04
2007-12-05 7.343586e-04 -4.899982e-04 6.161819e-04 -1.057904e-03 9.915495e-04
किसी भी मदद की बहुत सराहना की। अनिवार्य रूप से मैं चाहता हूं कि 62Z दिन की खिड़की पर USDZAR ~ USDEUR + USDGBP + USDCHF + USDCAD के प्रतिगमन के लिए भार प्राप्त करना है।
भयानक धन्यवाद। हां मैंने अभी भी बहुत खेल के बाद इसे बाहर काम किया। मुझे मूर्ख। by.column = निश्चित रूप से गलत! बहुत बहुत धन्यवाद। बस अपने चिड़ियाघर डॉक्टर बीटीडब्ल्यू पढ़ रहा था। उत्तम सामग्री। मुझे लगता है कि रोलप्ली थोड़ा उलझन में है कि एलएम() पूरे एक्सटीएस पर काम करता है, लेकिन यह इसके हिस्सों पर रोलप्ली() द्वारा लौटाया नहीं जाता है। एक उचित रूप से एक और xts वापस करने के लिए रोलप्ली की उम्मीद कर सकता है जो अभी भी एलएम() के तहत काम करेगा या क्या मुझे कुछ याद आ रहा है? मेला culpa by.column FALSE हालांकि। इसके लिए कोई बहाना नहीं है ... –
क्या याद किया जाता है कि 'रोलप्ली' एक्सटी का हिस्सा नहीं है लेकिन यह चिड़ियाघर का हिस्सा है और इसके प्रेषण 'rollapply.zoo' है। –
इसे स्पष्ट करने के लिए धन्यवाद। अभी तक: > fxr <- चिड़ियाघर (fxr) > कक्षा (fxr) [1] "चिड़ियाघर" > रोलप्ली (एफएक्सआर, 62, फ़ंक्शन (एक्स) कोफ (एलएम (यूएसडीजेएआर ~ एक्स, डेटा = एक्स)), by.column = FALSE) model.frame.default में त्रुटि (फॉर्मूला = USDZAR ~ x, डेटा = x, drop.unused.levels = TRUE): 'डेटा' डेटा.फ्रेम होना चाहिए, मैट्रिक्स या नहीं सरणी तो हमें अभी भी यह समस्या है। मैं समझता हूं ... आर के पास इस तरह के मुद्दे के आसपास बहुत कुछ है लेकिन अभी भी। हमारे यहां क्या है एलएम पूरी चिड़ियाघर वस्तु पर काम करता है लेकिन इसके रोलप्ले सबसेट पर काम नहीं करता है। –