У меня есть месячные временные ряды с вмешательством, и я хотел бы количественно оценить влияние этого вмешательства на результат. Я понимаю, что серия довольно короткая, и эффект еще не завершен.
Данные
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) С этой auto.arima
функцией была использована серия до вмешательства (до октября 2013 года) . Предложенная модель была ARIMA (1,0,0) с ненулевым средним. Сюжет ACF выглядел хорошо.
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) Учитывая график полной серии, импульсный отклик был выбран ниже, с T = октябрь 2013,
который в соответствии с cryer и chan может быть подобран следующим образом с помощью функции arimax:
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) Могу ли я посмотреть на оценку / SE для компонентов передаточной функции и сказать, что эффект вмешательства был значительным?
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")
источник
Ответы:
Модель AR (1) с вмешательством, определенным в уравнении, приведенном в вопросе, можно подобрать, как показано ниже. Обратите внимание, как определяется аргумент
transfer
; Вам также нужна одна индикаторная переменнаяxtransf
для каждого из вмешательств (импульс и временное изменение):Вы можете проверить значимость каждого вмешательства, посмотрев на t-статистику коэффициентов и . Для удобства вы можете использовать функцию .ω 1ω0 ω1
coeftest
В этом случае пульс незначителен на уровне значимости . Его эффект может быть уже уловлен временным изменением.5 %
Эффект вмешательства может быть определен следующим образом:
Вы можете построить эффект вмешательства следующим образом:
1ω2 1 ω2 1
Численно, это предполагаемые увеличения, количественно определенные в каждый момент времени, вызванные вмешательством в октябре 2013 года:
stats::arima
xreg
Эти вмешательства эквивалентны аддитивному выбросу (AO) и временному изменению (TC), определенному в пакете
tsoutliers
. Вы можете использовать этот пакет для обнаружения этих эффектов, как показано в ответе @forecaster, или для построения регрессоров, использовавшихся ранее. Например, в этом случае:Редактировать 1
Я видел, что уравнение, которое вы дали, можно переписать так:
и это может быть указано, как вы использовали
transfer=list(c(1, 1))
.Как показано ниже, эта параметризация приводит, в этом случае, к оценкам параметров, которые включают другой эффект по сравнению с предыдущей параметризацией. Это напоминает мне эффект инновационного выброса, а не импульса плюс временное изменение.
Я не очень знаком с обозначением пакета,
TSA
но я думаю, что эффект от вмешательства теперь может быть количественно определен следующим образом:Эффект теперь можно описать как резкое увеличение в октябре 2013 года с последующим снижением в противоположном направлении; затем эффект вмешательства быстро исчезает, чередуя положительные и отрицательные эффекты от снижения веса.
Этот эффект несколько своеобразен, но может быть возможен в реальных данных. На этом этапе я бы посмотрел на контекст ваших данных и события, которые могли повлиять на данные. Например, имело ли место изменение политики, маркетинговую кампанию, обнаружение, ... которое может объяснить вмешательство в октябре 2013 года. Если да, то более ли разумно, что это событие оказывает влияние на данные, как описано ранее, или как мы обнаружили с начальной параметризацией?
Редактировать 2
Прогнозы могут быть получены и отображены следующим образом:
Первые прогнозы относительно хорошо соответствуют наблюдаемым значениям (серая пунктирная линия). Остальные прогнозы показывают, как ряд будет продолжать путь к исходному среднему значению. Доверительные интервалы, тем не менее, велики, что отражает неопределенность. Поэтому следует проявлять осторожность и пересматривать модель по мере записи новых данных.
источник
Иногда меньше значит больше. Имея 30 наблюдений, я отправил данные в AUTOBOX, программное обеспечение, которое помогло мне разработать. Я представляю следующий анализ в надежде получить награду +200 (шучу!). Я составил фактические и очищенные значения, наглядно демонстрируя влияние «недавних действий». , Модель, которая была разработана автоматически, показана здесь. и здесь . Остатки от этого довольно простого смещенного уровня представлены здесь . Модель статистики здесь . Таким образом, были вмешательства, которые можно было бы определить эмпирически, представляя процесс ARIMA; два импульса и 1 сдвиг уровня . График Actual / Fit и Forecast дополнительно выделяет анализ.
Я, например, хотел бы увидеть график остатков от ранее указанных и, на мой взгляд, потенциально чрезмерно определенных моделей.
источник
Ниже приведен код:
Ниже приведена оценка, что в октябре 2013 года наблюдалось увеличение на ~ 2356,3 единиц со стандартной ошибкой ~ 481,8, и в последующем он имеет затухающий эффект. Функция автоматически идентифицирует AR (1). Мне пришлось сделать пару итераций и сделать как сезонное, так и несезонное различие до 0, что отражено в args.tsmethod в функции tso.
Ниже приведен график, tsoutlier - единственный известный мне пакет, который может печатать временные изменения в графике.
Надеемся, что этот анализ дал ответ на ваши 2, 3 и 4 вопроса, хотя и с использованием другой методологии. Особенно график и коэффициенты обеспечили эффект этого вмешательства и что бы произошло, если бы у вас не было этого вмешательства.
Также надеясь, что кто-то еще сможет воспроизвести этот график / анализ, используя моделирование передаточной функции в R. Я не уверен, что это может быть сделано в R, может быть кто-то еще может проверить меня на этот счет.
источник