आर में बाधित समय श्रृंखला विश्लेषण के लिए संसाधन


12

मैं आर के लिए काफी नया हूं। मैंने समय श्रृंखला विश्लेषण पर पढ़ने का प्रयास किया है और पहले ही समाप्त कर चुका हूं

  1. Shumway और Stoffer का टाइम सीरीज़ विश्लेषण और उसके अनुप्रयोग 3rd संस्करण ,
  2. Hyndman का उत्कृष्ट पूर्वानुमान: सिद्धांत और व्यवहार
  3. टाइम सीरीज एनालिसिस के लिए Avril Coghlan का R का उपयोग करना
  4. ए। इयान मैकलेड एट अल टाइम सीरीज एनालिसिस विद आर
  5. डॉ। मार्सेल डेटलिंग की एप्लाइड टाइम सीरीज विश्लेषण

संपादित करें: मुझे यकीन नहीं है कि इसे कैसे संभालना है लेकिन मुझे क्रॉस वैलिडेट के बाहर एक उपयोगी संसाधन मिला। मैं इस मामले में किसी को भी इस सवाल पर ठोकर खाने के लिए इसे यहाँ शामिल करना चाहता था।

दवा के उपयोग अनुसंधान में बाधित समय श्रृंखला अध्ययन के खंडित प्रतिगमन विश्लेषण

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

Hyndman के forecastपैकेज का उपयोग करते हुए मैंने एक ARIMA मॉडल का उपयोग करके पूर्व-हस्तक्षेप डेटा का उपयोग किया है auto.arima()। लेकिन मैं इस जवाब का उपयोग करने के बारे में अनिश्चित हूं कि क्या जवाब देने के लिए इस प्रवृत्ति का सांख्यिकीय रूप से महत्वपूर्ण परिवर्तन हुआ है और राशि की मात्रा निर्धारित की गई है।

# for simplification I will aggregate to monthly counts
# I can later generalize any teachings the community supplies
count <- c(2464, 2683, 2426, 2258, 1950, 1548, 1108,  991, 1616, 1809, 1688, 2168, 2226, 2379, 2211, 1925, 1998, 1740, 1305,  924, 1487, 1792, 1485, 1701, 1962, 2896, 2862, 2051, 1776, 1358, 1110,  939, 1446, 1550, 1809, 2370, 2401, 2641, 2301, 1902, 2056, 1798, 1198,  994, 1507, 1604, 1761, 2080, 2069, 2279, 2290, 1758, 1850, 1598, 1032,  916, 1428, 1708, 2067, 2626, 2194, 2046, 1905, 1712, 1672, 1473, 1052,  874, 1358, 1694, 1875, 2220, 2141, 2129, 1920, 1595, 1445, 1308, 1039,  828, 1724, 2045, 1715, 1840)
# for explanatory purposes
# month <- rep(month.name, 7)
# year <- 1999:2005
ts <- ts(count, start(1999, 1))
train_month <- window(ts, start=c(1999,1), end = c(2001,1))
require(forecast)
arima_train <- auto.arima(train_month)
fit_month <- Arima(train_month, order = c(2,0,0), seasonal = c(1,1,0), lambda = 0)
plot(forecast(fit_month, 36)); lines(ts, col="red")

क्या कोई संसाधन विशेष रूप से आर में बाधित समय श्रृंखला विश्लेषण के साथ काम कर रहे हैं? मैंने SPSS में ITS के साथ यह व्यवहार किया है, लेकिन मैं इसका अनुवाद R में नहीं कर पाया हूँ।


आप क्या करना चाहते हैं निष्कर्ष पर कि क्या हस्तक्षेप सांख्यिकीय रूप से महत्वपूर्ण प्रभाव नहीं पड़ा है, या आप हस्तक्षेप मॉडल करने के लिए बेहतर प्राप्त करने के लिए चाहते हो पूर्वानुमान ? और क्या आप संभवतः डेटा उपलब्ध करा सकते हैं?
स्टीफन कोलासे 20

@StephanKolassa निश्चित रूप से! मेरा उद्देश्य आक्रमण करना है। मैं अपनी बात को बेहतर ढंग से समझाने के लिए संपादन में डमी डेटा प्रदान करूंगा।
dais.johns

@StephanKolassa डेटा ने मेरी क्षमताओं को सर्वश्रेष्ठ प्रदान किया।
dais.johns

पिछला शोध बताता है कि हस्तक्षेप +/- 5% परिवर्तन के पैमाने पर होना चाहिए।
डेस। जॉन्स

@StephanKolassa ने वास्तविक प्रयोग करने योग्य डेटा प्रदान किया
dais.johns

जवाबों:


4

इसे परिवर्तन-बिंदु विश्लेषण के रूप में जाना जाता है। आर पैकेज changepointआपके लिए यह कर सकता है: यहां दस्तावेज देखें (साहित्य के संदर्भ सहित): http://www.lancs.ac.uk/~killick/Pub/KillickEckley2011.pdf


धन्यवाद। मैं इस पर गौर कर रहा हूं। जहां तक ​​मैं बता सकता हूं कि यह श्रृंखला में संभावित परिवर्तन बिंदुओं की गणना करेगा, लेकिन प्रवृत्ति अंतर का विश्लेषण नहीं करेगा। मैं माफी माँगता हूँ अगर यह धारणा गलत है तो मैं सतही के अलावा पैकेज की समीक्षा करने में सक्षम नहीं हूं।
डेस। जॉन्स

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

आपके सुझाव के लिए धन्यवाद, मैं इसे लागू करने का प्रयास करूंगा और "उत्तर" के रूप में चिह्नित करूंगा यदि यह समस्या हल करता है।
dais.johns

2

मैं सुझाव दूंगा कि बार-बार पदानुक्रमित मॉडल। इस विधि को मजबूत परिणाम प्रदान करना चाहिए क्योंकि प्रत्येक व्यक्ति अपने स्वयं के नियंत्रण के रूप में कार्य करेगा। UCLA के इस लिंक को देखने का प्रयास करें


0

एक बायेसियन दृष्टिकोण के लिए, आप mcpएक पोइसन या द्विपद मॉडल (क्योंकि आपके पास निश्चित-अंतराल अवधि से मायने रखता है) के लिए उपयोग कर सकते हैं ऑटोरेजियन के साथ अवशिष्ट (लॉग स्पेस में) पर लागू होते हैं। फिर दो-खंड मॉडल की तुलना एक-खंड मॉडल से क्रॉस-सत्यापन का उपयोग करके करें।

शुरू करने से पहले, ध्यान दें कि इस डेटासेट के लिए, यह मॉडल अच्छी तरह से फिट नहीं है और क्रॉस-सत्यापन अस्थिर दिखता है। इसलिए मैं उच्च-दांव वाले परिदृश्यों में निम्नलिखित का उपयोग करने से बचना चाहूंगा, लेकिन यह एक सामान्य दृष्टिकोण दिखाता है:

# Fit the change point model
library(mcp)
model_full = list(
  count ~ 1 + ar(1),  # intercept and AR(1)
  ~ 1  # New intercept
)
fit_full = mcp(model_full, data = df, family = poisson(), par_x = "year")


# Fit the null model
model_null = list(
  count ~ 1 + ar(1)  # just a stable AR(1)
)
fit_null = mcp(model_null, data = df, family = poisson(), par_x = "year")

# Compare predictive performance using LOO cross-validation
fit_full$loo = loo(fit_full)
fit_null$loo = loo(fit_null)
loo::loo_compare(fit_full$loo, fit_null$loo)

वर्तमान डेटासेट के लिए, यह परिणाम देता है

       elpd_diff se_diff
model2    0.0       0.0 
model1 -459.1      64.3 

यानी, elpd_diff/se_diffअशक्त मॉडल (कोई परिवर्तन नहीं) के पक्ष में लगभग 7 का अनुपात। संभावित सुधारों में शामिल हैं:

  • समय-समय पर प्रवृत्ति का उपयोग करते हुए मॉडलिंग करें sin()या cos()
  • परिवर्तन के संभावित स्थान, जैसे, के बारे में पूर्व जानकारी जोड़ना prior = list(cp_1 = dnorm(1999.8, 0.5)

Autoregression मॉडलिंग, मॉडल तुलना कर रही है, व महंतों की स्थापना के बारे में और अधिक पढ़ें वेबसाइट । प्रकटीकरण: मैं के डेवलपर हूँ ।mcpmcp

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.