1) अपने पहले प्रश्न के संबंध में, कुछ परीक्षण आँकड़ों को विकसित किया गया है और साहित्य में स्थिरता और एक इकाई जड़ की अशांति का परीक्षण करने के लिए चर्चा की गई है। इस मुद्दे पर लिखे गए कई पत्रों में से कुछ निम्नलिखित हैं:
प्रवृत्ति से संबंधित:
- डिकी, डी। वाई। फुलर, डब्ल्यू। (1979 ए), एक यूनिट रूट के साथ ऑटोरोएरिव टाइम श्रृंखला के लिए अनुमानकों का वितरण, जर्नल ऑफ़ द अमेरिकन स्टेटिस्टिकल एसोसिएशन 74, 427-31।
- डिकी, डी। वाई। फुलर, डब्ल्यू। (1981), यूनिट यूनिट, इकोनोमेट्रिका 49, 1057-1071 के साथ ऑटोरिएरेटिव टाइम सीरीज़ के लिए लाइकेलीहुड अनुपात आँकड़े।
- Kwiatkowski, D., Phillips, P., Schmidt, P. y Shin, Y (1992), एक यूनिट रूट के विकल्प के खिलाफ स्थिरता की अशक्त परिकल्पना का परीक्षण: हम कैसे सुनिश्चित करते हैं कि आर्थिक आधार श्रृंखला में एक इकाई जड़ है? , इकोनोमेट्रिक्स 54, 159-178।
- फिलिप्स, पी। वाई। पेरोन, पी। (1988), टाइम सीरीज रिग्रेशन में एक यूनिट रूट के लिए परीक्षण, बायोमेट्रिक 75, 335-46।
- डर्लाउफ़, एस। वाई फिलिप्स, पी। (1988), ट्रेंड बनाम रैंडम वाक इन टाइम सीरीज़ एनालिसिस, इकोनोमेट्रिक 56, 1333-54।
मौसमी घटक से संबंधित:
- हिल्लेबर्ग, एस।, एंगल, आर।, ग्रेंजर, सी। यू। यू।, बी। (1990), मौसमी एकीकरण और संयोग, इकोनोमेट्रिक्स 44, 215-38।
- कैनोवा, एफ। वाई हेंसन, बीई (1995), क्या मौसमी पैटर्न समय के साथ स्थिर हैं? मौसमी स्थिरता, व्यवसाय और आर्थिक सांख्यिकी जर्नल 13, 237-252 के लिए एक परीक्षण।
- फ्रांसेस, पी। (1990), मासिक डेटा में मौसमी इकाई जड़ों के लिए परीक्षण, तकनीकी रिपोर्ट 9032, इकोनोमेट्रिक इंस्टीट्यूट।
- गेसेल, ई।, ली, एच। वाई। नोह, जे। (1994), मौसमी समय श्रृंखला में इकाई जड़ों के लिए परीक्षण। कुछ सैद्धांतिक विस्तार और एक मोंटे कार्लो जांच, इकोनोमेट्रिक्स 62 के जर्नल, 415-442।
पाठ्यपुस्तक बनर्जी, ए।, डोलाडो, जे।, गैलब्रेथ, जे। वाई। हेंड्री, डी। (1993), सह-एकीकरण, त्रुटि सुधार, और गैर-स्थिर डेटा के अर्थमितीय विश्लेषण, अर्थशास्त्र ग्रंथों में उन्नत ग्रंथ। ऑक्सफोर्ड यूनिवर्सिटी प्रेस भी एक अच्छा संदर्भ है।
2) आपकी दूसरी चिंता साहित्य द्वारा उचित है। यदि एक यूनिट रूट टेस्ट है तो पारंपरिक टी-स्टेटिस्टिक जिसे आप एक रैखिक प्रवृत्ति पर लागू करेंगे, मानक वितरण का पालन नहीं करता है। उदाहरण के लिए देखें, फिलिप्स, पी। (1987), यूनिट रूट के साथ टाइम सीरीज़ रिग्रेशन, इकोनोमेट्रिक 55 (2), 277-301।
यदि एक यूनिट रूट मौजूद है और इसे नजरअंदाज किया जाता है, तो शून्य को अस्वीकार करने की संभावना है कि एक रैखिक प्रवृत्ति का गुणांक शून्य है। यही है, हम एक निश्चित महत्व के स्तर के लिए अक्सर एक निर्धारक रैखिक प्रवृत्ति मॉडलिंग करेंगे। एक यूनिट रूट की उपस्थिति में हमें डेटा को नियमित अंतर लेने के बजाय डेटा को बदलना चाहिए।
3) उदाहरण के लिए, यदि आप R का उपयोग करते हैं तो आप अपने डेटा के साथ निम्नलिखित विश्लेषण कर सकते हैं।
x <- structure(c(7657, 5451, 10883, 9554, 9519, 10047, 10663, 10864,
11447, 12710, 15169, 16205, 14507, 15400, 16800, 19000, 20198,
18573, 19375, 21032, 23250, 25219, 28549, 29759, 28262, 28506,
33885, 34776, 35347, 34628, 33043, 30214, 31013, 31496, 34115,
33433, 34198, 35863, 37789, 34561, 36434, 34371, 33307, 33295,
36514, 36593, 38311, 42773, 45000, 46000, 42000, 47000, 47500,
48000, 48500, 47000, 48900), .Tsp = c(1, 57, 1), class = "ts")
सबसे पहले, आप एक यूनिट रूट के नल के लिए डिक्की-फुलर परीक्षण लागू कर सकते हैं:
require(tseries)
adf.test(x, alternative = "explosive")
# Augmented Dickey-Fuller Test
# Dickey-Fuller = -2.0685, Lag order = 3, p-value = 0.453
# alternative hypothesis: explosive
और KPSS रिवर्स लूप की परिकल्पना के लिए KPSS परीक्षण, रैखिक प्रवृत्ति के आसपास स्टेशनारिटी के विकल्प के खिलाफ स्थिरता:
kpss.test(x, null = "Trend", lshort = TRUE)
# KPSS Test for Trend Stationarity
# KPSS Trend = 0.2691, Truncation lag parameter = 1, p-value = 0.01
परिणाम: ADF परीक्षण, 5% महत्व स्तर पर एक यूनिट रूट खारिज नहीं किया जाता है; KPSS परीक्षण, रैखिकता की प्रवृत्ति वाले मॉडल के पक्ष में स्थिरता की अशक्तता को खारिज कर दिया जाता है।
एक तरफ ध्यान दें: lshort=FALSE
KPSS परीक्षण के शून्य का उपयोग 5% के स्तर पर अस्वीकार नहीं किया जाता है, हालांकि, यह 5 अंतराल का चयन करता है; यहाँ दिखाए गए एक और निरीक्षण में यह नहीं बताया गया है कि 1-3 lags का चयन करना डेटा के लिए उपयुक्त है और अशक्त परिकल्पना को अस्वीकार करता है।
सिद्धांत रूप में, हमें उस परीक्षण द्वारा अपना मार्गदर्शन करना चाहिए जिसके लिए हम अशक्त परिकल्पना को अस्वीकार करने में सक्षम थे (उस परीक्षण के बजाय जिसके लिए हमने अस्वीकार नहीं किया था (हमने स्वीकार किया) शून्य)। हालांकि, एक रेखीय प्रवृत्ति पर मूल श्रृंखला का एक प्रतिगमन विश्वसनीय नहीं निकला है। एक तरफ, आर-स्क्वायर उच्च है (90% से अधिक) जो साहित्य में सहज प्रतिगमन के संकेतक के रूप में इंगित किया गया है।
fit <- lm(x ~ 1 + poly(c(time(x))))
summary(fit)
#Coefficients:
# Estimate Std. Error t value Pr(>|t|)
#(Intercept) 28499.3 381.6 74.69 <2e-16 ***
#poly(c(time(x))) 91387.5 2880.9 31.72 <2e-16 ***
#---
#Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
#Residual standard error: 2881 on 55 degrees of freedom
#Multiple R-squared: 0.9482, Adjusted R-squared: 0.9472
#F-statistic: 1006 on 1 and 55 DF, p-value: < 2.2e-16
दूसरी ओर, अवशिष्टों को स्वतःसंबंधित किया जाता है:
acf(residuals(fit)) # not displayed to save space
इसके अलावा, अवशेषों में एक इकाई जड़ के नल को अस्वीकार नहीं किया जा सकता है।
adf.test(residuals(fit))
# Augmented Dickey-Fuller Test
#Dickey-Fuller = -2.0685, Lag order = 3, p-value = 0.547
#alternative hypothesis: stationary
इस बिंदु पर, आप पूर्वानुमान प्राप्त करने के लिए उपयोग किए जाने वाले मॉडल का चयन कर सकते हैं। उदाहरण के लिए, संरचनात्मक समय श्रृंखला मॉडल और ARIMA मॉडल पर आधारित पूर्वानुमान निम्नानुसार प्राप्त किए जा सकते हैं।
# StructTS
fit1 <- StructTS(x, type = "trend")
fit1
#Variances:
# level slope epsilon
#2982955 0 487180
#
# forecasts
p1 <- predict(fit1, 10, main = "Local trend model")
p1$pred
# [1] 49466.53 50150.56 50834.59 51518.62 52202.65 52886.68 53570.70 54254.73
# [9] 54938.76 55622.79
# ARIMA
require(forecast)
fit2 <- auto.arima(x, ic="bic", allowdrift = TRUE)
fit2
#ARIMA(0,1,0) with drift
#Coefficients:
# drift
# 736.4821
#s.e. 267.0055
#sigma^2 estimated as 3992341: log likelihood=-495.54
#AIC=995.09 AICc=995.31 BIC=999.14
#
# forecasts
p2 <- forecast(fit2, 10, main = "ARIMA model")
p2$mean
# [1] 49636.48 50372.96 51109.45 51845.93 52582.41 53318.89 54055.37 54791.86
# [9] 55528.34 56264.82
पूर्वानुमान का एक प्लॉट:
par(mfrow = c(2, 1), mar = c(2.5,2.2,2,2))
plot((cbind(x, p1$pred)), plot.type = "single", type = "n",
ylim = range(c(x, p1$pred + 1.96 * p1$se)), main = "Local trend model")
grid()
lines(x)
lines(p1$pred, col = "blue")
lines(p1$pred + 1.96 * p1$se, col = "red", lty = 2)
lines(p1$pred - 1.96 * p1$se, col = "red", lty = 2)
legend("topleft", legend = c("forecasts", "95% confidence interval"),
lty = c(1,2), col = c("blue", "red"), bty = "n")
plot((cbind(x, p2$mean)), plot.type = "single", type = "n",
ylim = range(c(x, p2$upper)), main = "ARIMA (0,1,0) with drift")
grid()
lines(x)
lines(p2$mean, col = "blue")
lines(ts(p2$lower[,2], start = end(x)[1] + 1), col = "red", lty = 2)
lines(ts(p2$upper[,2], start = end(x)[1] + 1), col = "red", lty = 2)
पूर्वानुमान दोनों मामलों में समान हैं और उचित लगते हैं। ध्यान दें कि पूर्वानुमान एक रेखीय प्रवृत्ति के समान अपेक्षाकृत नियतात्मक पैटर्न का पालन करते हैं, लेकिन हमने स्पष्ट रूप से एक रेखीय प्रवृत्ति का मॉडल नहीं बनाया है। इसका कारण निम्नलिखित है: i) स्थानीय प्रवृत्ति मॉडल में, ढलान घटक के भिन्नता को शून्य के रूप में अनुमानित किया गया है। यह प्रवृत्ति घटक को एक बहाव में बदल देता है जिसमें एक रैखिक प्रवृत्ति का प्रभाव होता है। ii) ARIMA (0,1,1), एक बहाव के साथ एक मॉडल को विभेदित श्रृंखला के लिए एक मॉडल में चुना गया है। एक अलग श्रृंखला पर निरंतर शब्द का प्रभाव एक रैखिक प्रवृत्ति है। इस पोस्ट में इसकी चर्चा की गई है ।
आप जांच सकते हैं कि यदि बहाव के बिना एक स्थानीय मॉडल या एआरआईएमए (0,1,0) चुना जाता है, तो पूर्वानुमान एक सीधी क्षैतिज रेखा है और इसलिए, डेटा के देखे गए गतिशील के साथ कोई समानता नहीं होगी। खैर, यह यूनिट रूट परीक्षणों और नियतात्मक घटकों की पहेली का हिस्सा है।
1 संपादित करें (अवशेषों का निरीक्षण):
ऑटोकॉर्लेशन और आंशिक एसीएफ अवशेषों में एक संरचना का सुझाव नहीं देते हैं।
resid1 <- residuals(fit1)
resid2 <- residuals(fit2)
par(mfrow = c(2, 2))
acf(resid1, lag.max = 20, main = "ACF residuals. Local trend model")
pacf(resid1, lag.max = 20, main = "PACF residuals. Local trend model")
acf(resid2, lag.max = 20, main = "ACF residuals. ARIMA(0,1,0) with drift")
pacf(resid2, lag.max = 20, main = "PACF residuals. ARIMA(0,1,0) with drift")
जैसा कि आयरिशस्टैट ने सुझाव दिया था, आउटलेर की उपस्थिति के लिए जाँच करना भी उचित है। पैकेज का उपयोग करके दो एडिटिव आउटलेर का पता लगाया जाता है tsoutliers
।
require(tsoutliers)
resol <- tsoutliers(x, types = c("AO", "LS", "TC"),
remove.method = "bottom-up",
args.tsmethod = list(ic="bic", allowdrift=TRUE))
resol
#ARIMA(0,1,0) with drift
#Coefficients:
# drift AO2 AO51
# 736.4821 -3819.000 -4500.000
#s.e. 220.6171 1167.396 1167.397
#sigma^2 estimated as 2725622: log likelihood=-485.05
#AIC=978.09 AICc=978.88 BIC=986.2
#Outliers:
# type ind time coefhat tstat
#1 AO 2 2 -3819 -3.271
#2 AO 51 51 -4500 -3.855
एसीएफ को देखते हुए, हम कह सकते हैं कि, 5% महत्व स्तर पर, इस मॉडल में भी अवशिष्ट यादृच्छिक हैं।
par(mfrow = c(2, 1))
acf(residuals(resol$fit), lag.max = 20, main = "ACF residuals. ARIMA with additive outliers")
pacf(residuals(resol$fit), lag.max = 20, main = "PACF residuals. ARIMA with additive outliers")
इस मामले में, संभावित आउटलेयर की उपस्थिति मॉडल के प्रदर्शन को विकृत करने के लिए प्रकट नहीं होती है। यह सामान्यता के लिए जर्क-बेरा परीक्षण द्वारा समर्थित है; प्रारंभिक मॉडल ( fit1
, fit2
) से अवशेषों में सामान्यता की अशक्तता 5% महत्व के स्तर पर अस्वीकार नहीं की जाती है।
jarque.bera.test(resid1)[[1]]
# X-squared = 0.3221, df = 2, p-value = 0.8513
jarque.bera.test(resid2)[[1]]
#X-squared = 0.426, df = 2, p-value = 0.8082
2 संपादित करें (अवशेषों और उनके मूल्यों की साजिश)
यह इस तरह है कि अवशेष कैसे दिखते हैं:
और ये एक सीएसवी प्रारूप में उनके मूल्य हैं:
0;6.9205
-0.9571;-2942.4821
2.6108;4695.5179
-0.5453;-2065.4821
-0.2026;-771.4821
0.1242;-208.4821
0.1909;-120.4821
-0.0179;-535.4821
0.1449;-153.4821
0.484;526.5179
1.0748;1722.5179
0.3818;299.5179
-1.061;-2434.4821
0.0996;156.5179
0.4805;663.5179
0.8969;1463.5179
0.4111;461.5179
-1.0595;-2361.4821
0.0098;65.5179
0.5605;920.5179
0.8835;1481.5179
0.7669;1232.5179
1.4024;2593.5179
0.3785;473.5179
-1.1032;-2233.4821
-0.3813;-492.4821
2.2745;4642.5179
0.2935;154.5179
-0.1138;-165.4821
-0.8035;-1455.4821
-1.2982;-2321.4821
-1.9463;-3565.4821
-0.1648;62.5179
-0.1022;-253.4821
0.9755;1882.5179
-0.5662;-1418.4821
-0.0176;28.5179
0.5;928.5179
0.6831;1189.5179
-1.8889;-3964.4821
0.3896;1136.5179
-1.3113;-2799.4821
-0.9934;-1800.4821
-0.4085;-748.4821
1.2902;2482.5179
-0.0996;-657.4821
0.5539;981.5179
2.0007;3725.5179
1.0227;1490.5179
0.27;263.5179
-2.336;-4736.4821
1.8994;4263.5179
0.1301;-236.4821
-0.0892;-236.4821
-0.1148;-236.4821
-1.1207;-2236.4821
0.4801;1163.5179