প্রশ্নের বর্ণিত সমীকরণে সংজ্ঞায়িত হস্তক্ষেপের সাথে একটি এআর (1) মডেল নীচে প্রদর্শিত হিসাবে লাগানো যেতে পারে। আর্গুমেন্ট transfer
কীভাবে সংজ্ঞায়িত হয়েছে তা লক্ষ্য করুন ; আপনার xtransf
হস্তক্ষেপের প্রতিটিটির জন্য একটি সূচক পরিবর্তনশীল প্রয়োজন (নাড়ি এবং ট্রানজিটরি পরিবর্তন):
require(TSA)
cds <- structure(c(2580L, 2263L, 3679L, 3461L, 3645L, 3716L, 3955L, 3362L,
2637L, 2524L, 2084L, 2031L, 2256L, 2401L, 3253L, 2881L,
2555L, 2585L, 3015L, 2608L, 3676L, 5763L, 4626L, 3848L,
4523L, 4186L, 4070L, 4000L, 3498L),
.Dim = c(29L, 1L),
.Dimnames = list(NULL, "CD"),
.Tsp = c(2012, 2014.33333333333, 12),
class = "ts")
fit <- arimax(log(cds), order = c(1, 0, 0),
xtransf = data.frame(Oct13a = 1 * (seq_along(cds) == 22),
Oct13b = 1 * (seq_along(cds) == 22)),
transfer = list(c(0, 0), c(1, 0)))
fit
# Coefficients:
# ar1 intercept Oct13a-MA0 Oct13b-AR1 Oct13b-MA0
# 0.5599 7.9643 0.1251 0.9231 0.4332
# s.e. 0.1563 0.0684 0.1911 0.1146 0.2168
# sigma^2 estimated as 0.02131: log likelihood = 14.47, aic = -18.94
সহগ এবং এর টি-পরিসংখ্যান দেখে আপনি প্রতিটি হস্তক্ষেপের তাত্পর্য পরীক্ষা করতে পারেন । সুবিধার জন্য, আপনি ফাংশনটি ব্যবহার করতে পারেন ।ω 1ω0ω1coeftest
require(lmtest)
coeftest(fit)
# Estimate Std. Error z value Pr(>|z|)
# ar1 0.559855 0.156334 3.5811 0.0003421 ***
# intercept 7.964324 0.068369 116.4896 < 2.2e-16 ***
# Oct13a-MA0 0.125059 0.191067 0.6545 0.5127720
# Oct13b-AR1 0.923112 0.114581 8.0564 7.858e-16 ***
# Oct13b-MA0 0.433213 0.216835 1.9979 0.0457281 *
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
এই ক্ষেত্রে নাড়িটি তাত্পর্য পর্যায়ে তাত্পর্যপূর্ণ নয়। এর প্রভাব ইতিমধ্যে ট্রানজিটরি পরিবর্তন দ্বারা ক্যাপচার করা যেতে পারে।5%
হস্তক্ষেপের প্রভাবটি নিম্নরূপে মঞ্জুর করা যেতে পারে:
intv.effect <- 1 * (seq_along(cds) == 22)
intv.effect <- ts(
intv.effect * 0.1251 +
filter(intv.effect, filter = 0.9231, method = "rec", sides = 1) * 0.4332)
intv.effect <- exp(intv.effect)
tsp(intv.effect) <- tsp(cds)
আপনি নীচে হস্তক্ষেপের প্রভাবটি প্লট করতে পারেন:
plot(100 * (intv.effect - 1), type = "h", main = "Total intervention effect")
প্রভাব তুলনামূলকভাবে স্থায়ী কারণ কাছাকাছি (যদি সমান হয় তবে আমরা স্থায়ী স্তরের শিফটটি পর্যবেক্ষণ করব)। 1 ω 2 1ω21ω21
সংখ্যায়, অক্টোবরে হস্তক্ষেপের কারণে প্রতিটি সময় পয়েন্টে এগুলি আনুমানিক বৃদ্ধি পরিমাণ হ'ল:
window(100 * (intv.effect - 1), start = c(2013, 10))
# Jan Feb Mar Apr May Jun Jul Aug Sep Oct
# 2013 74.76989
# 2014 40.60004 36.96366 33.69046 30.73844 28.07132
# Nov Dec
# 2013 49.16560 44.64838
হস্তক্ষেপটি অক্টোবর ২০১৩ এ পর্যবেক্ষণ করা ভেরিয়েবলের মান প্রায় । পরবর্তী সময়ে প্রভাবগুলি কমতে থাকে তবে হ্রাসমান ওজন সহ।75%
আমরা হস্তক্ষেপগুলি হাত দ্বারা তৈরি করতে এবং সেগুলি stats::arima
বহিরাগত রেজিস্ট্রার হিসাবে প্রেরণ করতে পারি । হস্তক্ষেপগুলি একটি ডাল প্লাস এবং প্যারামিটার সহ একটি ট্রানজিটরি পরিবর্তন এবং নিম্নলিখিত হিসাবে নির্মিত যেতে পারে।0.9231
xreg <- cbind(
I1 = 1 * (seq_along(cds) == 22),
I2 = filter(1 * (seq_along(cds) == 22), filter = 0.9231, method = "rec",
sides = 1))
arima(log(cds), order = c(1, 0, 0), xreg = xreg)
# Coefficients:
# ar1 intercept I1 I2
# 0.5598 7.9643 0.1251 0.4332
# s.e. 0.1562 0.0671 0.1563 0.1620
# sigma^2 estimated as 0.02131: log likelihood = 14.47, aic = -20.94
উপরের মত সহগগুলির একই অনুমান পাওয়া যায়। এখানে আমরা থেকে স্থির । ম্যাট্রিক্স এমন এক ধরণের ডামি ভেরিয়েবল যা আপনাকে বিভিন্ন পরিস্থিতিতে চেষ্টা করার প্রয়োজন হতে পারে। আপনি জন্য আলাদা মান নির্ধারণ করতে এবং এর প্রভাবটির তুলনা করতে পারেন। 0.9231 ω 2ω20.9231xreg
ω2
এই হস্তক্ষেপগুলি প্যাকেজে সংজ্ঞায়িত একটি অ্যাডেটিভ আউটলেটর (এও) এবং একটি ট্রানজিটরি পরিবর্তন (টিসি) এর সমতুল্য tsoutliers
। আপনি এই প্যাকেজটি @ ফোরকাস্টার দ্বারা উত্তরে প্রদর্শিত প্রতিক্রিয়াগুলি সনাক্ত করতে বা পূর্বে ব্যবহৃত রেজিস্ট্রারগুলি তৈরি করতে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, এই ক্ষেত্রে:
require(tsoutliers)
mo <- outliers(c("AO", "TC"), c(22, 22))
oe <- outliers.effects(mo, length(cds), delta = 0.9231)
arima(log(cds), order = c(1, 0, 0), xreg = oe)
# Coefficients:
# ar1 intercept AO22 TC22
# 0.5598 7.9643 0.1251 0.4332
# s.e. 0.1562 0.0671 0.1563 0.1620
# sigma^2 estimated as 0.02131: log likelihood=14.47
# AIC=-20.94 AICc=-18.33 BIC=-14.1
সম্পাদনা 1
আমি দেখেছি যে আপনি যে সমীকরণটি দিয়েছিলেন সেটি আবার লিখতে পারে:
(ω0+ω1)−ω0ω2B1−ω2BPt
এবং এটি আপনি যেমন ব্যবহার করেছিলেন তেমন নির্দিষ্ট করা যায় transfer=list(c(1, 1))
।
নীচে দেখানো হিসাবে, এই পরামিতিগুলি পূর্ববর্তী পরামিতিগুলির তুলনায় পৃথক প্রভাব জড়িত প্যারামিটার অনুমানগুলিতে নেতৃত্ব দেয়। এটি আমাকে ডাল প্লাস একটি ট্রানজিটরি পরিবর্তনের পরিবর্তে একটি উদ্ভাবনী আউটলারের প্রভাবের কথা মনে করিয়ে দেয়।
fit2 <- arimax(log(cds), order=c(1, 0, 0), include.mean = TRUE,
xtransf=data.frame(Oct13 = 1 * (seq(cds) == 22)), transfer = list(c(1, 1)))
fit2
# ARIMA(1,0,0) with non-zero mean
# Coefficients:
# ar1 intercept Oct13-AR1 Oct13-MA0 Oct13-MA1
# 0.7619 8.0345 -0.4429 0.4261 0.3567
# s.e. 0.1206 0.1090 0.3993 0.1340 0.1557
# sigma^2 estimated as 0.02289: log likelihood=12.71
# AIC=-15.42 AICc=-11.61 BIC=-7.22
আমি প্যাকেজের স্বরলিপিটির সাথে খুব বেশি পরিচিত নই TSA
তবে আমি মনে করি যে হস্তক্ষেপের প্রভাবটি এখন নীচে হিসাবে পরিমাপ করা যেতে পারে:
intv.effect <- 1 * (seq_along(cds) == 22)
intv.effect <- ts(intv.effect * 0.4261 +
filter(intv.effect, filter = -0.4429, method = "rec", sides = 1) * 0.3567)
tsp(intv.effect) <- tsp(cds)
window(100 * (exp(intv.effect) - 1), start = c(2013, 10))
# Jan Feb Mar Apr May Jun Jul Aug
# 2014 -3.0514633 1.3820052 -0.6060551 0.2696013 -0.1191747
# Sep Oct Nov Dec
# 2013 118.7588947 -14.6135216 7.2476455
plot(100 * (exp(intv.effect) - 1), type = "h",
main = "Intervention effect (parameterization 2)")
এর প্রভাবটি এখন অক্টোবর ২০১৩ এর তীব্র বৃদ্ধি হিসাবে বর্ণনা করা যেতে পারে এবং তারপরে বিপরীত দিকে হ্রাস; তারপরে হস্তক্ষেপের প্রভাব ক্ষয়কারী ওজনের ইতিবাচক এবং নেতিবাচক প্রভাবগুলি পরিবর্তিত করে দ্রুত অদৃশ্য হয়ে যায়।
এই প্রভাবটি কিছুটা অদ্ভুত তবে বাস্তব ডেটাতে এটি সম্ভব হতে পারে। এই মুহুর্তে আমি আপনার ডেটা প্রসঙ্গে এবং ইভেন্টগুলিতে ডেটা প্রভাবিত হতে পারে at উদাহরণস্বরূপ, কোনও নীতি পরিবর্তন, বিপণন প্রচারণা, আবিষ্কার, ... হয়েছে যা অক্টোবর ২০১৩ এর হস্তক্ষেপের ব্যাখ্যা দিতে পারে so যদি তাই হয়, তবে কি আরও বোধগম্য যে এই ঘটনাটি আমাদের বর্ণিত ডেটাগুলির উপর আগে বা বর্ণিত হিসাবে প্রভাব ফেলেছে? প্রাথমিক প্যারামিটারাইজেশন দিয়ে?
এআইসির মতে, প্রাথমিক মডেলটি পছন্দ করা হবে কারণ এটি কম ( বিপরীতে )। মূল সিরিজের প্লটটি দ্বিতীয় হস্তক্ষেপ পরিবর্তনশীলের পরিমাপের সাথে জড়িত তীক্ষ্ণ পরিবর্তনের সাথে একটি পরিষ্কার মিলের পরামর্শ দেয় না।- 15.42−18.94−15.42
তথ্যের প্রসঙ্গটি না জেনে আমি বলব যে প্যারামিটার সহ একটি ট্রানজিটরি পরিবর্তন সহ একটি এআর (1) মডেল ডেটা মডেল করার এবং হস্তক্ষেপটি পরিমাপ করার পক্ষে উপযুক্ত হবে।0.9
সম্পাদনা 2
এর মান নির্ধারণ করে যে হস্তক্ষেপের প্রভাবটি কত দ্রুত শূন্যে নেমেছে, তাই এটি মডেলের মূল পরামিতি। আমরা মডেলটিকে এর মানের একটি সীমার জন্য ফিটিং করে এটি পরিদর্শন করতে পারি । নীচে, এআইসি এই প্রতিটি মডেলের জন্য সঞ্চিত।ω 2ω2ω2
omegas <- seq(0.5, 1, by = 0.01)
aics <- rep(NA, length(omegas))
for (i in seq(along = omegas)) {
tc <- filter(1 * (seq_along(cds) == 22), filter = omegas[i], method = "rec",
sides = 1)
tc <- ts(tc, start = start(cds), frequency = frequency(cds))
fit <- arima(log(cds), order = c(1, 0, 0), xreg = tc)
aics[i] <- AIC(fit)
}
omegas[which.min(aics)]
# [1] 0.88
plot(omegas, aics, main = "AIC for different values of the TC parameter")
সর্বনিম্ন এআইসি (পূর্বে অনুমান মানের সাথে একমত হয়ে) এর জন্য পাওয়া যায় । এই প্যারামিটারে তুলনামূলকভাবে অবিচ্ছিন্ন তবে ট্রানজিটরি প্রভাব জড়িত। আমরা এই উপসংহারে পৌঁছাতে পারি যে প্রভাবটি অস্থায়ী, যেহেতু এআইসির পরিমাণ এর চেয়ে বেশি হয় (মনে রাখবেন যে সীমাতে, , হস্তক্ষেপটি স্থায়ী স্তরের শিফটে পরিণত হয়)।0.9 ω 2 = 1ω2=0.880.9ω2=1
হস্তক্ষেপ পূর্বাভাস অন্তর্ভুক্ত করা উচিত। ইতিমধ্যে পর্যবেক্ষণ করা সময়কালের জন্য পূর্বাভাস পাওয়া পূর্বাভাসের কার্যকারিতা মূল্যায়নের জন্য একটি সহায়ক অনুশীলন। কোড নিচে ধরে নেয় যে অক্টোবর 2013 পূর্বাভাস সিরিজ প্রান্ত তারপর পরামিতি সঙ্গে হস্তক্ষেপ সহ পাওয়া যায় ।ω2=0.9
প্রথমে আমরা রেজিস্ট্রার হিসাবে হস্তক্ষেপের সাথে এআর (1) মডেলটি ফিট করি (প্যারামিটার ):ω2=0.9
tc <- filter(1 * (seq.int(length(cds) + 12) == 22), filter = 0.9, method = "rec",
sides = 1)
tc <- ts(tc, start = start(cds), frequency = frequency(cds))
fit <- arima(window(log(cds), end = c(2013, 10)), order = c(1, 0, 0),
xreg = window(tc, end = c(2013, 10)))
পূর্বাভাস নিম্নলিখিত হিসাবে প্রাপ্ত এবং প্রদর্শিত হতে পারে:
p <- predict(fit, n.ahead = 19, newxreg = window(tc, start = c(2013, 11)))
plot(cbind(window(cds, end = c(2013, 10)), exp(p$pred)), plot.type = "single",
ylab = "", type = "n")
lines(window(cds, end = c(2013, 10)), type = "b")
lines(window(cds, start = c(2013, 10)), col = "gray", lty = 2, type = "b")
lines(exp(p$pred), type = "b", col = "blue")
legend("topleft",
legend = c("observed before the intervention",
"observed after the intervention", "forecasts"),
lty = rep(1, 3), col = c("black", "gray", "blue"), bty = "n")
প্রথম পূর্বাভাস তুলনায় ভাল পর্যবেক্ষণ করা মানগুলি (ধূসর বিন্দুযুক্ত রেখা) সাথে মেলে। বাকি পূর্বাভাসগুলি দেখায় যে সিরিজটি কীভাবে মূল গড়ের পথে চালিয়ে যাবে। আত্মবিশ্বাসের ব্যবধানগুলি তবুও বড়, এটি অনিশ্চয়তার প্রতিফলন করে। সুতরাং আমাদের সতর্কতা অবলম্বন করা উচিত এবং নতুন ডেটা রেকর্ড করা হওয়ায় মডেলটি সংশোধন করা উচিত।
95%পূর্বের প্লটে আস্থা অন্তর অন্তর্ভুক্ত করা যেতে পারে:
lines(exp(p$pred + 1.96 * p$se), lty = 2, col = "red")
lines(exp(p$pred - 1.96 * p$se), lty = 2, col = "red")