ARMA मॉडल के फिट किए गए मूल्य


11

मैं यह समझने की कोशिश कर रहा हूं कि एआरएमए (पी, क्यू) मॉडल के लिए कैसे फिट मूल्यों की गणना की जाती है। मैंने पहले ही ARMA प्रक्रियाओं के फिट किए गए मूल्यों के बारे में यहाँ एक प्रश्न पाया है, लेकिन इसका कोई अर्थ नहीं निकाल सका है।

अगर मेरे पास ARMA (1,1) मॉडल है, तो

Xt=α1Xt1+ϵtβ1ϵt1

और मुझे एक (स्थिर) समय श्रृंखला दी गई है जो मैं मापदंडों का अनुमान लगा सकता हूं। मैं उन अनुमानों का उपयोग करके फिट किए गए मूल्यों की गणना कैसे करूंगा। एआर (1) मॉडल के लिए फिट किए गए मान द्वारा दिए गए हैं

Xt^=α1^Xt1.

चूँकि ARMA मॉडल में नवाचार अप्राप्य हैं, मैं MA पैरामीटर के अनुमान का उपयोग कैसे करूँगा? क्या मैं केवल एमए भाग को अनदेखा करूंगा और एआर भाग के फिट किए गए मूल्यों की गणना करूंगा?

जवाबों:


10

अपने सवालों के जवाब देने के लिए, आपको मूल रूप से यह जानना होगा कि एक मॉडल में अवशिष्ट यानी की गणना कैसे की जाती है । क्योंकि तब । आइए सबसे पहले एक नकली डेटा ( ) उत्पन्न करें और मॉडल को फिट करें (बिना मतलब के):etarmaएक्सटी^=एक्सटी-टीएक्सटीarima(.5,.6)arma

library(forecast)
n=1000
ts_AR <- arima.sim(n = n, list(ar = 0.5,ma=0.6))
f=arima(ts_AR,order=c(1,0,1),include.mean=FALSE)
summary(f)
    Series: ts_AR 
    ARIMA(1,0,1) with zero mean     

    Coefficients:
             ar1     ma1
          0.4879  0.5595
    s.e.  0.0335  0.0317

    sigma^2 estimated as 1.014:  log likelihood=-1426.7
    AIC=2859.4   AICc=2859.42   BIC=2874.12

    Training set error measures:
                         ME    RMSE       MAE      MPE     MAPE      MASE
    Training set 0.02102758 1.00722 0.8057205 40.05802 160.1078 0.6313145

अब मैं इस प्रकार अवशिष्ट बनाता हूं: (क्योंकि 1 पर कोई अवशिष्ट नहीं है) और हमारे पास है: , जहाँ और अनुमानित ऑटो-रिग्रेसिव और मूविंग एवरेज से ऊपर वाले भाग में हैं। यहाँ कोड है:1=0टी=2,,nटी=एक्सटी-आर*एक्सटी-1-*टी-1आर

e = rep(1,n)
e[1] = 0 ##since there is no residual at 1, e1 = 0
for (t in (2 : n)){
  e[t] = ts_AR[t]-coef(f)[1]*ts_AR[t-1]-coef(f)[2]*e[t-1]
}

एक बार जब आप अवशिष्ट पाते हैं , तो फिट किए गए मान बस । इसलिए, निम्नलिखित में, मैंने आर से प्राप्त पहले 10 फिट मूल्यों की तुलना की और जिन्हें मैं से गणना कर सकता हूं जो मैंने ऊपर (यानी मैन्युअल रूप से) बनाया है।टीएक्सटी^=एक्सटी-टीटी

cbind(fitted.from.package=fitted(f)[1:10],fitted.calculated.manually=ts_AR[1:10]-e[1:10])
      fitted.from.package fitted.calculated.manually
 [1,]          -0.4193068                 -1.1653515
 [2,]          -0.8395447                 -0.5685977
 [3,]          -0.4386956                 -0.6051324
 [4,]           0.3594109                  0.4403898
 [5,]           2.9358336                  2.9013738
 [6,]           1.3489537                  1.3682191
 [7,]           0.5329436                  0.5219576
 [8,]           1.0221220                  1.0283511
 [9,]           0.6083310                  0.6048668
[10,]          -0.5371484                 -0.5352324

जैसा कि आप देख रहे हैं कि करीब हैं लेकिन बिल्कुल समान नहीं हैं। कारण यह है कि जब मैंने अवशिष्ट बनाए तो मैंने सेट किया । हालांकि अन्य विकल्प भी हैं। उदाहरण के लिए, मदद फ़ाइल के आधार पर , अवशेष और उनके विचरण एक फ़िल्टर द्वारा पाए जाते हैं और इसलिए की उनकी गणना मुझसे थोड़ी भिन्न होगी। लेकिन जैसे-जैसे समय बीत रहा है वे जुट रहे हैं। अब Ar (1) मॉडल के लिए। मैंने मॉडल (बिना मतलब के) फिट किया और सीधे आपको दिखाता है कि गुणांक का उपयोग करके फिट किए गए मूल्यों की गणना कैसे करें। इस बार मैंने अवशिष्टों की गणना नहीं की। ध्यान दें कि मैंने पहले एक को हटाने वाले पहले 10 फिट मूल्यों की सूचना दी थी (जैसा कि आप इसे कैसे परिभाषित करते हैं, इसके आधार पर यह फिर से अलग होगा)। जैसा कि आप देख सकते हैं, वे पूरी तरह से समान हैं।1=0arimaटी

f=arima(ts_AR,order=c(1,0,0),include.mean=FALSE)
cbind(fitted.from.package=fitted(f)[2:10],fitted.calculated.manually=coef(f)*ts_AR[1:9])
      fitted.from.package fitted.calculated.manually
 [1,]          -0.8356307                 -0.8356307
 [2,]          -0.6320580                 -0.6320580
 [3,]           0.0696877                  0.0696877
 [4,]           2.1549019                  2.1549019
 [5,]           2.0480074                  2.0480074
 [6,]           0.8814094                  0.8814094
 [7,]           0.9039184                  0.9039184
 [8,]           0.8079823                  0.8079823
 [9,]          -0.1347165                 -0.1347165

मदद फ़ाइल में arimaवे कहते हैं: "(...) नवाचारों और उनके विचरण एक कलमन फ़िल्टर द्वारा पाया।" इसलिए फ़ंक्शन स्पष्ट रूप से किसी भी तरह प्रारंभिक मूल्यों के लिए कलमन फ़िल्टर का उपयोग करता है।
डाटामाइन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.