প্রতিদিনের ডেটা সহ অটো.রিমা: মৌসুমী / পর্যায়ক্রমিকতা কীভাবে ধরা যায়?


21

আমি একটি দৈনিক সময় সিরিজে একটি আরিমা মডেল ফিট করছি। ডেটা 02-01-2010 থেকে 30-07-2011 পর্যন্ত প্রতিদিন সংগ্রহ করা হয় এবং খবরের কাগজ বিক্রয় সম্পর্কে। যেহেতু বিক্রয়ের একটি সাপ্তাহিক প্যাটার্ন পাওয়া যায় (দৈনিক গড় কপি বিক্রি হয় সোমবার থেকে শুক্রবার পর্যন্ত একই হয়, তারপরে শনি ও রবিবার বৃদ্ধি হয়), তাই আমি এই "seasonতুসত্তা" ক্যাপচার করার চেষ্টা করছি। বিক্রয় ডেটা "ডেটা" দেওয়া, আমি সময় সিরিজ নিম্নলিখিত হিসাবে তৈরি করি:

salests<-ts(data,start=c(2010,1),frequency=365)

এবং তারপরে আমি এআইসির মানদণ্ডের মাধ্যমে সেরা আরিমা মডেল নির্বাচন করতে অটো.রিমা (।) ফাংশনটি ব্যবহার করি। ফলাফলটি সর্বদা একটি অ-মৌসুমী আরিমা মডেল, তবে আমি উদাহরণ হিসাবে নীচের বাক্য গঠন সহ কিছু SARIMAs মডেল চেষ্টা করি:

sarima1<-arima(salests, order = c(2,1,2), seasonal = list(order = c(1, 0, 1), period = 7))

আমি আরও ভাল ফলাফল পেতে পারেন। Ts কমান্ড / আরিমা স্পেসিফিকেশন কিছু ভুল আছে? সাপ্তাহিক প্যাটার্নটি খুব শক্তিশালী তাই আমি এটি ধরতে এত অসুবিধা আশা করব না। কোন সাহায্য খুব দরকারী হবে। ধন্যবাদ, জিউলিয়া দেপ্পেরি

হালনাগাদ:

আমি ইতিমধ্যে কিছু যুক্তি পরিবর্তন করেছি। আরও স্পষ্টভাবে, পদ্ধতিটি অ্যারাইমা (4,1,3) আমি যখন সেট করি তখন সেরা মডেল হিসাবে নির্বাচন করে D=7, তবে এআইসি এবং অন্যরা ফিট ফিটও বা সূচী এবং পূর্বাভাসের ক্ষেত্রে মোটেও উন্নতি করে না। আমার ধারণা seasonতু এবং পর্যায়ক্রমের মধ্যে বিভ্রান্তির কারণে কিছু ভুল আছে ..!?

অটো.রিমা কল ব্যবহৃত এবং আউটপুট প্রাপ্ত:

modArima<-auto.arima(salests,D=7,max.P = 5, max.Q = 5)



 ARIMA(2,1,2) with drift         : 1e+20
 ARIMA(0,1,0) with drift         : 5265.543
 ARIMA(1,1,0) with drift         : 5182.772
 ARIMA(0,1,1) with drift         : 1e+20
 ARIMA(2,1,0) with drift         : 5137.279
 ARIMA(2,1,1) with drift         : 1e+20
 ARIMA(3,1,1) with drift         : 1e+20
 ARIMA(2,1,0)                    : 5135.382
 ARIMA(1,1,0)                    : 5180.817
 ARIMA(3,1,0)                    : 5117.714
 ARIMA(3,1,1)                    : 1e+20
 ARIMA(4,1,1)                    : 5045.236
 ARIMA(4,1,1) with drift         : 5040.53
 ARIMA(5,1,1) with drift         : 1e+20
 ARIMA(4,1,0) with drift         : 5112.614
 ARIMA(4,1,2) with drift         : 4953.417
 ARIMA(5,1,3) with drift         : 1e+20
 ARIMA(4,1,2)                    : 4960.516
 ARIMA(3,1,2) with drift         : 1e+20
 ARIMA(5,1,2) with drift         : 1e+20
 ARIMA(4,1,3) with drift         : 4868.669
 ARIMA(5,1,4) with drift         : 1e+20
 ARIMA(4,1,3)                    : 4870.92
 ARIMA(3,1,3) with drift         : 1e+20
 ARIMA(4,1,4) with drift         : 4874.095

 Best model: ARIMA(4,1,3) with drift        

সুতরাং আমি ধরে নিয়েছি অ্যারিমা ফাংশনটি ব্যবহার করা উচিত:

bestOrder <- cbind(modArima$arma[1],modArima$arma[5],modArima$arma[2])
sarima1<-arima(salests, order = c(4,1,3))

কোন মৌসুমী উপাদান পরামিতি এবং সময় নির্দিষ্টকরণের সাথে। ডেটা এবং অনুসন্ধানের বিশ্লেষণে দেখা যায় যে একই সাপ্তাহিক প্যাটার্নটি প্রতি সপ্তাহের জন্য অগস্টে 2010 এর একমাত্র ব্যতিক্রম (যখন বিক্রয়ে ধারাবাহিক বৃদ্ধি নিবন্ধিত হয়) বাদে প্রায় অনুমান করা যায়। দুর্ভাগ্যক্রমে টাইমসরিজ মডেলিংয়ে আমার কোনও দক্ষতা নেই, আসলে আমি এই সমস্যাযুক্ত ডেটার জন্য ফিট করার চেষ্টা করেছি এমন অন্যান্য প্যারাম্যাট্রিক এবং নন-প্যারাম্যাট্রিক মডেলের বিকল্প সমাধান খুঁজতে আমি এই পদ্ধতির চেষ্টা করছি। আমার কাছে অনেক নির্ভরশীল সংখ্যাসূচক ভেরিয়েবল রয়েছে তবে তারা প্রতিক্রিয়া ভেরিয়েবলটি ব্যাখ্যা করতে কম শক্তি দেখিয়েছে: নিঃসন্দেহে, মডেলের সবচেয়ে কঠিন অংশটি সময় উপাদান। তদ্ব্যতীত, মাস এবং সপ্তাহের দিনগুলি উপস্থাপন করার জন্য ডামি ভেরিয়েবলগুলি নির্মাণ একটি শক্ত সমাধান হিসাবে প্রমাণিত হয়নি।

উত্তর:


28

যদি সাপ্তাহিক seasonতু থাকে তবে মৌসুম সময়কাল 7 এ সেট করুন।

salests <- ts(data,start=2010,frequency=7) 
modArima <- auto.arima(salests)

নোট করুন যে মৌসুমী বিভেদ নির্বাচন auto.arima()খুব সম্প্রতি পর্যন্ত খুব ভাল ছিল না । আপনি যদি forecastপ্যাকেজের v2.xx ব্যবহার করছেন তবে seasonতু বিভেদ D=1করার auto.arima()জন্য কলটিতে সেট করুন । আপনি যদি forecastপ্যাকেজের v3.xx ব্যবহার করেন তবে স্বয়ংক্রিয়ভাবে নির্বাচন Dআরও ভাল কাজ করে (সিএইচ পরীক্ষার পরিবর্তে একটি ওসিএসবি পরীক্ষা ব্যবহার করে)।

বিভিন্ন স্তরের ভিন্নতার মডেলগুলির জন্য এআইসির তুলনা করার চেষ্টা করবেন না। এগুলি সরাসরি তুলনাযোগ্য নয়। আপনি কেবল নির্ভরযোগ্যতার সাথে পৃথক পৃথক একই আদেশ থাকা মডেলের সাথে এআইসির তুলনা করতে পারেন।

কল করার পরে আপনাকে মডেলটিকে পুনরায় ফিট করার দরকার নেই auto.arima()। এটি কোনও আরিমা অবজেক্টটি ফিরিয়ে দেবে, ঠিক যেমন আপনি arima()নির্বাচিত মডেল অর্ডার দিয়েছিলেন।


আমার বোকা ভুল চিহ্নিত করার জন্য ধন্যবাদ। আমি আমার উত্তর প্রত্যাহার করব।
এমপিক্টাস

1
আপনার খুব সহায়ক পরামর্শের জন্য আপনাকে অনেক বেশি। আমি পূর্বাভাস প্যাকেজের 2.19 সংস্করণটি ব্যবহার করছি তাই আমি আপনার পরামর্শ অনুসরণ করেছি এবং অটো.রিমা () কলটিতে ডি প্যারামিটারটি 1 এর সমান সেট করেছি। বিক্রয় বিক্রয় সিরিজের জন্য নির্বাচিত সেরা মডেলটি হ'ল শূন্য-গড় সহ একটি আরিমা (1,0,0)। সেরা মডেলটি ফিরে এসেছে, আমি পি, ডি, কিউ বা কমপক্ষে ডি এর মান বোঝাব?
জিউলিয়া

2
যতক্ষণ না আপনার ডেটাতে 1 ব্যতীত অন্য কোনও ফ্রিকোয়েন্সি থাকে, ততক্ষণ মৌসুমী আরিমা মডেলগুলি বিবেচনা করা হবে। একটি অ-মৌসুমি মডেল ফিরে হচ্ছে হয়, তাহলে হয় ঋতু খুব দুর্বল বা তথ্য ফ্রিকোয়েন্সি সঙ্গে আপত্তি> 1. একটি TS নেই
রব Hyndman

15

প্রতিদিনের তথ্যগুলিতে মরসুমী এআরআইএমএ ফিটিংয়ের সমস্যাটি হ'ল "মৌসুমী উপাদান" কেবল সপ্তাহান্তে বা সম্ভবত সপ্তাহের দিনগুলিতে কাজ করতে পারে এইভাবে সামগ্রিকভাবে একটি অ-গুরুত্বপূর্ন "মৌসুমী উপাদান" রয়েছে। এখন আপনাকে যা করতে হবে তা হল সপ্তাহের দিনগুলি উপস্থাপন করে 6 টি ডামি এবং সম্ভবত বার্ষিক প্রভাবগুলি উপস্থাপনের জন্য মাসিক সূচকগুলি দিয়ে আপনার ডেটা সেট বাড়ানো। এখন ছুটির মতো ইভেন্টগুলিকে অন্তর্ভুক্ত করার বিষয়টি বিবেচনা করুন এবং এই পরিচিত ভেরিয়েবলগুলির চারপাশে কোনও সীসা, সম্মানজনক বা ল্যাগ এফেক্ট অন্তর্ভুক্ত করুন। ডেটাতে অস্বাভাবিক মান (ডাল) বা স্তর স্তর বা স্থানীয় সময়ের প্রবণতা থাকতে পারে। তদুপরি-সপ্তাহের প্রভাবগুলি সময়ের সাথে সাথে পরিবর্তিত হতে পারে যেমন প্রথম 20 সপ্তাহের জন্য কোনও শনিবারের প্রভাব ছিল না তবে গত 50 সপ্তাহের শনিবারের প্রভাব ছিল।


সেক্ষেত্রে (আইরিশস্ট্যাট) এটি আরআইএমএর পরিবর্তে মিক্সড মডেলিং টেকনিক নয়। বাক্স জ্লুং টেস্ট বাদে আরআইএমএ-তে কোথাও ল্যাগগুলি নেওয়া হয় না। অটো.রিমা (সাম্প্রতিক) ডেটা স্কেলিং, seasonতুরতা ওঠানামা সহ সমস্ত কিছু ঠিক করে দেয় (এজন্য আমি সেরা পি, ডি, কি প্যারামিটারগুলি খুঁজে পাই)।
wackyanil

একে ট্রান্সফার ফাংশন বলা হয় এবং একটি synergistic পদ্ধতির প্রতিচ্ছবি প্রতিফলিত করে দেখুন autobox.com/pdfs/capable.pd স্লাইড 42 দিয়ে শুরু করুন। অটো.রিমা সাধারণ ক্ষেত্রে কাজ করতে পারে তবে আমার মতে এটি যথেষ্ট সাধারণ নয় general যদি আপনার মনে কোনও ডেটা সেট থাকে তবে একটি নতুন প্রশ্ন তৈরি করুন এবং এটি অন্তর্ভুক্ত করুন।
আইরিশস্ট্যাট

@ আইরিশস্ট্যাট আপনার অর্থ হ'ল আরিমা হস্তক্ষেপে? সপ্তাহের দিন ডামি ভেরিয়েবল হচ্ছে? এবং ছুটির দিনে কি একই রকম ডামি ভেরিয়েবল?
উত্সাহিত

হ্যাঁ .. এটি প্রতিদিনের ডেটাতে আমার দৃষ্টিভঙ্গি হবে
আইরিশস্ট্যাট

0

আমার টিএসে মৌসুমতার ক্রম নির্ধারণ করতে (3 বছরের বয়সের সাথে প্রতিদিনের ডেটা) আমি মাতলাবে এই কোডটি ব্যবহার করেছি:

গুলি = 0; মিনিট = 1e +07; এন = দৈর্ঘ্য (এক্স); i = 1: 400 ডিফফ = এক্স (আই + 1: এন) -x (1: নী); গুলি (ঝ) = SUM (ABS (পরিবর্তন)); যদি (গুলি) আমি

এটি আমাকে 365 দেয় যা যৌক্তিক।


1
সাইটে স্বাগতম। এটি কীভাবে মূল প্রশ্নের উত্তর দেয় তা আমার কাছে স্পষ্ট নয় এবং আপনি পোস্ট কোডটি এটি দেখার থেকে কী করে তা আমার কাছে স্পষ্ট নয়। আপনি উত্তর কিছুটা প্রসারিত করতে পারে?
আইনার

1
আপনার সমাধানটি সপ্তাহের নির্দিষ্ট দিনের প্রভাবগুলি, মাসের নির্দিষ্ট দিনের প্রভাবগুলি, সপ্তাহের মাসের প্রভাবগুলি, মাসের দিনগুলির প্রভাবগুলি, সামনের দিনগুলির প্রভাবগুলি, নেতৃত্ব এবং ছুটির পিছনে পিছনে থাকা প্রভাবগুলি কীভাবে মোকাবেলা করে? , সোমবার-শুক্রবারের ছুটির পরে, শুক্রবার সোমবার ছুটির আগে, মাসিক প্রভাব, সাপ্তাহিক প্রভাব, সময়ের সাথে সপ্তাহব্যাপী প্রভাব, ডাল, স্তর / পদক্ষেপের বদল?
আইরিশস্ট্যাট

মতলব কোড s = 0; মিনিট = 1e + 07; এন = দৈর্ঘ্য (এক্স); i = 1: 400 ডিফফ = এক্স (আই + 1: এন) -x (1: নী); গুলি (ঝ) = SUM (ABS (পরিবর্তন)); যদি (গুলি (i) <মিনিট) মিনিট = s (i); আমি শেষ
nkabouche
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.