ARIMA (1,1,0) श्रृंखला का अनुकरण


11

मैंने ARIMA मॉडल को मूल समय श्रृंखला में फिट किया है, और सबसे अच्छा मॉडल ARIMA (1,1,0) है। अब मैं उस मॉडल से श्रृंखला का अनुकरण करना चाहता हूं। मैंने सरल एआर (1) मॉडल लिखा था, लेकिन मैं यह नहीं समझ सका कि मॉडल एआरआई (1,1,0) के भीतर अंतर को कैसे समायोजित किया जाए। AR (1) श्रृंखला के लिए निम्नलिखित आर कोड है:

phi= -0.7048                                 
z=rep(0,100)                                 
e=rnorm(n=100,0,0.345)                       
cons=2.1                                     
z[1]=4.1
for (i in 2:100) z[i]=cons+phi*z[i-1]+e[i]   
plot(ts(Y))                

उपरोक्त कोड में मैं ARI (1,1) शब्द का अंतर कैसे शामिल करूं। कोई भी इस संबंध में मेरी मदद करे।

जवाबों:


21

यदि आप ARIMA का अनुकरण करना चाहते हैं तो आप arima.simR में उपयोग कर सकते हैं , इसे हाथ से करने की कोई आवश्यकता नहीं है। इससे आपको मनचाही श्रंखला उत्पन्न होगी।

e <- rnorm(100,0,0.345) 
arima.sim(n=100,model=list(ar=-0.7048,order=c(1,1,0)),start.innov=4.1,n.start=1,innov=2.1+e)

आप यह देख सकते हैं कि arima.simR कमांड लाइन में टाइप करके यह कैसे हासिल किया जाता है । वैकल्पिक रूप से यदि आप इसे स्वयं करते हैं, तो आप जिस कार्य को देख रहे हैं वह संभवतः है diffinv। यह अंतराल के अंतर की गणना करता है।

पुनरावर्ती अनुक्रमों Rके लिए एक अच्छा कार्य है filter। इसलिए लूप का उपयोग करने के बजाय

z <- rep(NA,100)
z[1] <- 4.1
for (i in 2:100) z[i]=cons+phi*z[i-1]+e[i]   

तुम लिख सकते हो

filter(c(4.1,2.1+e),filter=-0.7048,method="recursive")

यह arima.simउपरोक्त उदाहरण के समान परिणाम देगा :

diffinv(filter(c(4.1,2.1+e),filter=-0.7048,method="recursive")[-1])
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.