Jestem dość nowy w R. Próbowałem przeczytać analizę szeregów czasowych i już skończyłem
- Analiza szeregów czasowych Shumwaya i Stoffera i jej zastosowania 3. edycja ,
- Doskonałe prognozy Hyndmana : zasady i praktyka
- Avril Coghlan używa R do analizy szeregów czasowych
- A. Ian McLeod i in. Analiza szeregów czasowych z R.
- Analiza zastosowanych szeregów czasowych dr Marcela Dettlinga
Edycja: Nie jestem pewien, jak sobie z tym poradzić, ale znalazłem przydatny zasób poza Cross Validated. Chciałem to tutaj zamieścić, na wypadek, gdyby ktoś natknął się na to pytanie.
Analiza regresji segmentowej przerwanych badań szeregów czasowych w badaniach nad stosowaniem leków
Mam jednoznaczny szereg czasowy liczby zużytych produktów (dane zliczeń) mierzonych codziennie przez 7 lat. Interwencję zastosowano w badanej populacji mniej więcej w połowie szeregów czasowych. Nie należy oczekiwać, że ta interwencja przyniesie natychmiastowy efekt, a czas pojawienia się efektu jest zasadniczo niepoznawalny.
Korzystając z forecast
pakietu Hyndmana, dopasowałem model ARIMA do danych sprzed interwencji przy użyciu auto.arima()
. Ale nie jestem pewien, jak wykorzystać to dopasowanie, aby odpowiedzieć, czy nastąpiła statystycznie istotna zmiana trendu i określić kwotę.
# 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")
Czy są jakieś zasoby dotyczące konkretnie analizy przerwanych szeregów czasowych w R? Znalazłem to zajmowanie się ITS w SPSS, ale nie byłem w stanie przetłumaczyć tego na R.
źródło
Odpowiedzi:
Jest to znane jako analiza punktu zmiany. Pakiet R
changepoint
może to dla Ciebie zrobić: zapoznaj się z dokumentacją tutaj (w tym odniesienia do literatury): http://www.lancs.ac.uk/~killick/Pub/KillickEckley2011.pdfźródło
Sugerowałbym model hierarchiczny z powtarzanymi pomiarami. Ta metoda powinna zapewnić solidne wyniki, ponieważ każda osoba będzie działać jako własna kontrola. Spróbuj sprawdzić ten link w UCLA.
źródło
W przypadku podejścia bayesowskiego można użyć,
mcp
aby dopasować model Poissona lub dwumianowy (ponieważ masz liczby z okresów o ustalonym interwale) z autoregresją zastosowaną do reszt (w przestrzeni dziennika). Następnie porównaj model dwusegmentowy z modelem jednosegmentowym za pomocą weryfikacji krzyżowej.Zanim zaczniemy, zauważ, że dla tego zestawu danych ten model nie pasuje dobrze, a sprawdzanie poprawności wygląda niestabilnie. Powstrzymałbym się więc od stosowania następujących scenariuszy w scenariuszach z dużymi stawkami, ale ilustruje to ogólne podejście:
W przypadku obecnego zestawu danych powoduje to:
Tj.
elpd_diff/se_diff
Stosunek około 7 na korzyść modelu zerowego (bez zmian). Możliwe ulepszenia obejmują:sin()
lubcos()
.prior = list(cp_1 = dnorm(1999.8, 0.5)
.Czytaj więcej na temat modelowania autoregresji, robiąc porównanie modelu i ustawienie priors na
mcp
stronie internetowej . Ujawnienie: Jestem deweloperemmcp
.źródło