एक छोटी बहुभिन्नरूपी समय श्रृंखला का पूर्वानुमान करने के लिए कम से कम बेवकूफ तरीका


16

मुझे समय की 29 वीं इकाई के लिए निम्नलिखित 4 चर का अनुमान लगाने की आवश्यकता है। मेरे पास लगभग 2 साल का ऐतिहासिक डेटा है, जहां 1 और 14 और 27 सभी समान अवधि (या वर्ष का समय) हैं। अंत में, मैं , , , और पर एक ओक्साका-ब्लाइंडर स्टाइल अपघटन कर रहा हूं ।डब्ल्यूwwसीपी

time    W               wd              wc               p
1       4.920725        4.684342        4.065288        .5962985
2       4.956172        4.73998         4.092179        .6151785
3       4.85532         4.725982        4.002519        .6028712
4       4.754887        4.674568        3.988028        .5943888
5       4.862039        4.758899        4.045568        .5925704
6       5.039032        4.791101        4.071131        .590314
7       4.612594        4.656253        4.136271        .529247
8       4.722339        4.631588        3.994956        .5801989
9       4.679251        4.647347        3.954906        .5832723
10      4.736177        4.679152        3.974465        .5843731
11      4.738954        4.759482        4.037036        .5868722
12      4.571325        4.707446        4.110281        .556147
13      4.883891        4.750031        4.168203        .602057
14      4.652408        4.703114        4.042872        .6059471
15      4.677363        4.744875        4.232081        .5672519
16      4.695732        4.614248        3.998735        .5838578
17      4.633575        4.6025          3.943488        .5914644
18      4.61025         4.67733         4.066427        .548952
19      4.678374        4.741046        4.060458        .5416393
20      4.48309         4.609238        4.000201        .5372143
21      4.477549        4.583907        3.94821         .5515663
22      4.555191        4.627404        3.93675         .5542806
23      4.508585        4.595927        3.881685        .5572687
24      4.467037        4.619762        3.909551        .5645944
25      4.326283        4.544351        3.877583        .5738906
26      4.672741        4.599463        3.953772        .5769604
27      4.53551         4.506167        3.808779        .5831352
28      4.528004        4.622972        3.90481         .5968299

मेरा मानना ​​है कि को प्लस माप त्रुटि द्वारा अनुमानित किया जा सकता है , लेकिन आप देख सकते हैं कि हमेशा अपशिष्ट, सन्निकटन त्रुटि, या चोरी के कारण उस मात्रा से अधिक हो जाती है।डब्ल्यूपीw+(1-पी)wसीडब्ल्यू

यहाँ मेरे 2 प्रश्न हैं।

  1. मेरा पहला विचार 1 अंतराल और एक बहिर्जात समय और अवधि चर के साथ इन चर पर वेक्टर ऑटोरेजेशन की कोशिश करना था, लेकिन यह एक बुरा विचार जैसा लगता है कि मेरे पास कितना कम डेटा है। क्या कोई ऐसी समय-श्रृंखला विधियाँ हैं जो (1) "सूक्ष्म-संख्यात्मकता" के सामने बेहतर प्रदर्शन करती हैं और (2) चर के बीच की कड़ी का फायदा उठा पाएंगी?

  2. दूसरी ओर, VAR के लिए आइगेनवेल्यूज़ के सभी 1 से कम हैं, इसलिए मुझे नहीं लगता कि मुझे गैर-स्थिरता के बारे में चिंता करने की ज़रूरत है (हालांकि डिकी-फुलर परीक्षण का सुझाव अन्यथा)। भविष्यवाणियां ज्यादातर समय के रुझान के साथ लचीले यूनीवेट मॉडल से अनुमानों के अनुरूप लगती हैं, और को छोड़कर , जो कम हैं। लैग्स पर गुणांक ज्यादातर उचित लगते हैं, हालांकि वे अधिकांश भाग के लिए महत्वहीन हैं। रैखिक प्रवृत्ति गुणांक महत्वपूर्ण है, जैसा कि कुछ अवधि के डमी हैं। फिर भी, क्या VAR मॉडल पर इस सरल दृष्टिकोण को पसंद करने के लिए कोई सैद्धांतिक कारण हैं?डब्ल्यूपी

पूर्ण प्रकटीकरण: मैंने बिना किसी प्रतिक्रिया के स्टैटालिस्ट पर एक समान प्रश्न पूछा ।


नमस्ते, क्या आप उस अपघटन के आसपास कुछ और संदर्भ दे सकते हैं जो आप करना चाहते हैं, जैसा कि मैंने समय श्रृंखला डेटा पर लागू नहीं देखा है?
मिशेल

डब्ल्यू'-डब्ल्यू=पी'*(wडी'-wडी)+(1-पी')*(wसी'-wसी)+(wडी-wसी)*(पी'-पी)+(ε'-ε), जहां प्राइम चर के वर्तमान मूल्य को दर्शाते हैं।
दिमित्री वी। मास्टरोव

Hmmm, कैसे के बारे में आउटलेर पहले बाहर, प्रतिगमन से पहले?
एथलीट

आपको किस स्तर की सटीकता की आवश्यकता है? मैं पूछ रहा हूं क्योंकि जैसा कि आप जानते हैं, आप ARIMA मॉडल का उपयोग कर सकते हैं और बहुत कम MSE प्राप्त कर सकते हैं। हालांकि, चूंकि वे मॉडल आमतौर पर अधिकतम संभावना का उपयोग करके फिट होते हैं, इसलिए यह लगभग निश्चित है कि आप ओवरफिट करेंगे। बायोसियन मॉडल थोड़ा डेटा के साथ काम करते समय मजबूत होते हैं, लेकिन मुझे लगता है कि आपको एआरआईएमए मॉडल की तुलना में एमएसई को अधिक मात्रा में ऑर्डर मिलेगा।
रॉबर्ट स्मिथ

जवाबों:


2

मैं समझता हूं कि यह प्रश्न यहां वर्षों से बैठा है, लेकिन फिर भी, निम्नलिखित विचार उपयोगी हो सकते हैं:

  1. यदि चर के बीच लिंक हैं (और सैद्धांतिक सूत्र इतनी अच्छी तरह से काम नहीं करता है), तो पीसीए का उपयोग व्यवस्थित तरीके से (रैखिक) निर्भरता देखने के लिए किया जा सकता है। मैं दिखाऊंगा कि इस प्रश्न में दिए गए डेटा के लिए यह अच्छी तरह से काम करता है।

  2. यह देखते हुए कि बहुत अधिक डेटा नहीं है (कुल 112 नंबर), केवल कुछ मॉडल मापदंडों का अनुमान लगाया जा सकता है ( उदाहरण के लिए पूर्ण मौसमी प्रभाव फिट करना एक विकल्प नहीं है), और कस्टम मॉडल की कोशिश करने से समझ में आ सकती है।

इन सिद्धांतों का पालन करते हुए मैं यहां एक पूर्वानुमान लगाऊंगा:

चरण 1. हम डेटा में निर्भरता प्रकट करने के लिए पीसीए का उपयोग कर सकते हैं। R का उपयोग करना, इसमें संग्रहीत डेटा के साथ x:

> library(jvcoords)
> m <- PCA(x)
> m
PCA: mapping p = 4 coordinates to q = 4 coordinates

                              PC1         PC2          PC3          PC4
standard deviation     0.18609759 0.079351671 0.0305622047 0.0155353709
variance               0.03463231 0.006296688 0.0009340484 0.0002413477
cum. variance fraction 0.82253436 0.972083769 0.9942678731 1.0000000000

डब्ल्यू=0.234w-1.152wसी-8.842पी

4×4

चरण 2 : PC1 में एक स्पष्ट प्रवृत्ति है:

> t <- 1:28
> plot(m$y[,1], type = "b", ylab = "PC1")
> trend <- lm(m$y[,1] ~ t)
> abline(trend)

PC1 का चलन

मैं हटाए गए इस प्रवृत्ति के साथ पीसी स्कोर की एक प्रति बनाता हूं:

> y2 <- m$y
> y2[,1] <- y2[,1] - fitted(trend)

अन्य पीसी के स्कोर को प्लॉट करने से कोई स्पष्ट रुझान नहीं मिलता है, इसलिए मैं इन अपरिवर्तित को छोड़ देता हूं।

पीसी स्कोर केंद्रित होने के बाद से, प्रवृत्ति पीसी 1 नमूने के द्रव्यमान के केंद्र के माध्यम से जाती है और प्रवृत्ति को फिटिंग केवल एक पैरामीटर का अनुमान लगाने के लिए मेल खाती है।

चरण 3. एक जोड़ी तितर बितर साजिश कोई स्पष्ट संरचना नहीं दिखाती है, इसलिए मैं पीसी को स्वतंत्र होने के रूप में मॉडल करता हूं:

> pairs(y2, asp = 1, oma = c(1.7, 1.7, 1.7, 1.7))

प्रवृत्ति को हटाने के बाद पीसी की जोड़ी बिखराव की साजिश

चरण 4. पीसी 1 में एक स्पष्ट आवधिकता है, अंतराल 13 के साथ (जैसा कि प्रश्न द्वारा सुझाया गया है)। इसे अलग-अलग तरीकों से देखा जा सकता है। उदाहरण के लिए, अंतराल 13 आटोक्लेरोरेशन एक correlogram में 0 से काफी अलग होने के रूप में दिखाता है:

> acf(y2[,1])

बहाव को हटाने के बाद पीसी 1 का ए.सी.एफ.

(जब एक स्थानांतरित प्रति के साथ डेटा की साजिश रचते समय आवधिक रूप से अधिक हड़ताली होती है।)

yटी+13(1)=α13yटी(1)+σεटी+13εटीα13σlm()

> lag13 <- lm(y2[14:28,1] ~ y2[1:15,1] + 0)
> lag13

Call:
lm(formula = y2[14:28, 1] ~ y2[1:15, 1] + 0)

Coefficients:
y2[1:15, 1]  
     0.6479  

> a13 <- coef(lag13)
> s13 <- summary(lag13)$sigma

प्रशंसनीयता परीक्षण के रूप में, मैं पीसी 1 (नीला) के लिए अपने मॉडल के एक यादृच्छिक प्रक्षेपवक्र के साथ दिए गए डेटा (काला) को भविष्य में एक वर्ष के लिए तैयार करता हूं:

t.f <- 29:41
pc1 <- m$y[,1]
pc1.f <- (predict(trend, newdata = data.frame(t = t.f))
          + a13 * y2[16:28, 1]
          + rnorm(13, sd = s13))
plot(t, pc1, xlim = range(t, t.f), ylim = range(pc1, pc1.f),
     type = "b", ylab = "PC1")
points(t.f, pc1.f, col = "blue", type = "b")

PC1 के लिए एक नकली प्रक्षेपवक्र

पथ का नीला, नकली टुकड़ा डेटा की एक उचित निरंतरता जैसा दिखता है। PC2 और PC3 के लिए correlograms कोई महत्वपूर्ण सहसंबंध नहीं दिखाते हैं, इसलिए मैं इन घटकों को सफेद शोर के रूप में मॉडल करता हूं। PC4 सहसंबंध दिखाता है, लेकिन कुल विचलन में इतना कम योगदान देता है कि यह मॉडलिंग के लायक नहीं लगता है, और मैं इस घटक को सफेद शोर के रूप में भी देखता हूं।

यहां हमने दो और पैरामीटर फिट किए हैं। यह हमें मॉडल (पीसीए सहित) में कुल नौ पैरामीटर लाता है, जो 112 नंबर वाले डेटा के साथ शुरू होने पर बेतुका नहीं लगता।

पूर्वानुमान। हम शोर को छोड़कर (मतलब प्राप्त करने के लिए) और PCA को उल्टा करके एक संख्यात्मक पूर्वानुमान प्राप्त कर सकते हैं:

> pc1.f <- predict(trend, newdata = data.frame(t = t.f)) + a13 * y2[16:28, 1]
> y.f <- data.frame(PC1 = pc1.f, PC2 = 0, PC3 = 0, PC4 = 0)
> x.f <- fromCoords(m, y.f)
> rownames(x.f) <- t.f
> x.f
          W       wd       wc         p
29 4.456825 4.582231 3.919151 0.5616497
30 4.407551 4.563510 3.899012 0.5582053
31 4.427701 4.571166 3.907248 0.5596139
32 4.466062 4.585740 3.922927 0.5622955
33 4.327391 4.533055 3.866250 0.5526018
34 4.304330 4.524294 3.856824 0.5509898
35 4.342835 4.538923 3.872562 0.5536814
36 4.297404 4.521663 3.853993 0.5505056
37 4.281638 4.515673 3.847549 0.5494035
38 4.186515 4.479533 3.808671 0.5427540
39 4.377147 4.551959 3.886586 0.5560799
40 4.257569 4.506528 3.837712 0.5477210
41 4.289875 4.518802 3.850916 0.5499793

मोंटे कार्लो का उपयोग करके अनिश्चितता के बैंड या तो विश्लेषणात्मक रूप से प्राप्त किए जा सकते हैं:

N <- 1000 # number of Monte Carlo samples
W.f <- matrix(NA, N, 13)
for (i in 1:N) {
    y.f <- data.frame(PC1 = (predict(trend, newdata = data.frame(t = t.f))
              + a13 * y2[16:28, 1]
              + rnorm(13, sd = s13)),
              PC2 = rnorm(13, sd = sd(y2[,2])),
              PC3 = rnorm(13, sd = sd(y2[, 3])),
              PC4 = rnorm(13, sd = sd(y2[, 4])))
    x.f <- fromCoords(m, y.f)
    W.f[i,] <- x.f[, 1]
}
bands <- apply(W.f, 2,
               function(x) quantile(x, c(0.025, 0.15, 0.5, 0.85, 0.975)))
plot(t, x$W, xlim = range(t, t.f), ylim = range(x$W, bands),
     type = "b", ylab = "W")
for (b in 1:5) {
    lines(c(28, t.f), c(x$W[28], bands[b,]), col = "grey")
}

पूर्वानुमान के लिए अनिश्चितता बैंड

डब्ल्यू


1
दिलचस्प दृष्टिकोण। मुझे यह थोड़ा पचाने दो।
दिमित्री वी। मास्टरोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.