ARIMA इंटरवेंशन ट्रांसफर फंक्शन - इफेक्ट की कल्पना कैसे करें


11

मेरे पास एक हस्तक्षेप के साथ एक मासिक समय श्रृंखला है और मैं परिणाम पर इस हस्तक्षेप के प्रभाव की मात्रा निर्धारित करना चाहूंगा। मुझे लगता है कि श्रृंखला कम है और प्रभाव अभी तक समाप्त नहीं हुआ है।

आँकड़े

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")

यहाँ छवि विवरण दर्ज करें

कार्यप्रणाली

1) पूर्व-हस्तक्षेप श्रृंखला (अक्टूबर 2013 तक) का उपयोग auto.arimaफ़ंक्शन के साथ किया गया था । गैर-शून्य माध्य के साथ सुझाया गया मॉडल ARIMA (1,0,0) था। एसीएफ प्लॉट अच्छा लग रहा था।

pre <- window(cds, start=c(2012, 01), end=c(2013, 09))

mod.pre <- auto.arima(log(pre))

# Coefficients:
#          ar1  intercept
#       0.5821     7.9652
# s.e.  0.1763     0.0810
# 
# sigma^2 estimated as 0.02709:  log likelihood=7.89
# AIC=-9.77   AICc=-8.36   BIC=-6.64

2) पूर्ण श्रृंखला के कथानक को देखते हुए, नाड़ी प्रतिक्रिया को नीचे चुना गया, टी = अक्टूबर 2013 के साथ,

यहाँ छवि विवरण दर्ज करें

जो क्राइमर और चान के अनुसार अरिमैक्स फ़ंक्शन के अनुसार फिट हो सकता है:

mod.arimax <- arimax(log(cds), order=c(1, 0, 0),
                     seasonal=list(order=c(0, 0, 0), frequency=12),
                     include.mean=TRUE,
                     xtransf=data.frame(Oct13=1 * (seq(cds) == 22)),
                     transfer=list(c(1, 1)))
mod.arimax

# Series: log(cds) 
# 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

इससे अवशिष्ट ठीक दिखाई दिए:

यहाँ छवि विवरण दर्ज करें

फिट और वास्तविक की साजिश:

plot(fitted(mod.arimax), col="red", type="b")
lines(window(log(cds), start=c(2012, 02)), type="b")

यहाँ छवि विवरण दर्ज करें

प्रश्न

1) क्या यह पद्धति हस्तक्षेप विश्लेषण के लिए सही है?

2) क्या मैं स्थानांतरण फ़ंक्शन के घटकों के लिए अनुमान / एसई देख सकता हूं और कह सकता हूं कि हस्तक्षेप का प्रभाव महत्वपूर्ण था?

3) हस्तांतरण फ़ंक्शन प्रभाव की कल्पना कैसे कर सकता है?

4) क्या यह अनुमान लगाने का एक तरीका है कि 'एक्स' महीनों के बाद हस्तक्षेप ने उत्पादन में कितना वृद्धि की? मैं इसके लिए अनुमान लगाता हूं (और शायद # 3) मैं पूछ रहा हूं कि मॉडल के समीकरण के साथ कैसे काम किया जाए - अगर यह डमी चर के साथ सरल रेखीय प्रतिगमन था (उदाहरण के लिए) मैं हस्तक्षेप के साथ और बिना परिदृश्यों को चला सकता हूं और प्रभाव को माप सकता हूं - लेकिन मैं इस तरह के मॉडल के काम करने के बारे में अनिश्चित हूं।

जोड़ें

अनुरोध के अनुसार, यहां दो पैरामीरीज़ेशन के अवशेष हैं।

पहले फिट से:

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)))

plot(resid(fit), type="b")

यहाँ छवि विवरण दर्ज करें

फिर, इस फिट से

mod.arimax <- arimax(log(cds), order=c(1, 0, 0),
                     seasonal=list(order=c(0, 0, 0), frequency=12),
                     include.mean=TRUE,
                     xtransf=data.frame(Oct13=1 * (seq(cds) == 22)),
                     transfer=list(c(1, 1))) 

mod.arimax
plot(resid(mod.arimax), type="b")

यहाँ छवि विवरण दर्ज करें


क्या यह ठीक होगा यदि मैं आपको एसएएस सॉफ्टवेयर का उपयोग करके समाधान प्रदान करता हूं?
फोरकास्टर

यदि आप एक बेहतर मॉडल के साथ आते हैं, तो निश्चित रूप से, मैं उत्सुक हूं।
B_Miner

ठीक है, मॉडल मूल रूप से प्रस्तावित की तुलना में थोड़ा बेहतर है, लेकिन @javlacalle के समान है।
फोरकास्टर

जवाबों:


12

प्रश्न में दिए गए समीकरण में परिभाषित एआर (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

आप गुणांक और के t-आँकड़ा को देखकर प्रत्येक हस्तक्षेप के महत्व का परीक्षण कर सकते हैं । सुविधा के लिए, आप फ़ंक्शन का उपयोग कर सकते हैं ।ω 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

संख्यात्मक रूप से, ये अक्टूबर 2013 में हस्तक्षेप के कारण उत्पन्न हर समय बिंदु पर मात्रा में वृद्धि का अनुमान है:

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

हस्तक्षेप अक्टूबर 2013 में मनाया चर के मूल्य को लगभग बढ़ाता है । बाद की अवधि में प्रभाव बना रहता है लेकिन घटते वजन के साथ।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

ऊपर के रूप में गुणांक के समान अनुमान प्राप्त किए जाते हैं। यहाँ हमने को पर । मैट्रिक्स एक प्रकार का डमी वैरिएबल है जिसे आपको विभिन्न परिदृश्यों को आज़माने की आवश्यकता हो सकती है। आप लिए अलग-अलग मान भी सेट कर सकते हैं और इसके प्रभाव की तुलना कर सकते हैं। .9231 ω 2ω20.9231xregω2

ये हस्तक्षेप एक additive outlier (AO) और पैकेज में परिभाषित एक क्षणभंगुर परिवर्तन (TC) के बराबर हैं tsoutliers। इन प्रभावों का पता लगाने के लिए आप इस पैकेज का उपयोग कर सकते हैं जैसा कि @forecaster द्वारा उत्तर में दिखाया गया है या पहले इस्तेमाल किए गए रजिस्टरों का निर्माण करना है। उदाहरण के लिए, इस मामले में:

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)")

हस्तक्षेप प्रभाव पैरामीटर 2

प्रभाव को अब अक्टूबर 2013 में तेज वृद्धि के रूप में वर्णित किया जा सकता है और इसके बाद विपरीत दिशा में कमी की जा सकती है; तब हस्तक्षेप का प्रभाव वजन घटाने के सकारात्मक और नकारात्मक प्रभावों को जल्दी से गायब कर देता है।

यह प्रभाव कुछ अजीब है लेकिन वास्तविक डेटा में संभव हो सकता है। इस बिंदु पर मैं आपके डेटा और उन घटनाओं के संदर्भ को देखूंगा जिन्होंने डेटा को प्रभावित किया है। उदाहरण के लिए, एक नीति परिवर्तन, विपणन अभियान, खोज, ... जो कि अक्टूबर 2013 में हस्तक्षेप की व्याख्या कर सकता है। यदि हां, तो क्या यह अधिक समझदार है कि इस घटना का डेटा पर एक प्रभाव है जैसा कि पहले वर्णित है या जैसा कि हमने पाया। प्रारंभिक पैरामीटर के साथ?

एआईसी के अनुसार, प्रारंभिक मॉडल को प्राथमिकता दी जाएगी क्योंकि यह ( मुकाबले ) कम है । मूल श्रृंखला का प्लॉट दूसरे हस्तक्षेप चर के माप में शामिल तेज बदलावों के साथ एक स्पष्ट मैच का सुझाव नहीं देता है।- 15.4218.9415.42

डेटा के संदर्भ को जाने बिना, मैं कहूंगा कि पैरामीटर साथ एक क्षणभंगुर परिवर्तन के साथ एक एआर (1) मॉडल डेटा को मॉडल करने और हस्तक्षेप को मापने के लिए उपयुक्त होगा।0.9

संपादित करें २

का मान निर्धारित करता है कि हस्तक्षेप का प्रभाव कितनी तेजी से शून्य हो जाता है, इसलिए यह मॉडल में प्रमुख पैरामीटर है। हम इसका निरीक्षण करके मॉडल को के मानों की श्रेणी के लिए फिट कर सकते हैं । नीचे, इनमें से प्रत्येक मॉडल के लिए एआईसी संग्रहीत है।ω 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")

ओमेगा के विभिन्न मूल्यों के लिए एआईसी

सबसे कम AIC लिए पाया जाता है (पहले अनुमानित मूल्य के साथ अनुबंध में)। इस पैरामीटर में एक अपेक्षाकृत लगातार लेकिन क्षणभंगुर प्रभाव शामिल है। हम यह निष्कर्ष निकाल सकते हैं कि प्रभाव अस्थायी है क्योंकि एआईसी से अधिक मूल्यों के साथ अस्थायी है (याद रखें कि सीमा में, , हस्तक्षेप एक स्थायी स्तर की शिफ्ट बन जाता है)।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")

यह बहुत अच्छा है, धन्यवाद! अगर आपको कोई आपत्ति न हो तो मेरे पास कुछ फॉलोवर थे। 1) क्या मैंने जो प्रक्रिया अपनाई वह सही है? 2) क्या आप हस्तक्षेप के प्रभाव को निर्धारित करने के लिए अनुमानों का उपयोग करने के लिए मॉडल "अच्छा पर्याप्त" के फिट पर विचार करेंगे? 3) क्या मुझे अपने पैरामीट्रेशन का उपयोग करने में सक्षम नहीं होना चाहिए, अर्थात स्थानांतरण = सूची (सी (1,1)) को एक समतुल्य के रूप में प्राप्त करें और कोई करीबी परिणाम प्राप्त करें? उदाहरण मैं एक पाठ्यपुस्तक से पीछा कर रहा था, मैंने सुझाव दिया कि मैं सक्षम हो
जाऊं

@B_Miner आप सही हैं मैंने अपना उत्तर संपादित कर दिया है।
20

मैं आपसे सहमत हूं कि दो मॉडलों में से, पहला पैरामीरिजेशन (शायद गैर-महत्वपूर्ण पल्स को हटाकर) सबसे उपयुक्त होगा। दो पैरामीरिजेशन एक ही मॉडल क्यों नहीं उपजते हैं, जब मैं मानता हूं कि उन्हें करना चाहिए, एक रहस्य है। मैं पैकेज डेवलपर को ईमेल करूंगा (जिन्होंने अपनी समानता का उल्लेख करने वाली पुस्तक भी लिखी है)।
B_Miner

डेटा प्रति माह खोले गए जमा प्रमाणपत्रों की संख्या है। हस्तक्षेप औसत ब्याज दर में वृद्धि थी, जो कि 13 अक्टूबर से शुरू हुई थी। ब्याज दर का स्तर अपेक्षाकृत स्थिर रहा है 13 अक्टूबर के बाद से। यह मुझे लग रहा था कि स्पाइक के बाद, उत्पाद की मांग टेंपर करने लगी थी - मुझे यकीन नहीं है कि यह पिछले मतलब पर लौट आएगा या कुछ ऊंचे स्तर पर (पूर्व से) स्तर पर बस जाएगा।
B_Miner

B_miner, उस डेटा के आधार पर जिसे हम वास्तव में समाप्त कर सकते हैं, यदि मांग एक नए अर्थ में व्यवस्थित हो जाएगी।
फोरकास्टर

4

कभी - कभी थोड़ा ही बहुत होता है। हाथ में 30 अवलोकनों के साथ मैंने AUTOBOX को डेटा सबमिट किया, सॉफ्टवेयर का एक टुकड़ा जिसे मैंने विकसित करने में मदद की है। मैं +200 इनाम (बस मजाक कर रहा हूँ!) प्राप्त करने की उम्मीद में निम्नलिखित विश्लेषण प्रस्तुत करता हूं। मैंने वास्तविक और स्वच्छ मूल्यों को "हाल की गतिविधि" के प्रभाव का एक नेत्रहीन सुझाव दिया है। यहाँ छवि विवरण दर्ज करें। स्वचालित रूप से विकसित किया गया मॉडल यहां दिखाया गया है। यहाँ छवि विवरण दर्ज करेंऔर यहाँ यहाँ छवि विवरण दर्ज करें। इसके बजाय साधारण स्तर की स्थानांतरित श्रृंखला के अवशेष यहां प्रस्तुत किए गए हैं यहाँ छवि विवरण दर्ज करें। मॉडल आँकड़े यहाँ हैं यहाँ छवि विवरण दर्ज करें। सारांश में, ऐसे हस्तक्षेप थे जिन्हें ARIMA प्रक्रिया प्रदान करने के लिए आनुभविक रूप से पहचाना जा सकता था; दो दालें और 1 स्तर की शिफ्ट यहाँ छवि विवरण दर्ज करें। वास्तविक / फ़िट और पूर्वानुमान का ग्राफ विश्लेषण पर प्रकाश डालता है।यहाँ छवि विवरण दर्ज करें

मैं एक के लिए पहले से निर्दिष्ट और निश्चित रूप से पीढ़ी निर्दिष्ट मॉडल से मेरी राय में अवशिष्टों की साजिश देखना चाहूंगा।


मैं ऑटोबॉक्स से परिचित नहीं हूं, लेकिन क्या मेरे पास मूल रूप से मॉडल का शोर हिस्सा है: एक गैर-शून्य मतलब और एक एआर (1)?
B_Miner

क्या यह आउटपुट कह रहा है कि अक्टूबर 13 से वर्तमान समय की अवधि में एकमात्र "हस्तक्षेप" अक्टूबर 13 के लिए एक एकल पल्स है और फिर श्रृंखला अपने सामान्य औसत स्तर पर लौटती है?
B_Miner

मैंने दोनों पैराड्राइज़ेशन से अवशेषों को जोड़ा। मेरी नज़र में, ऐसा लगता है कि मैंने जो पहले सूचीबद्ध किया था (वह जो मूल रूप से जेवलासेल द्वारा फिट है) बेहतर है। इस बात से सहमत?
B_Miner

1) शोर वाला भाग एक एआर (1) है जो गैर-शून्य माध्य है
आयरिशस्टैट जूल

1) शोर भाग एक एआर (1) गैर-शून्य माध्य के साथ है; 2) 2 हस्तक्षेप अवधि 22 और अवधि 3 हैं और 13 अक्टूबर के बाद यह एक नए स्तर पर लौटता है जो 13 सितंबर को शुरू हुआ था; 3) आपके द्वारा बताए गए दो के बीच की पसंद को देखते हुए, मैं मानता हूं कि मैं इसे सरलता और दक्षता के लिए AUTOBOX मॉडल पसंद करता हूं। आप AUTOBOX के बारे में अधिक जानकारी autobox.com/cms
आयरिशस्टैट

3

आपके पहले प्रश्न के लिए मेरी इसी पोस्ट के आधार पर , मैंने में tsoutliers पैकेज में tso फ़ंक्शन का उपयोग किया और अक्टूबर 2013 में इसे स्वचालित रूप से अस्थायी परिवर्तन का पता चला। कृपया ध्यान दें कि अस्थायी परिवर्तन रैंप शिफ्ट से ट्रांसफर फ़ंक्शन में भिन्न होता है जो कि आप के बाद है। मुझे नहीं लगता कि कोई ऐसा पैकेज / फ़ंक्शन है जिसके बारे में मुझे पता है कि वह ट्रांसफ़र फ़ंक्शन को विज़ुअलाइज़ करने में सक्षम होगा। उम्मीद है कि यह कुछ अंतर्दृष्टि प्रदान करेगा। मैंने लॉग ट्रांसफ़ॉर्मेशन का उपयोग नहीं किया, मैंने इसे सीधे मॉडल किया। tsoutliers पैकेज को एक स्वचालित हस्तक्षेप का पता लगाने के रूप में सोचा जा सकता है।R

नीचे कोड है:

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")
arimatr <- tsoutliers::tso(cds,args.tsmethod=list(d=0,D=0))
plot(arimatr)
arimatr

नीचे अनुमान है, ~ 481.8 के मानक त्रुटि के साथ अक्टूबर 2013 में ~ 2356.3 यूनिट की वृद्धि हुई थी और इसके बाद एक क्षयकारी प्रभाव होता है। फ़ंक्शन ने स्वचालित रूप से एआर (1) की पहचान की। मुझे दो पुनरावृत्ति करनी थी और मौसमी और गैर मौसमी दोनों को अलग करना था, जो कि tso फ़ंक्शन में args.tsmethod में परिलक्षित होता है।

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

Coefficients:
         ar1  intercept       TC22
      0.5969  3034.6560  2356.2914
s.e.  0.1495   206.5202   481.7981

sigma^2 estimated as 209494:  log likelihood=-219.03
AIC=446.06   AICc=447.73   BIC=451.53

Outliers:
  type ind    time coefhat tstat
1   TC  22 2013:10    2356 4.891

नीचे प्लॉट है, tsoutlier एकमात्र ऐसा पैकेज है, जिसके बारे में मुझे पता है कि प्लॉट में इस बदलाव को अस्थायी रूप से प्रिंट कर सकते हैं।

यहाँ छवि विवरण दर्ज करें

इस विश्लेषण ने उम्मीद जताई कि आपके 2, 3 और 4 प्रश्नों के उत्तर अलग-अलग मैथोडोलॉजी का उपयोग करते हैं। विशेष रूप से प्लॉट और गुणांक इस हस्तक्षेप का प्रभाव प्रदान करते हैं और यदि आपके पास यह हस्तक्षेप नहीं होता तो क्या होता।

यह भी उम्मीद है कि कोई अन्य व्यक्ति R में स्थानांतरण फ़ंक्शन मॉडलिंग का उपयोग करके इस साजिश / विश्लेषण को दोहरा सकता है। मुझे यकीन नहीं है कि यदि यह R में किया जा सकता है, तो हो सकता है कि कोई और व्यक्ति इस पर मेरी जांच कर सके।


धन्यवाद। हाँ, यह प्लॉट वही है जो मैं एरिमैक्स मॉडल से करना चाहता हूं - हस्तक्षेप और (और घटाना) के साथ और बिना देखें। मुझे लगता है कि R में फ़िल्टर फ़ंक्शन का उपयोग प्रत्येक महीने के लिए ट्रांसफ़र फ़ंक्शन फ़ंक्शन को उत्पन्न करने के लिए किया जा सकता है (और फिर इसे केवल कल्पना करने के लिए प्लॉट करें) लेकिन मैं यह अनुमान लगाता हूं कि यह मनमाने ढंग से पल्स हस्तक्षेप फ़ंक्शन के लिए कैसे किया जाए।
B_Miner
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.