अपने सवालों के जवाब देने के लिए, आपको मूल रूप से यह जानना होगा कि एक मॉडल में अवशिष्ट यानी की गणना कैसे की जाती है । क्योंकि तब । आइए सबसे पहले एक नकली डेटा ( ) उत्पन्न करें और मॉडल को फिट करें (बिना मतलब के):इटीarma
एक्सटी^= एक्सटी- ईटीएक्सटी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 , । । । , एनइटी= एक्सटी- एक आर * एक्सटी - 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
वे कहते हैं: "(...) नवाचारों और उनके विचरण एक कलमन फ़िल्टर द्वारा पाया।" इसलिए फ़ंक्शन स्पष्ट रूप से किसी भी तरह प्रारंभिक मूल्यों के लिए कलमन फ़िल्टर का उपयोग करता है।