দৈনিক সময় সিরিজ বিশ্লেষণ


25

আমি সময় সিরিজ বিশ্লেষণ করার চেষ্টা করছি এবং এই ক্ষেত্রে নতুন। আমার 2006-2009-এর একটি ইভেন্টের দৈনিক গণনা রয়েছে এবং আমি এটিতে একটি টাইম সিরিজের মডেল ফিট করতে চাই। আমি যে অগ্রগতি করেছি তা এখানে:

timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
plot.ts(timeSeriesObj)

আমি প্রাপ্ত ফলাফলের প্লটটি হ'ল:

সময় সিরিজ প্লট

ডেটাতে seasonতু এবং ট্রেন্ড আছে কিনা তা যাচাই করার জন্য, আমি এই পোস্টে উল্লিখিত পদক্ষেপগুলি অনুসরণ করি :

ets(x)
fit <- tbats(x)
seasonal <- !is.null(fit$seasonal)
seasonal

এবং রব জে হ্যান্ডম্যানের ব্লগে :

library(fma)
fit1 <- ets(x)
fit2 <- ets(x,model="ANN")

deviance <- 2*c(logLik(fit1) - logLik(fit2))
df <- attributes(logLik(fit1))$df - attributes(logLik(fit2))$df 
#P value
1-pchisq(deviance,df)

উভয় ক্ষেত্রেই বোঝা যায় যে কোনও মৌসুম নেই।

আমি যখন সিরিজের এসিএফ এবং পিএসিএফ পরিকল্পনা করি তখন আমি যা পাই তা এখানে:

ACF PACF

আমার প্রশ্নগুলি হ'ল:

  1. প্রতিদিনের টাইম সিরিজের ডেটা হ্যান্ডেল করার উপায় কি এটাই? এই পৃষ্ঠাটি পরামর্শ দেয় যে আমার সাপ্তাহিক এবং বার্ষিক উভয় ধরণের দিকে নজর দেওয়া উচিত তবে আমার কাছে বিষয়টি স্পষ্ট নয়।

  2. আমি যখন এসিএফ এবং পিএসিএফ প্লট পেয়েছি তখন কীভাবে এগিয়ে যেতে হয় তা আমি জানি না।

  3. আমি কি কেবল অটো.রিমা ফাংশনটি ব্যবহার করতে পারি?

    ফিট <- অ্যারিমা (মাইটিস, অর্ডার = সি (পি, ডি, কিউ)

***** আপডেট হওয়া অটো.আরিমা ফলাফল ******

যখন আমি রব Hyndman মন্তব্য অনুযায়ী 7 ডেটার ফ্রিকোয়েন্সি পরিবর্তন এখানে , auto.arima নির্বাচন একটি ঋতু Arima মডেল এবং আউটপুট:

Series: timeSeriesObj 
ARIMA(1,1,2)(1,0,1)[7]                    

Coefficients:
       ar1      ma1     ma2    sar1     sma1
      0.89  -1.7877  0.7892  0.9870  -0.9278
s.e.   NaN      NaN     NaN  0.0061   0.0162

sigma^2 estimated as 21.72:  log likelihood=-4319.23
AIC=8650.46   AICc=8650.52   BIC=8682.18 

****** আপডেট হওয়া asonতু চেক ******

আমি যখন ফ্রিকোয়েন্সি 7 দিয়ে seasonতু পরীক্ষা করি, তখন এটি সত্য হয় তবে seasonতু 365.25 এর সাথে আউটপুট হয়, এটি মিথ্যা আউটপুট দেয়। এটি কি বার্ষিক seasonতুরতার অভাবকে উপস্থাপন করার পক্ষে যথেষ্ট?

timeSeriesObj = ts(x,start=c(2006,1,1),frequency=7)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal

আয়:

True

যখন

timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal

আয়:

False

কোন আউটপুট str(x)ফলন দেয়?
এস। কোলাসা - মনিকা

এটি নম্বর দেয় [1: 1460] 17 12 12 17 13 14 14 5 12 21 ...
স্ট্যাটবিগনার

আপনি কি ডেটা পোস্ট করতে পারেন?
পূর্বাভাস

দুর্ভাগ্যক্রমে, আমি পারছি না।
স্ট্যাটবিগনার

3
ঠিক আছে, আমি মরসুমতা সনাক্তকরণের জন্য পরিসংখ্যান পরীক্ষার পাশাপাশি ভিজ্যুয়াল পরিদর্শন এবং ডোমেন জ্ঞানের উপর নির্ভর করব। অরিমা একাধিক মৌসুমী পরিচালনা করতে পারে কিনা সে সম্পর্কে আপনার প্রশ্নের জবাব - নিশ্চিতভাবেই আরিমা যে কোনও ধরণের seasonতু হ্যান্ডেল করবে, Rসাধারণ এটি পরিচালনা করার ক্ষমতা রাখে না। আপনি পূর্বাভাস দেওয়ার চেষ্টা করছেন এমন পণ্যটির জন্য যদি উচ্চতর ইনভেন্টরি / উত্পাদন ব্যয় জড়িত থাকে তবে আমি বাণিজ্যিক সমাধানগুলি সন্ধান করব। Rআপনার মতো পূর্বাভাস কাজের জন্য গুরুতর সীমাবদ্ধতা রয়েছে। এই সাইটে কোথায় অন্য দৈনিক পূর্বাভাসের প্রশ্নগুলি দেখুন।
পূর্বাভাসকারী

উত্তর:


25

আপনার এসিএফ এবং পিএসিএফ ইঙ্গিত দেয় যে আপনার অন্তত সাপ্তাহিক seasonতু রয়েছে, যা শিখর দ্বারা,, ১৪, ২১ এবং আরও কিছু পরে দেখানো হয়েছে।

আপনার বার্ষিক seasonতু থাকতে পারে, যদিও এটি আপনার সময় সিরিজ থেকে স্পষ্ট নয়।

আপনার সেরা বাজি, সম্ভাব্য একাধিক মৌসুমী দেওয়া, এমন একটি tbatsমডেল হতে পারে , যা একাধিক ধরণের seasonতুপরি স্পষ্টভাবে মডেল করে। forecastপ্যাকেজটি লোড করুন :

library(forecast)

আপনার আউটপুট থেকে str(x)ইঙ্গিত পাওয়া যায় যে xএকাধিক মৌসুমী সম্ভাব্যতা সম্পর্কে এখনও তথ্য বহন করে না। দেখুন ?tbatsএবং এর আউটপুট তুলনা করুন str(taylor)। মৌসুমী বরাদ্দ করুন:

x.msts <- msts(x,seasonal.periods=c(7,365.25))

এখন আপনি একটি tbatsমডেল ফিট করতে পারেন । (ধৈর্য ধরুন, এতে কিছুটা সময় লাগতে পারে))

model <- tbats(x.msts)

অবশেষে, আপনি পূর্বাভাস এবং প্লট করতে পারেন:

plot(forecast(model,h=100))

আপনার ব্যবহার করা উচিত নয় arima()বা auto.arima(), যেহেতু এগুলি কেবলমাত্র একক ধরণের মৌসুমী পরিচালনা করতে পারে: হয় সাপ্তাহিক বা বার্ষিক। auto.arima()আপনার ডেটাতে কী করবে আমাকে জিজ্ঞাসা করবেন না । এটি theতুগুলির মধ্যে একটি চয়ন করতে পারে বা এটি তাদের পুরোপুরি উপেক্ষা করতে পারে।


একটি মন্তব্য থেকে অতিরিক্ত প্রশ্নের উত্তর দিতে সম্পাদনা করুন:

  1. ডেটাটির বার্ষিক seasonতু আছে কিনা তা আমি কীভাবে পরীক্ষা করতে পারি? আমি কি প্রতি মাসে মোট ইভেন্টের আরও একটি সিরিজ তৈরি করতে পারি এবং এটি স্থির করতে এর এসিএফ ব্যবহার করতে পারি?

মাসিক ডেটাতে একটি মডেল গণনা করা একটি সম্ভাবনা হতে পারে। তারপরে আপনি উদাহরণস্বরূপ, মৌসুমী এবং ছাড়াই মডেলগুলির মধ্যে এআইসির তুলনা করতে পারেন।

তবে পূর্বাভাস মডেলগুলি মূল্যায়নের জন্য আমি একটি হোল্ডআউট নমুনা ব্যবহার করব। সর্বশেষ 100 ডেটা পয়েন্ট ধরুন। বাকি ডেটাগুলিতে (উপরের মতো) বার্ষিক এবং সাপ্তাহিক season তুতে একটি মডেল ফিট করুন , তারপরে কেবলমাত্র একটি সাপ্তাহিক seasonতুতে উদাহরণস্বরূপ, auto.arima()একটি tsসহ ব্যবহার করুন frequency=7। হোল্ডআউট সময়কালে উভয় মডেল ব্যবহার করে পূর্বাভাস। এমএই, এমএসই বা আপনার ক্ষতির কার্যকারিতার সাথে সবচেয়ে বেশি প্রাসঙ্গিক কোনওটি ব্যবহার করে কোনটির ত্রুটি কম রয়েছে তা পরীক্ষা করুন। ত্রুটির মধ্যে সামান্য পার্থক্য থাকলে, সহজ মডেলের সাথে যান; অন্যথায়, নিম্ন ত্রুটিযুক্ত একটি ব্যবহার করুন।

পুডিংয়ের প্রমাণ খাওয়ার ক্ষেত্রে রয়েছে এবং সময় সিরিজের মডেলের প্রমাণও পূর্বাভাসে রয়েছে।

বিষয়গুলির উন্নতি করতে, একটি একক হোল্ডআউট নমুনা ব্যবহার করবেন না (যা বিভ্রান্তিমূলক হতে পারে, আপনার সিরিজের শেষে উত্সাহটি দেওয়া হয়েছে), তবে রোলিং অরিজিন পূর্বাভাস ব্যবহার করুন, এটি "টাইম সিরিজ ক্রস-বৈধকরণ" নামেও পরিচিত । (আমি আপনাকে সম্পূর্ণ বিনামূল্যে অনলাইন পূর্বাভাস পাঠ্যপুস্তকের প্রস্তাব দিই ।

  1. সুতরাং মৌসুমী আরিমা মডেলগুলি একাধিক মৌসুমী সাধারণত পরিচালনা করতে পারে না? এটি নিজেই মডেলটির সম্পত্তি বা এটি কেবলমাত্র আর ফাংশনগুলি যেভাবে লেখা হয়?

স্ট্যান্ডার্ড আরিমা মডেলগুলি মৌসুমী পৃথক করে seasonতুকে পরিচালনা করে। মৌসুমী মাসিক তথ্যের জন্য, আপনি কাঁচা সময় সিরিজটি মডেল করবেন না, তবে মার্চ 2015 এবং মার্চ 2014 এর মধ্যে ফেব্রুয়ারী 2015 এবং ফেব্রুয়ারী 2014 এবং এর মধ্যে সময়ের পার্থক্যগুলির সময়সীমা। (মূল স্কেলে পূর্বাভাস পেতে, আপনাকে অবশ্যই আবার অপ্রস্তুত হওয়া দরকার))

এই ধারণাটি একাধিক thisতুতে প্রসারিত করার অবিলম্বে কোনও সুস্পষ্ট উপায় নেই ।

অবশ্যই, আপনি আরিম্যাক্স ব্যবহার করে কিছু করতে পারেন, উদাহরণস্বরূপ, বার্ষিক seasonতুতে মডেল করার জন্য মাসিক ডামি অন্তর্ভুক্ত করে, তারপরে সাপ্তাহিক মৌসুমী আরিমা ব্যবহার করে মডেল রেসিডুয়ালগুলি। আপনি যদি আর-তে এটি করতে চান, ব্যবহার করুন ts(x,frequency=7), মাসিক ডমিগুলির একটি ম্যাট্রিক্স তৈরি করুন এবং এটির xregপ্যারামিটারে ফিড করুন auto.arima()

আমি এমন কোনও প্রকাশনাকে স্মরণ করতে পারি না যা বিশেষভাবে আরিমা একাধিক seasonতুতে প্রসারিত করে, যদিও আমি নিশ্চিত যে আমার পূর্ববর্তী অনুচ্ছেদে লাইন ধরে কেউ কিছু করেছে has


আপনার উত্তরের উপর ভিত্তি করে আমি এখানে কয়েকটি প্রশ্ন রেখেছি: ১. কীভাবে আমি পরীক্ষা করতে পারি যে ডেটাটিতে একটি বার্ষিক seasonতু আছে কি না? আমি কি প্রতিমাসে ইভেন্টের মোট সংখ্যার আরও একটি সিরিজ তৈরি করতে পারি এবং এটি সিদ্ধান্ত নিতে এর এসিপি ব্যবহার করতে পারি? ২. সুতরাং মৌসুমী আরিমা মডেলগুলি সাধারণত একাধিক মৌসুমী পরিচালনা করতে পারে না? এটি নিজেই মডেলটির সম্পত্তি বা এটি কেবলমাত্র আর ফাংশনগুলি যেভাবে লেখা হয়?
স্ট্যাটবিগনার

অটোআরিমা থেকে সাপ্তাহিক seasonতুতে ফলাফল সহ আপডেট পোস্ট
স্টেটবেগনার

1
@ স্টেফানকোলাসা, আমি এই নিবন্ধটি এটিএন্ডটি থেকে কিছুক্ষণ আগে খুঁজে পেয়েছি যা একাধিক মৌসুমী আরিমা ব্যবহার করে। নিবন্ধের মতো মডেলটিতে সম্ভব নয় R, যেহেতু Rমাল্টিসেজনাল এআরআইএমএ পরিচালনা করার ক্ষমতা নেই।
পূর্বাভাসকারী

2
@ ফরেস্টার: দুর্দান্ত, ধন্যবাদ! দেখে মনে হচ্ছে তারা সমীকরণ ৩.১-এ দ্বিগুণ পৃথক করে। আমি সেভাবে প্রচুর ডেটা হারাতে উদ্বিগ্ন। দুর্ভাগ্যক্রমে, তারা তাদের ফলাফলগুলি একটি সাধারণ বেঞ্চমার্কের সাথে তুলনা করে না , যেমন, গত সপ্তাহের দাবিগুলি। আমি যা পছন্দ করি তা হল তারা কীভাবে তাদের ডিএসআরআইএমএ এবং একটি পছন্দসই tbatsমডেলের মধ্যে পূর্বাভাসের সংমিশ্রণগুলি তদন্ত করে ।
এস। কোলাসা - মনিকা

3
@ স্টেফানকোলাসা আমি একমত, আমি আর্মস্ট্রং কর্তৃক পূর্বাভাসের নীতিমালায় সমর্থিত নিরীহ পূর্বাভাসকে মাপদণ্ড হিসাবে ব্যবহার করার বড় প্রবক্তা এবং যদি এটির যথার্থতার উন্নতি করে তবে কেবল জটিলতা যুক্ত করি। আমি আমার পোষাকগুলিতে নিষ্পাপ পদ্ধতি ব্যবহার করে কয়েকটি কাগজ প্রতিযোগিতায় শীর্ষ 2 শতাংশে এসে পৌঁছেছি।
পূর্বাভাসকারী

4

বিদ্যমান আর প্যাকেজগুলি ব্যবহার করে seasonতু সম্পর্কিত তথ্যগুলি পচানোর সর্বোত্তম উপায় হ'ল রিলিবিমেডে সিমডান ()। এই কৌশলটি একাধিক পিরিয়ডের মৌসুমীতা আহরণ করে। ডিফল্টগুলি ভাল কাজ করে। এটি ফুরিয়ার ট্রান্সফর্মের পরিবর্তে হিলবার্ট-হুয়াং রূপান্তর ব্যবহার করে। ফুরিয়ার ট্রান্সফর্মটির একটি গুরুতর ত্রুটি রয়েছে কারণ এটি কেবলমাত্র স্থায়ী, লিনিয়ার ডেটা পরিচালনা করতে পারে যখন বেশিরভাগ আগ্রহের সিরিজ হয় না। উদাহরণস্বরূপ, এলোমেলো হাঁটা y_t = y_ {t-1 e + e_t হ'ল সহজ এলোমেলো হাঁটা এবং প্রায়শই মুখোমুখি। অন্যান্য পদ্ধতিগুলি প্রায়শই অনুশীলনে পরিবর্তিত হয় তখন seasonতু পরিবর্তনের প্রশস্ততা ধরে রাখে।


1
উত্তরগুলিতে গণিত স্থাপনে সহায়তার জন্য দয়া করে বুনিয়াদি ম্যাথজ্যাক্স টিউটোরিয়াল এবং রেফারেন্স দেখুন । দয়া করে " সেরা " -র দাবির কিছু ন্যায়সঙ্গততাও সরবরাহ করুন (বা দাবিটি সংশোধন করার বিষয়টি বিবেচনা করুন) - এটি বেশিরভাগ ক্ষেত্রেই নয়, কমপক্ষে প্রতিটি বিকল্পের মতোই কম হতে হবে ।
গ্লেন_বি -রিনস্টেট মনিকা

2
এটি উল্লেখযোগ্য হতে পারে যে এই প্যাকেজটি CRAN এ রয়েছে
Glen_b -Rininstate Monica

3

আপনার উত্থাপিত প্রশ্নগুলির সাথে মোকাবিলা করা হয়েছে আর টাইম সিরিজের পূর্বাভাসে : আমার আউটপুট সম্পর্কিত প্রশ্নগুলি । দয়া করে আমার বিস্তারিত উত্তর এবং মূল প্রশ্নের উত্তর সহ আলোচনার সমস্ত মন্তব্যগুলি মনোযোগ সহকারে দেখুন কারণ আমি বিশ্বাস করি যে তারা আপনার সমস্যার সাথে প্রাসঙ্গিক। আপনি সম্ভবত পোস্টটিতে সরবরাহ করা ডেটা নিতে পারেন এবং এটি নিজের জন্য শিক্ষণ মুহুর্ত হিসাবে ব্যবহার করতে পারেন। আপনার যা করা উচিত তার জন্য পুরো আলোচনাটি প্রাইমার হিসাবে ব্যবহার করুন।


1
অনেক ধন্যবাদ! জিনিসগুলি চেষ্টা করার জন্য আমি সেই পোস্টের ডেটা ব্যবহার করব।
স্ট্যাটবিগনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.