মডেলগুলি অটো.রিমা () পার্সিমোনিয়াস দ্বারা চিহ্নিত?


13

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

আর প্যাকেজ পূর্বাভাসেauto.arima() ফাংশন নিয়ে খেলতে শুরু করেছি । আমি যা করেছি তা এখানে, আমি আরিমা সিমুলেটেড এবং তারপরে আবেদন করেছি । নীচে 2 উদাহরণ দেওয়া আছে। আপনি উভয় উদাহরণে দেখতে পাচ্ছেন যে একটি মডেল পরিষ্কারভাবে চিহ্নিত করেছেন যা অনেকে অ-পার্সিমোনিয়াস হিসাবে বিবেচনা করবেন। বিশেষত ২ উদাহরণস্বরূপ, যেখানে আরিমা (৩,০,৩) চিহ্নিত হয়েছে যখন আসলে আরিমা (১,০,১) যথেষ্ট এবং পার্সোনামিয়াস হবে।auto.arima()auto.arima()auto.arima()

নীচে আমার প্রশ্ন আছে। আমি কোন পরামর্শ এবং সুপারিশ প্রশংসা করব।

  1. স্বয়ংক্রিয়ভাবে অ্যালগরিদম ব্যবহার করে চিহ্নিত মডেলগুলি কখন ব্যবহার / সংশোধন করার বিষয়ে কোনও গাইডেন্স রয়েছে auto.arima()?
  2. auto.arima()মডেলগুলি সনাক্ত করতে কেবল এআইসি (যা আমি মনে করি এটি ব্যবহার করে) কোনও গর্ত পড়েছে ?
  3. পার্সিমোনিয়াস এমন কোনও স্বয়ংক্রিয় অ্যালগরিদম তৈরি করা যেতে পারে?

উপায় দ্বারা আমি auto.arima()একটি উদাহরণ হিসাবে ব্যবহৃত । এটি যে কোনও স্বয়ংক্রিয় অ্যালগরিদমের জন্য প্রযোজ্য।

নীচে উদাহরণ # 1:

set.seed(182)
y <- arima.sim(n=500,list(ar=0.2,ma=0.6),mean = 10)

auto.arima(y)

qa <- arima(y,order=c(1,0,1))
qa

নীচে থেকে ফলাফল auto.arima()। দয়া করে মনে রাখবেন যে সমস্ত সহগ তুচ্ছ are অর্থাত্ মান <2।t

ARIMA(1,0,2) with non-zero mean 

Coefficients:
         ar1     ma1      ma2  intercept
      0.5395  0.2109  -0.3385    19.9850
s.e.  0.4062  0.4160   0.3049     0.0878

sigma^2 estimated as 1.076:  log likelihood=-728.14
AIC=1466.28   AICc=1466.41   BIC=1487.36

arima()অর্ডার আরিমা (১,০,১) দিয়ে নিয়মিত চলার ফলাফলগুলি নীচে রয়েছে

Series: y 
ARIMA(1,0,1) with non-zero mean 

Coefficients:
         ar1     ma1  intercept
      0.2398  0.6478    20.0323
s.e.  0.0531  0.0376     0.1002

sigma^2 estimated as 1.071:  log likelihood=-727.1
AIC=1462.2   AICc=1462.28   BIC=1479.06

উদাহরণ 2:

set.seed(453)
y <- arima.sim(n=500,list(ar=0.2,ma=0.6),mean = 10)

auto.arima(y)

qa <- arima(y,order=c(1,0,1))
qa

নীচে থেকে ফলাফল auto.arima():

ARIMA(3,0,3) with non-zero mean 

Coefficients:
         ar1      ar2     ar3     ma1     ma2     ma3  intercept
      0.7541  -1.0606  0.2072  0.1391  0.5912  0.5491    20.0326
s.e.  0.0811   0.0666  0.0647  0.0725  0.0598  0.0636     0.0939

sigma^2 estimated as 1.027:  log likelihood=-716.84
AIC=1449.67   AICc=1449.97   BIC=1483.39

নীচে arima()অর্ডার আরিমা সহ নিয়মিত চলছে ফলাফল (1,0,1)

Series: y 
ARIMA(1,0,1) with non-zero mean 

Coefficients:
         ar1     ma1  intercept
      0.2398  0.6478    20.0323
s.e.  0.0531  0.0376     0.1002

sigma^2 estimated as 1.071:  log likelihood=-727.1
AIC=1462.2   AICc=1462.28   BIC=1479.06

আপনি এখানে কোনও কিছুর দিকে উপস্থিত হয়েছেন বলে মনে হয় যে এআইসি পদ্ধতিটি সাদামাটা মডেলকে ভুলভাবে চিহ্নিত করতে পারে। অতিরিক্তভাবে এআইসির মানদণ্ড প্রাঙ্গনে কোনও ডাল / স্তর নেই, কোনও মৌসুমী ডাল নেই / স্থানীয় সময় প্রবণতা নেই / পরামিতিগুলির স্থায়িত্ব / ত্রুটির বৈকল্পিকতা।
আইরিশস্ট্যাট

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

@ ইরিশস্তাত মা-সহগের চিহ্নটি কী তা -0.1391 -0.5912 -0.5491 হিসাবে ব্যাখ্যা করা উচিত?
পূর্বাভাসকারী

পঙ্ক্রাটজ পাঠ্যের নিরিখে .. হ্যাঁ! । তারা মাউন্ট বহুবর্ষের শিকড়গুলি পরীক্ষা করে দেখতে পারেন যে তারা নিবিড়তা প্রয়োজনীয়তাগুলি পূরণ করে কিনা।
আইরিশস্ট্যাট

সুতরাং উপরোক্ত অটো.রিমা বিবর্তনযোগ্য নয়, অর্থাত, -0.1391-0.5912-0.5491 <1 সুতরাং মডেলটি ঠিক আছে।
পূর্বাভাসকারী

উত্তর:


17

এখানে বেশ কয়েকটি সমস্যা রয়েছে। প্রথমত, অনুমান করবেন না যে সিমুলেটেড আরিমা সত্যই আপনার নির্দিষ্ট আদেশ অনুসারে রয়েছে; আপনি নির্দিষ্ট মডেল থেকে একটি নমুনা নিচ্ছেন এবং এলোমেলোতার কারণে, নির্দিষ্ট নমুনার জন্য আঁকা নির্দিষ্ট সুনির্দিষ্ট মডেলটি সেখান থেকে সিমুলেশনগুলি আঁকানো নাও হতে পারে।

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

approximation(length(x)>100 | frequency(x)>12)approximationTRUE n=100n=500 approximationauto.arima()approximation = TRUEarima()

আপনার উদাহরণ 1 এর জন্য, আমাদের থাকা উচিত

> auto.arima(y, approximation = FALSE)
Series: y 
ARIMA(0,0,1) with non-zero mean 

Coefficients:
         ma1  intercept
      0.7166    19.9844
s.e.  0.0301     0.0797

sigma^2 estimated as 1.079:  log likelihood=-728.94
AIC=1463.87   AICc=1463.92   BIC=1476.52
> qa
Series: y 
ARIMA(1,0,1) with non-zero mean 

Coefficients:
         ar1     ma1  intercept
      0.0565  0.6890    19.9846
s.e.  0.0626  0.0456     0.0830

sigma^2 estimated as 1.078:  log likelihood=-728.53
AIC=1465.06   AICc=1465.14   BIC=1481.92

সুতরাং auto.arima()প্রকৃত মডেলের চেয়ে আরও পার্সিমোনিয়াস মডেল নির্বাচন করেছেন; একটি আরিমা (0, 0, 1) বেছে নেওয়া হয়েছে। তবে এটি তথ্যের মানদণ্ডের ভিত্তিতে এবং এখন সেগুলি মেনে চলছে; নির্বাচিত মডেলের এআইসি, এআইসিসি এবং বিআইসি কম রয়েছে, যদিও এআইসি এবং এআইসিসির জন্য পার্থক্যগুলি খুব কম। কমপক্ষে এখন নির্বাচন তথ্য মানদণ্ডের উপর ভিত্তি করে মডেলগুলি বেছে নেওয়ার মানগুলির সাথে সামঞ্জস্যপূর্ণ।

এমএ (১) নির্বাচিত হওয়ার কারণ, আমি বিশ্বাস করি, আমি উল্লেখ করা প্রথম ইস্যুর সাথে সম্পর্কিত; অর্থাত্ একটি বর্ণিত আরিমা (পি, ডি, কিউ) থেকে আঁকা একটি নমুনার সেরা ফিটিং মডেলটি সত্য মডেলের মতো একই ক্রম হতে পারে না। এটি এলোমেলো নমুনার কারণে। একটি দীর্ঘতর সিরিজ বা পিরিয়ডে আরও বেশি বার্ন করা সত্যিকারের মডেলটি নির্বাচিত হওয়ার সুযোগটি বাড়িয়ে তুলতে সাহায্য করতে পারে তবে এটির উপর ঝুঁকবেন না।

নির্বিশেষে, এখানে নৈতিকতা হ'ল যখন আপনার প্রশ্নের মতো কিছু স্পষ্টতই ভুল দেখায়, তখন নিজেকে নিশ্চিত করে তুলতে সম্পর্কিত ম্যান পৃষ্ঠা বা ডকুমেন্টেশন পড়ুন যে আপনি বুঝতে পারবেন যে সফ্টওয়্যারটি কীভাবে কাজ করে।


বিস্তারিত প্রতিক্রিয়া জন্য ধন্যবাদ। আমি আপনার পদ্ধতির দ্বিতীয় উদাহরণটির জন্য ব্যবহার করেছি: set.seed (453) y <- arima.sim (n = 500, list (ar = 0.2, ma = 0.6), মানে = 10) auto.arima (y, আনুমানিক = মিথ্যা) এবং এটিই আমি পেয়েছি, এটি স্পষ্টতই উপাত্তকে ফিট করে দিচ্ছে - এআরআইএমএ (2,0,4) নন-শূন্য মানে সহগ সহ: আআআআআআআআআআআআআআআআআআআআআআআআআআরআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআءরMA: 0.0533 0.0630 0.0793 0.0574 0.0927 সিগমা ^ 2 1.024 হিসাবে অনুমান: লগ সম্ভাবনা = -716.17 এআইসি = 1448.33 এআইসিসি = 1448.63 বিআইসি = 1482.05
পূর্বাভাস

"অবিচ্ছিন্নতা" বলে কিছু আছে এমন অধ্যায়টি আমি এখনও পড়িনি। দ্বিতীয় ক্ষেত্রে অটো.রিমা কি মডেল নির্ণয়ের ক্ষেত্রে "ইনভারটিবলিটি" বিধি লঙ্ঘন করে ?, আমি বন্ধ হতে পারি, আমি ভুল হলে আপনি কি সংশোধন করতে পারেন?
পূর্বাভাসকারী

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

এই প্রশ্নের উত্তর দিতে সক্ষম হওয়ার জন্য আমি কীভাবে পুরোপুরি ভালভাবে জানি না ver সম্ভবত এটি এখানে নতুন প্রশ্ন হিসাবে জিজ্ঞাসা করবেন ?
মনিকা পুনরায় ইনস্টল করুন - জি সিম্পসন

@ ফরেস্টার (আমি বিআইসি বলার কারণ, এটি জটিলতার উপরে অতিরিক্ত জরিমানা রাখে this এক্ষেত্রে, আরিমার বিআইসির (১, ০, ১) মডেলটি স্থিত হওয়ার চেয়ে কম বিআইসির রয়েছে auto.arima(), তাই যদি সেগুলি কেবল দুটি ছিল প্রার্থী মডেলগুলি, সবচেয়ে সহজটি নির্বাচন করা হত ...)
মনিকা পুনরায় ইনস্টল করুন - জি। সিম্পসন

2

আমার প্রশ্নের জবাব দেওয়ার জন্য @ গ্যাভিন, @ আইরিশট্যাট এবং @ রবকে অনেক ধন্যবাদ। এটি স্পষ্ট যে আমার যদি অটো.রিমা বিআইসির তথ্য মানদণ্ডের মতো স্বয়ংক্রিয় অ্যালগরিদম থেকে একটি পার্সিমোনিয়াস মডেল প্রয়োজন হয় তবে বিশেষত উপরের এই পোস্টটি এবং @ গ্যাভিনের পোস্ট দেখার পরে এআইসির বিপরীতে হিসাবে ব্যবহার করা উচিত ।

আমি @ আইরিশটাতের সাথেও অনেকটা একমত যে আইসি মানদণ্ডের উপর ভিত্তি করে একটি মডেল বেছে নেওয়ার ক্ষেত্রে সীমাবদ্ধতা রয়েছে যা বিদেশী এবং স্তরের শিফ্টের সাথে কোনও ডেটা ফিট করার জন্য আরও ভাল মডেল পছন্দ করে না। আমার মতে, outliers + লেভেল শিফট + অগোছালো ডেটা = আসল শব্দ ব্যবসায়ের ডেটা , অন্য কিছু হ'ল পাঠ্যপুস্তকের ডেটাসেট। যে কোনও স্বয়ংক্রিয় মডেল যা বিদেশীদের + স্তর পরিবর্তনগুলি বিবেচনা করে না, আবার আমার মতে সাবধানতার সাথে ব্যবহার করা উচিত।

কোডটিতে আসছে - অটো.আরিমার কাছে এআইসি বা বিআইসির মধ্যে নির্বাচন করার বিকল্প রয়েছে। উপরের প্রশ্নগুলি থেকে কোডটি সংশোধন করা হয়েছে নীচে দেখুন।

অনেক ধন্যবাদ ক্রস-বৈধতাযুক্ত সম্প্রদায়। আমি প্রতিদিন নতুন এবং আকর্ষণীয় জিনিস শিখি

###############
set.seed(453)
y <- arima.sim(n=500,list(ar=0.2,ma=0.6),mean = 10)

## Adequetly describes the unknown data
fit.aic <- auto.arima(y,ic = c("aic"))
fit.aic

## Selects the model that is parsimonious
fit.bic <- auto.arima(y,ic = c("bic"))
fit.bic

বিআইসি আইসি একটি এমএ (2) মডেল চয়ন করে।

> fit.bic
Series: y 
ARIMA(0,0,2) with non-zero mean 

Coefficients:
         ma1     ma2  intercept
      0.9256  0.2335    20.0326
s.e.  0.0453  0.0444     0.0992

sigma^2 estimated as 1.059:  log likelihood=-724.19
AIC=1456.39   AICc=1456.47   BIC=1473.24

1

আমি 500 মানগুলি অটোবক্সে নিয়েছি (বাণিজ্যিক সফ্টওয়্যারের একটি অংশ যা আমি বিকাশে সাহায্য করেছি) এবং এখানে চিত্র বর্ণনা লিখুনপরামিতিগুলির স্থায়িত্বের জন্য চৌ টেস্টের উপর ভিত্তি করে নীচের পরামর্শকটি পেয়েছি । একটি সময় সিরিজের অধ্যয়নের জন্য করা একটি খুব প্রাথমিক ভুল হ'ল ধ্রুবক প্যারামিটার সহ একটি নির্দিষ্ট মডেল দ্বারা ডেটা চালিত হয় তা ধরে নেওয়া। অটোবক্স 246 পিরিয়ডে একটি ব্রেক পয়েন্ট সনাক্ত করেছে যা "স্নিগ্ধ" না হয়ে এমন একটি অনুকরণ প্রতিফলিত করতে পারে। যখন অনুকরণের ডেটা ভাল অনুশীলন হয় প্রথম "এন" মানগুলি মুছে ফেলা এবং তারপরে বাকী মানগুলি অধ্যয়ন করা। আমি ডেটা নিয়েছি এবং এটি দুটি বিভাগে বিভক্ত করেছি; প্রথম 245 এবং বাকি 255। এখানে দুটি এখানে চিত্র বর্ণনা লিখুনঅত্যন্ত ভিন্নরকম এসিফ প্লট রয়েছে এখানে চিত্র বর্ণনা লিখুন

বিশ্লেষণে ফিরে: এখানে এমন মডেল যা সর্বশেষ 246 মানগুলির জন্য চিহ্নিত হয়েছিল এখানে চিত্র বর্ণনা লিখুনএবং এখানে এখানে চিত্র বর্ণনা লিখুননিম্নলিখিত পরিসংখ্যানগুলির সাথে রয়েছে এখানে চিত্র বর্ণনা লিখুন। প্রকৃত / ফিট এবং পূর্বাভাস এখানে এখানে চিত্র বর্ণনা লিখুনঅবশিষ্টাংশের প্লট রয়েছে এখানে চিত্র বর্ণনা লিখুন। অবশিষ্টদের এসিএফ পর্যাপ্ততার পরামর্শ দেয়এখানে চিত্র বর্ণনা লিখুন। নোট করুন যে 5 টি ডাল সনাক্ত করা হয়েছিল তার খুব ছোট প্রভাব ছিল এবং সহজেই তা উপেক্ষা করা যেতে পারে (এই ক্ষেত্রে!)। সংক্ষেপে এখানে শিখানো পাঠটি হ'ল আমাদের মাঝে খুব বেশি ডেটা থাকে এবং আমাদের সময় সহগ পরিবর্তন করার বিষয়টি বিবেচনা করতে হবে। এই ক্ষেত্রে আমরা প্যারামিটারগুলির একটি পরিবর্তন চিহ্নিত করছি যা (স্পষ্টতই) ফলাফল মডেল / পরামিতিগুলির উপর বড় প্রভাব ফেলবে না তবে এটি সময় সিরিজের বিশ্লেষণে একটি সাধারণভাবে প্রয়োজনীয় প্রক্রিয়া উন্নতির উল্লেখ করে। অটো.আরিমার সাথে আমার অভিজ্ঞতা থেকে বোঝা যায় যেহেতু এটি গাউসি লঙ্ঘনের স্পষ্টভাবে চিকিত্সা / প্রতিকার করে না এটি তথ্য থেকে কাঠামো আহরণের চেয়ে historicalতিহাসিক মূল্যবোধগুলির উপর অত্যধিক ঝোঁক দিয়ে ওভার মডেলকে প্রবণ করে। এই ক্ষেত্রে যেহেতু এটি গসিয়ান লঙ্ঘন ছাড়াই একটি কঠোরভাবে নিয়ন্ত্রিত সিমুলেশন ছিল তবে এআরআইএমএ মডেল সনাক্তকরণের ক্ষেত্রে আমি সাধারণত এ জাতীয় ব্যান্ডউইথের সীমাবদ্ধ এবং একক পদক্ষেপের জন্য সন্দেহ করি। বিশ্বাস কিন্তু যাচাই !


0

 exp(AICminAICi)/2

যদি এটি হয় তবে এটি ব্যবহারকারীদের এআইসি (?) এর সাথে একত্রে এই আপেক্ষিক সম্ভাবনাগুলি দেখতে সহায়তা করবে auto.arima( ... trace=TRUE )। উদাহরণ হিসেবে বলা যায়, ডিম তথ্য হিসাবে চালানো এই প্রশ্নের দেয়

                                # relprob = exp( (AICmin - AIC) / 2 ) * 100
 ARIMA(0,1,0) with drift : 784.5    100
 ARIMA(0,1,1) with drift : 784.8     86
 ARIMA(1,1,0) with drift : 784.9     82
 ARIMA(0,1,0)            : 792.4      2
 ARIMA(2,1,2) with drift : Inf    0
 ARIMA(1,1,1) with drift : Inf    0

1
এটি একটি উত্তর বা একটি প্রশ্ন?
টিম

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