টাইমরিজ বিশ্লেষণ পদ্ধতি এবং আর ব্যবহার করে পদ্ধতিগুলি


13

আমি একটি ছোট প্রকল্পে কাজ করছি যেখানে আমরা আগামী 6 মাসের জন্য পণ্যগুলির (তেল, অ্যালুমিনিয়াম, টিন ইত্যাদি) দামের পূর্বাভাস দেওয়ার চেষ্টা করছি। আমার কাছে ভবিষ্যদ্বাণী করার মতো 12 টি ভেরিয়েবল রয়েছে এবং আমার এপ্রিল, ২০০৮ - মে, ২০১৩ এর ডেটা রয়েছে।

আমার কীভাবে ভবিষ্যদ্বাণী করা উচিত? আমি নিম্নলিখিতগুলি করেছেন:

  • টাইমসারি ডেটাসেট হিসাবে ডেটা আমদানি করা
  • সমস্ত ভেরিয়েবলের মৌসুমতা ট্রেন্ডের সাথে পরিবর্তিত হয়, তাই আমি গুণক মডেলটিতে যাচ্ছি।
  • আমি অ্যাডিটিভ মডেলে রূপান্তরিত করতে ভেরিয়েবলের লগ নিই
  • প্রতিটি ভেরিয়েবলের জন্য এসটিএল ব্যবহার করে ডেটা পচে যায়

পূর্বাভাসের জন্য আমি হোল্ট উইন্টার্স এক্সফোনেনশিয়াল স্মুথিং, আরিমা এবং নিউরাল নেট ব্যবহার করার পরিকল্পনা করছি। আমি প্রশিক্ষণ এবং পরীক্ষা হিসাবে ডেটা বিভক্ত (80, 20)। কম এমএই, এমপিই, এমএপিই এবং এমএএসই সহ মডেলটি বেছে নেওয়ার পরিকল্পনা করছেন।

আমি কি এটা ঠিক করছি?

এছাড়াও আমার একটি প্রশ্ন ছিল, আরিমা বা নিউরাল নেটে যাওয়ার আগে কি ডেটা মসৃণ করা উচিত? যদি হ্যাঁ, কি ব্যবহার? ডেটা Seতু এবং প্রবণতা উভয়ই দেখায়।

সম্পাদনা করুন:

টাইমসারি প্লট এবং ডেটা সংযুক্ত করা এখানে চিত্র বর্ণনা লিখুন

Year  <- c(2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2009, 2009, 
           2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2009, 2010, 
           2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 
           2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 2011, 
           2011, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 
           2012, 2012, 2013, 2013)
Month <- c(4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 
           12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 
           8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2) 
Coil  <- c(44000, 44500, 42000, 45000, 42500, 41000, 39000, 35000, 34000, 
           29700, 29700, 29000, 30000, 30000, 31000, 31000, 33500, 33500, 
           33000, 31500, 34000, 35000, 35000, 36000, 38500, 38500, 35500, 
           33500, 34500, 36000, 35500, 34500, 35500, 38500, 44500, 40700, 
           40500, 39100, 39100, 39100, 38600, 39500, 39500, 38500, 39500, 
           40000, 40000, 40500, 41000, 41000, 41000, 40500, 40000, 39300, 
           39300, 39300, 39300, 39300, 39800)
coil <- data.frame(Year = Year, Month = Month, Coil = Coil)

সম্পাদনা 2: একটি প্রশ্ন, আমার ডেটাতে কোনও seasonতু বা প্রবণতা আছে কিনা আপনি দয়া করে আমাকে বলতে পারেন? এবং দয়া করে সেগুলি কীভাবে সনাক্ত করতে হয় সে সম্পর্কে আমাকে কিছু টিপস দিন। এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন


2
আপনি যদি বিভিন্ন ধরণের ধাতব (ইস্পাত এ, ইস্পাত বি, ইস্পাত সি ইত্যাদি) পণ্যগুলির গোষ্ঠীগুলির পূর্বাভাস দেওয়ার চেষ্টা করছেন তবে এটি সংযুক্তির অস্তিত্বের জন্য পরীক্ষা করার উপযুক্ত হতে পারে। উদাহরণস্বরূপ, এর মতো কিছু: ইস্পাতের দামগুলি কি একসাথে সরানো হয়? । এটি অবিচ্ছিন্ন পদ্ধতিগুলির তুলনায় 6 মাসের (মাঝারি / দীর্ঘ মেয়াদী) পূর্বাভাসের সরবরাহ করতে পারে তবে এটি অবশ্যই একটি কঠিন খেলা যা আপনি খেলতে চেষ্টা করছেন। ;-)
গ্রেম ওয়ালশ

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

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

@ ফোরকাস্টার, @ গ্রিমওয়ালশ: আপনাকে ধন্যবাদ। আমি এডিএফ পরীক্ষা ব্যবহার করে সমন্বয় পদ্ধতি ব্যবহার করার পরিকল্পনা করছি to
নিরঞ্জন সোনচালাম

1
আপনি আপনার নতুন প্রশ্নে প্রসঙ্গটি সরবরাহ করেছেন এবং এটি এখন ম্যাসারকে বোঝায়। সুতরাং 2009 এর আগে হ্রাস আসলে কিছু ম্যাক্রো অর্থনৈতিক ঘটনা ছিল। এই পরিস্থিতিতে দয়া করে বামন বা (অরিমা (0,1,0) + ড্রিফট
পূর্বাভাসকারী

উত্তর:


21

আপনার পূর্বাভাস প্যাকেজটি ব্যবহার করা উচিত , যা এই সমস্ত মডেলগুলিকে সমর্থন করে (এবং আরও অনেক কিছু) এবং এগুলি একটি স্ন্যাপের জন্য উপযুক্ত করে তোলে:

library(forecast)
x <- AirPassengers
mod_arima <- auto.arima(x, ic='aicc', stepwise=FALSE)
mod_exponential <- ets(x, ic='aicc', restrict=FALSE)
mod_neural <- nnetar(x, p=12, size=25)
mod_tbats <- tbats(x, ic='aicc', seasonal.periods=12)
par(mfrow=c(4, 1))
plot(forecast(mod_arima, 12), include=36)
plot(forecast(mod_exponential, 12), include=36)
plot(forecast(mod_neural, 12), include=36)
plot(forecast(mod_tbats, 12), include=36)

আমি আপনার মডেল ফিট করার আগে ডেটা মসৃণ করার বিরুদ্ধে পরামর্শ দেব। আপনার মডেল সহজাতভাবে ডেটা মসৃণ করার চেষ্টা করতে চলেছে, তাই প্রাক-স্মুথিং কেবল জিনিসগুলিকে জটিল করে তোলে।

এখানে চিত্র বর্ণনা লিখুন

নতুন ডেটার ভিত্তিতে সম্পাদনা করুন:

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

আমি আপনার ডেটা একটি ফাইল কলে সংরক্ষণ করেছি coil.csv, এটিকে আর-তে লোড করেছি এবং এটিকে প্রশিক্ষণ এবং পরীক্ষার সেটে বিভক্ত করেছি:

library(forecast)
dat <- read.csv('~/coil.csv')
x <- ts(dat$Coil, start=c(dat$Year[1], dat$Month[1]), frequency=12)
test_x <- window(x, start=c(2012, 3))
x <- window(x, end=c(2012, 2))

এরপরে আমি বেশ কয়েকটি সময়ের সিরিজের মডেলগুলিতে ফিট করে: আরিমা, এক্সফোনেনশিয়াল স্মুথিং, নিউরাল নেটওয়ার্ক, টিবিটস, ব্যাটস, মরসুমী পচন এবং কাঠামোগত সময় সিরিজ:

models <- list(
  mod_arima = auto.arima(x, ic='aicc', stepwise=FALSE),
  mod_exp = ets(x, ic='aicc', restrict=FALSE),
  mod_neural = nnetar(x, p=12, size=25),
  mod_tbats = tbats(x, ic='aicc', seasonal.periods=12),
  mod_bats = bats(x, ic='aicc', seasonal.periods=12),
  mod_stl = stlm(x, s.window=12, ic='aicc', robust=TRUE, method='ets'),
  mod_sts = StructTS(x)
  )

তারপরে আমি কিছু পূর্বাভাস দিয়েছিলাম এবং পরীক্ষার সেটটির সাথে তুলনা করি। আমি একটি নিষ্পাপ পূর্বাভাস অন্তর্ভুক্ত করেছি যা সর্বদা একটি সমতল, অনুভূমিক রেখার পূর্বাভাস দেয়:

forecasts <- lapply(models, forecast, 12)
forecasts$naive <- naive(x, 12)
par(mfrow=c(4, 2))
for(f in forecasts){
  plot(f)
  lines(test_x, col='red')
}

এখানে চিত্র বর্ণনা লিখুন

আপনি দেখতে পাচ্ছেন, অরিমা মডেলটি প্রবণতাটি ভুল পেয়েছে তবে আমি "বেসিক স্ট্রাকচারাল মডেল" এর মতো দেখতে চাই I

শেষ অবধি, আমি পরীক্ষার সেটগুলিতে প্রতিটি মডেলের যথার্থতা পরিমাপ করেছি:

acc <- lapply(forecasts, function(f){
  accuracy(f, test_x)[2,,drop=FALSE]
})
acc <- Reduce(rbind, acc)
row.names(acc) <- names(forecasts)
acc <- acc[order(acc[,'MASE']),]
round(acc, 2)
                ME    RMSE     MAE   MPE MAPE MASE ACF1 Theil's U
mod_sts     283.15  609.04  514.46  0.69 1.27 0.10 0.77      1.65
mod_bats     65.36  706.93  638.31  0.13 1.59 0.12 0.85      1.96
mod_tbats    65.22  706.92  638.32  0.13 1.59 0.12 0.85      1.96
mod_exp      25.00  706.52  641.67  0.03 1.60 0.12 0.85      1.96
naive        25.00  706.52  641.67  0.03 1.60 0.12 0.85      1.96
mod_neural   81.14  853.86  754.61  0.18 1.89 0.14 0.14      2.39
mod_arima   766.51  904.06  766.51  1.90 1.90 0.14 0.73      2.48
mod_stl    -208.74 1166.84 1005.81 -0.52 2.50 0.19 0.32      3.02

ব্যবহৃত মেট্রিকগুলি হেন্ডম্যান, আরজে এবং অ্যাথানসোপল্লোস, জি। (2014) "পূর্বাভাস: নীতি ও অনুশীলন" তে বর্ণিত হয়েছে , যারা পূর্বাভাস প্যাকেজের লেখকও হয়ে থাকে। আমি আপনাকে তাদের পাঠ্যটি পড়ার জন্য অত্যন্ত পরামর্শ দিচ্ছি: এটি অনলাইনে বিনামূল্যে available স্ট্রাকচারাল টাইম সিরিজটি এমএএসই সহ বেশ কয়েকটি মেট্রিকের সেরা মডেল, যা আমি মডেল নির্বাচনের জন্য পছন্দ করি এমন মেট্রিক।

একটি চূড়ান্ত প্রশ্ন: কাঠামোগত মডেল কি এই পরীক্ষার সেটটিতে ভাগ্যবান হয়েছিল? এটি মূল্যায়নের একটি উপায় প্রশিক্ষণের সেট ত্রুটিগুলি দেখছে। প্রশিক্ষণ সেট ত্রুটিগুলি পরীক্ষার সেট ত্রুটির তুলনায় কম নির্ভরযোগ্য (কারণ তারা অতিরিক্ত ফিট হতে পারে) তবে এই ক্ষেত্রে কাঠামোগত মডেলটি এখনও শীর্ষে আসে:

acc <- lapply(forecasts, function(f){
  accuracy(f, test_x)[1,,drop=FALSE]
})
acc <- Reduce(rbind, acc)
row.names(acc) <- names(forecasts)
acc <- acc[order(acc[,'MASE']),]
round(acc, 2)
                ME    RMSE     MAE   MPE MAPE MASE  ACF1 Theil's U
mod_sts      -0.03    0.99    0.71  0.00 0.00 0.00  0.08        NA
mod_neural    3.00 1145.91  839.15 -0.09 2.25 0.16  0.00        NA
mod_exp     -82.74 1915.75 1359.87 -0.33 3.68 0.25  0.06        NA
naive       -86.96 1936.38 1386.96 -0.34 3.75 0.26  0.06        NA
mod_arima  -180.32 1889.56 1393.94 -0.74 3.79 0.26  0.09        NA
mod_stl     -38.12 2158.25 1471.63 -0.22 4.00 0.28 -0.09        NA
mod_bats     57.07 2184.16 1525.28  0.00 4.07 0.29 -0.03        NA
mod_tbats    62.30 2203.54 1531.48  0.01 4.08 0.29 -0.03        NA

(মনে রাখবেন যে নিউরাল নেটওয়ার্ক ওভারফিট, প্রশিক্ষণ সেটে দুর্দান্ত এবং পরীক্ষার সেটটিতে খারাপভাবে পারফর্ম করছে)

অবশেষে, এই মডেলগুলির সমস্তকেই বৈধতা দেওয়ার পক্ষে একটি ভাল ধারণা হবে, সম্ভবত ২০০৮-২০০৯ / ২০১০-তে পরীক্ষা করা, ২০০৮-২০১০-তে প্রশিক্ষণ / ২০১১-তে প্রশিক্ষণ, ২০০৮-২০১১-এ প্রশিক্ষণ, ২০১২-এ পরীক্ষা, প্রশিক্ষণ ২০০৮-২০১২ তে / ২০১৩-তে পরীক্ষা করা এবং এই সমস্ত সময়কালে জুড়ে গড় ত্রুটি। আপনি যদি সেই পথে নামতে চান তবে আমার কাছে গিথুবটিতে ক্রস-বৈধকরণের সময় সিরিজের মডেলগুলির জন্য একটি আংশিক সম্পূর্ণ প্যাকেজ রয়েছে যা আমি আপনাকে চেষ্টা করতে এবং আমাকে প্রতিক্রিয়া জানাতে / অনুরোধ জানাতে চাই:

devtools::install_github('zachmayer/cv.ts')
library(cv.ts)

সম্পাদনা 2: আমার নিজের প্যাকেজটি কীভাবে ব্যবহার করতে হবে তা মনে আছে কিনা তা দেখতে দিন!

প্রথমত, গিথুব থেকে প্যাকেজটি ইনস্টল করুন এবং লোড করুন (উপরে দেখুন)। তারপরে কিছু মডেলকে (সম্পূর্ণ ডেটাসেট ব্যবহার করে) ক্রস-বৈধতা দিন:

library(cv.ts)
x <- ts(dat$Coil, start=c(dat$Year[1], dat$Month[1]), frequency=12)
ctrl <- tseriesControl(stepSize=1, maxHorizon=12, minObs=36, fixedWindow=TRUE)
models <- list()

models$arima = cv.ts(
  x, auto.arimaForecast, tsControl=ctrl,
  ic='aicc', stepwise=FALSE)

models$exp = cv.ts(
  x, etsForecast, tsControl=ctrl,
  ic='aicc', restrict=FALSE)

models$neural = cv.ts(
  x, nnetarForecast, tsControl=ctrl,
  nn_p=6, size=5)

models$tbats = cv.ts(
  x, tbatsForecast, tsControl=ctrl,
  seasonal.periods=12)

models$bats = cv.ts(
  x, batsForecast, tsControl=ctrl,
  seasonal.periods=12)

models$stl = cv.ts(
  x, stl.Forecast, tsControl=ctrl,
  s.window=12, ic='aicc', robust=TRUE, method='ets')

models$sts = cv.ts(x, stsForecast, tsControl=ctrl)

models$naive = cv.ts(x, naiveForecast, tsControl=ctrl)

models$theta = cv.ts(x, thetaForecast, tsControl=ctrl)

(মনে রাখবেন যে আমি নিউরাল নেটওয়ার্ক মডেলটির নমনীয়তা হ্রাস করেছি, এটি অত্যধিক ফিটনেস থেকে রোধে সহায়তা করার চেষ্টা করার জন্য)

একবার আমরা মডেলগুলি ফিট করে নিলে, আমরা সেগুলি ম্যাপের সাথে তুলনা করতে পারি (সিভি.টিস এখনও ম্যাসকে সমর্থন করে না):

res_overall <- lapply(models, function(x) x$results[13,-1])
res_overall <- Reduce(rbind, res_overall)
row.names(res_overall) <- names(models)
res_overall <- res_overall[order(res_overall[,'MAPE']),]
round(res_overall, 2)
                 ME    RMSE     MAE   MPE MAPE
naive     91.40 1126.83  961.18  0.19 2.40
ets       91.56 1127.09  961.35  0.19 2.40
stl     -114.59 1661.73 1332.73 -0.29 3.36
neural     5.26 1979.83 1521.83  0.00 3.83
bats     294.01 2087.99 1725.14  0.70 4.32
sts     -698.90 3680.71 1901.78 -1.81 4.77
arima  -1687.27 2750.49 2199.53 -4.23 5.53
tbats   -476.67 2761.44 2428.34 -1.23 6.10

সেকি। এটি প্রদর্শিত হবে যে আমাদের কাঠামোগত পূর্বাভাস ভাগ্যবান হয়েছে। দীর্ঘমেয়াদে, নির্বিকার পূর্বাভাসটি 12 মাসের দিগন্ত জুড়ে গড়ে সেরা গড় পূর্বাভাস দেয় (অরিমা মডেলটি এখনও সবচেয়ে খারাপ মডেলগুলির মধ্যে একটি)। আসুন 12 টি পূর্বাভাস দিগন্তের প্রতিটিতে মডেলগুলির তুলনা করুন এবং দেখুন যে তাদের মধ্যে কখনও কোনও নিষ্পাপ মডেলকে পরাজিত করে:

library(reshape2)
library(ggplot2)
res <- lapply(models, function(x) x$results$MAPE[1:12])
res <- data.frame(do.call(cbind, res))
res$horizon <- 1:nrow(res)
res <- melt(res, id.var='horizon', variable.name='model', value.name='MAPE')
res$model <- factor(res$model, levels=row.names(res_overall))
ggplot(res, aes(x=horizon, y=MAPE, col=model)) +
  geom_line(size=2) + theme_bw() +
  theme(legend.position="top") +
  scale_color_manual(values=c(
    "#1f78b4", "#ff7f00", "#33a02c", "#6a3d9a",
    "#e31a1c", "#b15928", "#a6cee3", "#fdbf6f",
    "#b2df8a")
    )

মডেল তুলনা

স্পষ্টতই, ক্ষতিকারক স্মুথিং মডেলটি সর্বদা নিখুঁত মডেলটিকে বেছে নিয়ে থাকে (কমলা রেখা এবং নীল লাইন ওভারল্যাপ 100%)। অন্য কথায়, "পরের মাসের কয়েল দাম একই মাসের কয়েল দামের সমান হবে" এর নিষ্পাপ পূর্বাভাস 7 অত্যন্ত পরিশীলিত সময় সিরিজের মডেলের চেয়ে আরও নির্ভুল (প্রায় প্রতিটি পূর্বাভাস দিগন্তে) is আপনার কাছে কিছু গোপন তথ্য না থাকলে কয়েল বাজার ইতিমধ্যে জানে না, নিষ্পাপ কয়েল দামের পূর্বাভাসকে মারধর করা অত্যন্ত কঠিন হতে চলেছে ।

এটি কখনই উত্তরটি শুনতে চায় না, তবে পূর্বাভাসের সঠিকতা যদি আপনার লক্ষ্য হয় তবে আপনার সর্বাধিক নির্ভুল মডেলটি ব্যবহার করা উচিত। নিষ্পাপ মডেল ব্যবহার করুন।


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

@ গং এটি করার সর্বোত্তম উপায় হোল্ডআউট সেটটি বিভক্ত করা এবং মডেলটি পরীক্ষা করা। মনে রাখবেন যে মডেলটি সেরা স্বল্প-মেয়াদী পূর্বাভাস দেয় তা এমন মডেল নাও হতে পারে যা সেরা দীর্ঘমেয়াদী পূর্বাভাস দেয় ....
জ্যাচ

অনেক ধন্যবাদ, তবে আমি উপরের ডেটাসেটের জন্য ভাল পূর্বাভাস পাচ্ছি না (আমি মনে করি এখানে আমি কিছু গুরুত্বপূর্ণ পদক্ষেপ মিস করছি)। আপনি কি অনুগ্রহ করে আমাকে কিছু মিস করতে চাইলে আমাকে জানান
নিরঞ্জন সোনাচালাম

@ নিরঞ্জন আপনি কি আমাদের বলতে / দেখাতে পারেন যে আপনি কীভাবে সিদ্ধান্তে পৌঁছেছেন যে আপনি ভাল পূর্বাভাস পাচ্ছেন না?
পূর্বাভাসকারী

@forecaster: দয়া করে এখানে পরীক্ষা pbrd.co/1DRPRsq । আমি পূর্বাভাসে নতুন। আপনার যদি কোনও নির্দিষ্ট তথ্যের প্রয়োজন হয় তবে আমাকে জানান। আরিমা মডেল দিয়ে চেষ্টা করেছি।
নিরঞ্জন সোনাচালাম

12

আপনি যে পদ্ধতি গ্রহণ করেছেন তা যুক্তিসঙ্গত। আপনি যদি পূর্বাভাসে নতুন হন, তবে আমি নিম্নলিখিত বইগুলি সুপারিশ করব:

  1. ম্যাক্রিডাকিস, হুইলাইট এবং হ্যান্ডম্যান দ্বারা পূর্বাভাসের পদ্ধতি এবং অ্যাপ্লিকেশন
  2. পূর্বাভাস: হিনডম্যান এবং অ্যাথানাসোপ্লোস দ্বারা নীতি ও অনুশীলন

প্রথম বইটি একটি ক্লাসিক যা আমি দৃ strongly়তার সাথে সুপারিশ করি। দ্বিতীয় বইটি একটি ওপেন সোর্স বই যা আপনি পূর্বাভাস পদ্ধতি এবং Rওপেন সোর্স সফ্টওয়্যার প্যাকেজ পূর্বাভাস ব্যবহার করে কীভাবে এটি প্রয়োগ করা হয় তা উল্লেখ করতে পারেন । উভয় বইই আমি যে পদ্ধতিগুলি ব্যবহার করেছি সেগুলি সম্পর্কে ভাল পটভূমি সরবরাহ করে। আপনি যদি পূর্বাভাস দেওয়ার বিষয়ে গুরুতর হন তবে আমি আর্মস্ট্রং কর্তৃক পূর্বাভাসের নীতিগুলি সুপারিশ করব যা পূর্বাভাস দেওয়ার ক্ষেত্রে প্রচুর পরিমাণে গবেষণার সংগ্রহ যা একজন চিকিত্সকরা এটি খুব সহায়ক বলে মনে করতে পারেন।

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

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

আমি আপনার ডেটাটি মডেল করার চেষ্টা করেছি R's forecast package, আশা করি মন্তব্যগুলি স্বতঃস্পষ্ট।

coil <- c(44000, 44500, 42000, 45000, 42500, 41000, 39000, 35000, 34000, 
          29700, 29700, 29000, 30000, 30000, 31000, 31000, 33500, 33500, 
          33000, 31500, 34000, 35000, 35000, 36000, 38500, 38500, 35500, 
          33500, 34500, 36000, 35500, 34500, 35500, 38500, 44500, 40700, 
          40500, 39100, 39100, 39100, 38600, 39500, 39500, 38500, 39500, 
          40000, 40000, 40500, 41000, 41000, 41000, 40500, 40000, 39300, 
          39300, 39300, 39300, 39300, 39800)


coilts <- ts(coil,start=c(2008,4),frequency=12)

library("forecast")

# Data for modeling
coilts.mod <- window(coilts,end = c(2012,3))

#Data for testing
coil.test <- window(coilts,start=c(2012,4))

# Model using multiple methods - arima, expo smooth, theta, random walk, structural time series

#arima
coil.arima <- forecast(auto.arima(coilts.mod),h=11)

#exponential smoothing
coil.ets <- forecast(ets(coilts.mod),h=11)

#theta
coil.tht <- thetaf(coilts.mod, h=11)

#random walk
coil.rwf <- rwf(coilts.mod, h=11)

#structts
coil.struc <- forecast(StructTS(coilts.mod),h=11)


##accuracy 

arm.acc <- accuracy(coil.arima,coil.test)
ets.acc <- accuracy(coil.ets,coil.test)
tht.acc <- accuracy(coil.tht,coil.test)
rwf.acc <- accuracy(coil.rwf,coil.test)
str.acc <- accuracy(coil.struc,coil.test)

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

এখানে চিত্র বর্ণনা লিখুন

আপনার সুনির্দিষ্ট প্রশ্নের সুনির্দিষ্ট উত্তর: এআরআইএমএ বা নিউরাল নেট এ যাওয়ার আগে আমার কি একটি প্রশ্ন ছিল ডেটা মসৃণ করা উচিত? যদি হ্যাঁ, কি ব্যবহার?

  • না, পূর্বাভাসের পদ্ধতিগুলি মডেলটিকে ফিট করার জন্য আপনার ডেটা স্বাভাবিকভাবে মসৃণ করে।

ডেটা Seতু এবং প্রবণতা উভয়ই দেখায়।

  • উপরের ডেটা প্রবণতা বা মৌসুমীতা প্রদর্শন করে না। আপনি যদি নির্ধারণ করেন যে ডেটা মৌসুমতা এবং প্রবণতা প্রদর্শন করে, তবে একটি উপযুক্ত পদ্ধতি চয়ন করুন।

নির্ভুলতার উন্নতি করার জন্য ব্যবহারিক টিপস:

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

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

সম্পাদন করা

ডেটা মনে হচ্ছে কিছু ধরণের ম্যাক্রো অর্থনৈতিক প্রবণতা অনুসরণ করছে। আমার ধারণা ২০০৯-এর আগে দেখা অর্থনীতির নিম্ন প্রবণতা হ'ল ২০০৮ - ২০০৯-এর মধ্যবর্তী অর্থনীতিতে পতিত হওয়া এবং ২০০৯-এর পরে পোস্ট শুরু করা। যদি এটি হয় তবে আমি সকলেই একসাথে কোনও এক্সট্রা-পোলিশন পদ্ধতি ব্যবহার করা এবং পরিবর্তে কীভাবে শব্দ তত্ত্বের উপর নির্ভর করব এই অর্থনৈতিক প্রবণতা এক হিসাবে যেমন আচরণ রেফারেন্সড @GraemeWalsh দ্বারা।

আশাকরি এটা সাহায্য করবে

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