এআরআইএমএ (1,1,0) সিরিজের সিমুলেশন


11

আমি আরিমা মডেলগুলিকে আসল টাইম সিরিজে ফিট করেছি এবং সেরা মডেলটি আরিমা (1,1,0)। এখন আমি সেই মডেল থেকে সিরিজটি অনুকরণ করতে চাই। আমি সাধারণ এআর (1) মডেলটি লিখেছি, তবে কীভাবে মডেল এআরআই (1,1,0) এর মধ্যে পার্থক্য সামঞ্জস্য করতে পারি তা বুঝতে পারি না। এআর (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))                

উপরের কোডে আমি কীভাবে পার্থক্য শব্দটি এআরআই (1,1) অন্তর্ভুক্ত করব? এই বিষয়ে যে কেউ আমাকে সহায়তা করে।

উত্তর:


21

আপনি যদি আরআইএমএ অনুকরণ করতে চান তবে আপনি arima.simআর এ ব্যবহার করতে পারেন , এটি হাতে হাতে করার দরকার নেই। এটি আপনার পছন্দসই সিরিজ তৈরি করবে।

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.simআর কমান্ড লাইনে টাইপ করে এটি কীভাবে অর্জন করা হয়েছে তার কোডটি আপনি দেখতে পারেন । বিকল্পভাবে আপনি যদি এটি নিজে করেন তবে আপনি যে ফাংশনটি সম্ভবত দেখছেন তা হ'ল 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])
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.