Я добавляю второй ответ для анализа данных моделируемого Thames
. Что касается пунктов моего первого общего методологического ответа: (1) В этом случае преобразование log()
явно подходит для устранения крайней асимметрии наблюдений. (2) Поскольку данные являются гетеросестастическими, вывод должен основываться на ковариациях HC или HAC. Ниже я использую оценку Нью-Запада HAC, хотя данные просто гетероседикальные, но не автокоррелированные. Исправленный вывод HAC влияет на тест supF и доверительные интервалы для оценок точки останова. Сами точки останова и соответствующие сегментные перехваты оцениваются с помощью OLS, то есть рассматривают гетероседастичность как неприятный термин. (3) Я не добавлял никакого вывода бутстрапа или перестановки, поскольку асимптотический вывод представляется достаточно убедительным в этом случае.
Сначала мы имитируем данные с использованием определенного семени. (Обратите внимание, что другие семена не могут привести к таким четким точкам останова оценок при анализе ряда уровней.)
library("strucchange")
set.seed(12)
Thames <- ts(c(rlnorm(120, 0, 1), rlnorm(120, 2, 2), rlnorm(120, 4, 1)),
frequency = 12, start = c(1985, 1))
Затем вычисляет последовательность HAC-скорректированные статистики Wald/F и оценить оптимальные точки останова (для m = 1, 2, 3, ... breaks) через OLS. Чтобы проиллюстрировать, насколько лучше это работает для серии в журналах, а не на уровнях, отображаются обе версии.
fs_lev <- Fstats(Thames ~ 1, vcov = NeweyWest)
fs_log <- Fstats(log(Thames) ~ 1, vcov = NeweyWest)
bp_lev <- breakpoints(Thames ~ 1)
bp_log <- breakpoints(log(Thames) ~ 1)
Визуализация Ниже показаны временные ряды с встроенными перехватывает в первом ряду, последовательность статистики Wald/F с 5% критического значения теста supF во втором ряду, и остаточной суммы квадратов и BIC для выбора количества точек останова в последней строке. Код для тиражирования графического изображения находится в конце этого ответа.
Оба supF тестов явно значительны, но в уровнях (sctest(fs_lev)
) тестовая статистика «только» 82,79, а в журналах (sctest(fs_log)
) это 282,46. Кроме того, два пика, относящиеся к двум точкам останова, можно увидеть намного лучше при анализе данных в журналах.
Аналогично, оценки точки останова несколько лучше, а доверительные интервалы намного более узкие для данных, преобразованных в лог-файл. В уровнях, мы получаем:
confint(bp_lev, breaks = 2, vcov = NeweyWest)
##
## Confidence intervals for breakpoints
## of optimal 3-segment partition:
##
## Call:
## confint.breakpointsfull(object = bp_lev, breaks = 2, vcov. = NeweyWest)
##
## Breakpoints at observation number:
## 2.5 % breakpoints 97.5 %
## 1 NA 125 NA
## 2 202 242 263
плюс сообщение об ошибке и предупреждений, которые все отражают, что асимптотический вывод не является полезным приближением здесь. Напротив, доверительные интервалы вполне разумны для анализа в журналах. В связи с увеличением дисперсии в среднем сегменте, его начало и конец несколько более неопределенными, чем для первого и последнего сегмента:
confint(bp_log, breaks = 2, vcov = NeweyWest)
##
## Confidence intervals for breakpoints
## of optimal 3-segment partition:
##
## Call:
## confint.breakpointsfull(object = bp_log, breaks = 2, vcov. = NeweyWest)
##
## Breakpoints at observation number:
## 2.5 % breakpoints 97.5 %
## 1 107 119 121
## 2 238 240 250
##
## Corresponding to breakdates:
## 2.5 % breakpoints 97.5 %
## 1 1993(11) 1994(11) 1995(1)
## 2 2004(10) 2004(12) 2005(10)
Наконец, код репликации для приведенного выше рисунка включается здесь. Доверительные интервалы для точек останова в уровнях не могут быть добавлены на графике из-за ошибки, упомянутой выше. Следовательно, только лог-преобразованные ряды также имеют доверительные интервалы.
par(mfrow = c(3, 2))
plot(Thames, main = "Thames")
lines(fitted(bp_lev, breaks = 2), col = 4, lwd = 2)
plot(log(Thames), main = "log(Thames)")
lines(fitted(bp_log, breaks = 2), col = 4, lwd = 2)
lines(confint(bp_log, breaks = 2, vcov = NeweyWest))
plot(fs_lev, main = "supF test")
plot(fs_log, main = "supF test")
plot(bp_lev)
plot(bp_log)
Если я хочу, чтобы оценить контрольную точку в качестве минимального RSS, а также правильный для гетероскедастичности и автокорреляции я делаю это: (. Темза ~ 1, брейки = 1, vcov = NeweyWest) контрольные точки (при условии, я зарядил право библиотека)? Кажется, это не работает. – user1491868
Для самой оценки контрольной точки не требуется коррекция HAC, потому что это просто OLS (= минимизация RSS). Необходимо отрегулировать только соответствующие доверительные интервалы.Это похоже на вывод в линейной регрессионной модели, где вы сначала подходите к модели с помощью OLS, как обычно, а затем только корректируете последующий вывод. Я добавил второй ответ, в котором подробно анализируются ваши смоделированные данные Thames. –