এটি একটি দীর্ঘ পোস্ট তাই আমি আশা করি আপনি আমার সাথে সহ্য করতে পারেন, এবং আমি যেখানে ভুল করছি দয়া করে আমাকে সংশোধন করুন।
আমার লক্ষ্যটি 3 বা 4 সপ্তাহের historicalতিহাসিক তথ্যের ভিত্তিতে একটি দৈনিক পূর্বাভাস উত্পাদন করা।
ট্রান্সফরমার লাইনের একের স্থানীয় লোডের ডেটাটি 15 মিনিটের ডেটা। একটি মৌসুমী আরিমা প্রক্রিয়াটির মডেল অর্ডার খুঁজতে আমার সমস্যা হচ্ছে। বিদ্যুৎ চাহিদা সময় সিরিজ বিবেচনা করুন:
আসল সময় সিরিজ http://i.share.pho.to/80d86574_l.png
প্রথম 3 সপ্তাহ যখন সাবসেট হিসাবে নেওয়া হয় এবং ফলসিং এসিএফ / পিএসিএফ প্লটগুলি গণনা করা হয়:
সাবসেট http://i.share.pho.to/5c165aef_l.png
প্রথম পার্থক্য http://i.share.pho.to/b7300cc2_l.png
মৌসুমী এবং প্রথম পার্থক্য http://i.share.pho.to/570c5397_l.png
দেখে মনে হচ্ছে সিরিজটি কিন্ডা স্টেশনারি। তবে মৌসুমীও সাপ্তাহিক হতে পারে ( মৌসুমী পার্থক্য সপ্তাহ এবং দ্বিতীয় ক্রমের পার্থক্য দেখুন [এখানে] http://share.pho.to/3owoq , আপনি কী ভাবেন?)
সুতরাং আসুন উপসংহারে আসা যাক যে মডেলটি আকার নেয়:
Series: x
ARIMA(0,1,4)(0,1,1)[96]
Coefficients:
ma1 ma2 ma3 ma4 sma1
-0.2187 -0.2233 -0.0996 -0.0983 -0.9796
s.e. 0.0231 0.0234 0.0257 0.0251 0.0804
sigma^2 estimated as 364612: log likelihood=-15138.91
**AIC=30289.82 AICc=30289.87 BIC=30323.18**
Series: x
ARIMA(1,1,1)(2,0,2)[96]
Coefficients:
ar1 ma1 sar1 sar2 sma1 sma2
0.7607 -1.0010 0.4834 0.4979 -0.3369 -0.4168
s.e. 0.0163 0.0001 0.0033 0.0116 0.0216 0.0255
sigma^2 estimated as 406766: log likelihood=-15872.02
**AIC=31744.99 AICc=31745.05 BIC=31784.25**
যার অর্থ কোনও মৌসুমী ভিন্নতা প্রয়োগ করা হয় না। উভয় মডেলের অবশিষ্টাংশ এখানে । ল্যাজং বক্সের পরিসংখ্যানগুলি খুব সামান্য পি মান দেয়, এটি নির্দেশ করে যে এখনও কিছু অটোকোররিলেশন উপস্থিত রয়েছে (? আমি ভুল হলে আমাকে সংশোধন করি)।
পূর্বাভাস
সুতরাং কোনটি ভাল তা নির্ধারণ করার জন্য, একটি আউট-স্যাম্পল যথার্থতা পরীক্ষা সর্বোত্তম। সুতরাং উভয় মডেলের জন্য একটি পূর্বাভাস 24 ঘন্টা এগিয়ে করা হয় যা একে অপরের সাথে তুলনা করা হয়। ফলাফলগুলি হ'ল : Auto.arima http://i.share.pho.to/5d1dd934_l.png ম্যানুয়াল মডেল http://i.share.pho.to/7ca69c97_l.png
অটো:
ME RMSE MAE MPE MAPE MASE ACF1 Theil's U
Training set -2.586653 606.3188 439.1367 -1.284165 7.599403 0.4914563 -0.01219792 NA
Test set -330.144797 896.6998 754.0080 -7.749675 13.268985 0.8438420 0.70219229 1.617834
ম্যানুয়াল
ME RMSE MAE MPE MAPE MASE ACF1 Theil's U
Training set 2.456596e-03 589.1267 435.6571 -0.7815229 7.509774 0.4875621 -0.002034122 NA
Test set 2.878919e+02 919.7398 696.0593 3.4756363 10.317420 0.7789892 0.731013599 1.281764
প্রশ্নাবলি
আপনি যেমন এটি ভাবতে পারেন এটি কোনও ডেটাসেটের প্রথম তিন সপ্তাহের একটি বিশ্লেষণ। আমি নিম্নলিখিত প্রশ্নগুলি নিয়ে আমার মনে সংগ্রাম করছি:
- আমি কীভাবে সেরা আরিমা মডেলটি নির্বাচন করব (সমস্ত বিভিন্ন অর্ডার দিয়ে চেষ্টা করে এবং সেরা এমএসই / এমএপিই / এমএসই পরীক্ষা করে? যেখানে পারফরম্যান্স পরিমাপের নির্বাচনটি তার নিজস্ব আলোচনার হতে পারে ..)
- আমি যদি প্রতিটি নতুন দিনের পূর্বাভাসের জন্য একটি নতুন মডেল এবং পূর্বাভাস তৈরি করি (অনলাইন পূর্বাভাসের মতো), আমার কি বার্ষিক প্রবণতা অ্যাকাউন্টে নেওয়া দরকার এবং কীভাবে? (যেমন একটি ছোট উপসেট হিসাবে আমার ধারণা যে প্রবণতা অবহেলা করা হবে)
- আপনি কি আশা করতে পারেন যে মডেল অর্ডারটি পুরো ডেটাসেট জুড়ে একই থাকে, যখন অন্য কোনও উপসেট নেওয়ার সময় এটি আমাকে একই মডেলটি দেবে?
- একটি ভাল উপায় কি, এই পদ্ধতির মধ্যে ছুটির দিনগুলি মোকাবেলা করার জন্য? বা এর জন্য বাহ্যিক ছুটির ডামি সহ আরিম্যাক্সের প্রয়োজন?
- দীর্ঘ মৌসুমী কাল
seasonality=672
হিসাবে আলোচিত মডেলগুলি চেষ্টা করার জন্য কি আমার ফুরিয়ার সিরিজ পদ্ধতির ব্যবহার করা দরকার ? - যদি তা হয় তবে
fit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)
(যেখানে হিন্ডম্যানের ব্লগ পোস্টে ফাংশন ফুরিয়ার সংজ্ঞায়িত করা হয়েছে) - প্রাথমিক পি এবং কিউ উপাদানগুলি ফুরিয়ার সিরিজের সাথে অন্তর্ভুক্ত করা হয়েছে?
সর্বাধিক তাত্ত্বিক জ্ঞান এফপিপি থেকে প্রাপ্ত , দুর্দান্ত স্টাফ!
এক্সফোনেনশিয়াল স্মুথিং বা (ডায়নামিক) লিনিয়ার রিগ্রেশন ব্যবহার করার বিষয়ে পরামর্শ দেওয়ার আগে এটি তুলনা করার জন্যও কাজ করা হচ্ছে।
উপাত্ত
https://www.dropbox.com/sh/mzx61sskya5ze6x/Zq3A7Q6htH/trafo.txt
কোড
data<-read.csv("file", sep=";")
load<-data[,3]
আমি সপ্তাহের আগে মানগুলির সাথে কয়েকটি শূন্য মান সরিয়েছি
stepback<-672
load[is.na(load)] <- 0 # Assumed no 0's in first 672 values!
idx <- which(load == 0)
idx <- idx[which(idx>stepback)]
load[idx] <- load[idx-stepback]
ED<-ts(load,start=0, end=c(760,96),frequency=96)
x<-window(ED,start=0, end=c(20,96))
একটি পুনরুত্পাদনযোগ্য উদাহরণ পোস্ট করাও সম্ভব তবে এটি পোস্টটিকে আরও দীর্ঘ করে দেবে, তবে প্রয়োজনে সম্ভবও হতে পারে। সুতরাং আমার যদি কিছু সরবরাহ করা উচিত তবে দয়া করে আমাকে জানান।