আপনার প্রশ্নের উত্তর দেওয়ার জন্য, আপনাকে মূলত জানতে হবে কীভাবে অবশিষ্টগুলি অর্থাৎ কোনও মডেলে গণনা করা হয় । কারণ তারপর । আসুন প্রথমে একটি জাল তথ্য ( ) উত্পন্ন করি এবং মডেলটি ফিট করি (কোনও কারণ ছাড়াই):ইটি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= 0T = 2 , । । । , এনইটি= এক্সটি- একটি r ∗ এক্সটি - 1- এমa ∗ eটি - 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
আপনি দেখতে যেমন কাছাকাছি কিন্তু ঠিক এক নয়। কারণটি হ'ল আমি যখন অবশিষ্টাংশগুলি তৈরি করি তখন আমি সেট । যদিও অন্যান্য পছন্দ আছে। উদাহরণস্বরূপ, সহায়তার ফাইলের উপর ভিত্তি করে , একটি কলম্যান ফিল্টার দ্বারা পাওয়া অবশিষ্টাংশ এবং তাদের বৈকল্পিক এবং তার ফলে গণনা আমার থেকে কিছুটা আলাদা হবে। কিন্তু সময় যতই যায় তারা রূপান্তরিত হয়।
এখন আর (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
তারা বলে: "(...) উদ্ভাবন এবং তাদের বৈকল্পিকতা কলম্যান ফিল্টার দ্বারা পাওয়া গেছে।" সুতরাং ফাংশন দৃশ্যত একরকম প্রাথমিক মানগুলির জন্য কালমন ফিল্টার ব্যবহার করে।