Я использую decompose
функцию R
и придумываю 3 компонента моего ежемесячного временного ряда (тренд, сезонный и случайный). Если я строю график или смотрю на таблицу, я ясно вижу, что временные ряды зависят от сезонности.
Тем не менее, когда я регрессирую временной ряд на 11 сезонных фиктивных переменных, все коэффициенты не являются статистически значимыми, что говорит об отсутствии сезонности.
Я не понимаю, почему я придумываю два совершенно разных результата. Это случилось с кем-нибудь? Я делаю что-то неправильно?
Я добавлю сюда некоторые полезные детали.
Это мой временной ряд и соответствующее ежемесячное изменение. На обоих графиках вы можете видеть сезонность (или это то, что я хотел бы оценить). В частности, на втором графике (который является ежемесячным изменением ряда) я вижу повторяющуюся картину (максимумы и минимумы в те же месяцы года).
Ниже приведен вывод decompose
функции. Я ценю, что, как сказал @RichardHardy, функция не проверяет, есть ли фактическая сезонность. Но разложение, кажется, подтверждает то, что я думаю.
Однако, когда я регрессирую временной ряд по 11 сезонным фиктивным переменным (с января по ноябрь, исключая декабрь), я нахожу следующее:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5144454056 372840549 13.798 <2e-16 ***
Jan -616669492 527276161 -1.170 0.248
Feb -586884419 527276161 -1.113 0.271
Mar -461990149 527276161 -0.876 0.385
Apr -407860396 527276161 -0.774 0.443
May -395942771 527276161 -0.751 0.456
Jun -382312331 527276161 -0.725 0.472
Jul -342137426 527276161 -0.649 0.520
Aug -308931830 527276161 -0.586 0.561
Sep -275129629 527276161 -0.522 0.604
Oct -218035419 527276161 -0.414 0.681
Nov -159814080 527276161 -0.303 0.763
По существу, все коэффициенты сезонности не являются статистически значимыми.
Для запуска линейной регрессии я использую следующую функцию:
lm.r = lm(Yvar~Var$Jan+Var$Feb+Var$Mar+Var$Apr+Var$May+Var$Jun+Var$Jul+Var$Aug+Var$Sep+Var$Oct+Var$Nov)
где я установил Yvar как переменную временного ряда с месячной частотой (частота = 12).
Я также пытаюсь принять во внимание трендовый компонент временного ряда, включая переменную тренда регрессии. Однако результат не меняется.
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3600646404 96286811 37.395 <2e-16 ***
Jan -144950487 117138294 -1.237 0.222
Feb -158048960 116963281 -1.351 0.183
Mar -76038236 116804709 -0.651 0.518
Apr -64792029 116662646 -0.555 0.581
May -95757949 116537153 -0.822 0.415
Jun -125011055 116428283 -1.074 0.288
Jul -127719697 116336082 -1.098 0.278
Aug -137397646 116260591 -1.182 0.243
Sep -146478991 116201842 -1.261 0.214
Oct -132268327 116159860 -1.139 0.261
Nov -116930534 116134664 -1.007 0.319
trend 42883546 1396782 30.702 <2e-16 ***
Отсюда мой вопрос: я делаю что-то не так в регрессионном анализе?
источник
decompose
функция inR
используется).decompose
функции, кажется, что функция не проверяет, есть ли сезонность. Вместо этого он просто получает средние значения для каждого сезона, вычитает среднее и называет это сезонным компонентом. Таким образом, он будет производить сезонный компонент независимо от того, существует ли истинный базовый сезонный компонент или просто шум. Тем не менее, это не объясняет, почему ваши манекены незначительны, хотя вы говорите, что сезонность видна из графика данных. Может ли быть так, что ваш образец слишком мал, чтобы получить значительные сезонные манекены? Являются ли они совместно значимыми?Ответы:
Делаете ли вы регрессию на данных после удаления тренда? У вас есть положительная тенденция, и ваша сезонная сигнатура, вероятно, замаскирована в вашей регрессии (дисперсия из-за тренда или ошибка больше, чем из-за месяца), если только вы не учли тренд в Yvar ...
Кроме того, я не очень уверен в временных рядах, но не должно ли каждое наблюдение назначаться на месяц, и ваша регрессия выглядит примерно так?
Приносим извинения, если это не имеет смысла.
источник
В вашем графическом изображении временного ряда очевидно, что «тренд» - линейный компонент во времени - является самым существенным фактором, способствующим реализации. Мы хотели бы прокомментировать, что наиболее важным аспектом этого временного ряда является стабильный рост каждый месяц.
После этого я бы прокомментировал, что сезонные колебания незначительны по сравнению. Поэтому неудивительно, что при ежемесячных измерениях, проводимых в течение 6 лет (всего 72 наблюдения), линейная регрессионная модель не может точно определить любой из 11-месячных контрастов как статистически значимый. Это, кроме того , не удивительно , что время эффект действительно достичь статистической значимости, потому что это то же самое примерно соответствует линейному увеличение происходит по всему 72 наблюдению, зависимости от их сезонного эффекта.
Отсутствие статистической значимости для любого из 11-месячных контрастов не означает, что нет сезонных эффектов. Фактически, если вы использовали регрессионную модель, чтобы определить, есть ли какая-либо сезонность, подходящим тестом является тест на 11 степеней свободы, который одновременно оценивает статистическую значимость контраста каждого месяца. Вы можете получить такой тест, проведя ANOVA, тест отношения правдоподобия или надежный тест Уолда. Например:
library(lmtest) model.mt <- lm(outcome ~ time + month) model.t <- lm(outcome ~ time) aov(model.mt, model.t) lrtest(model.mt, model.t) library(sandwich) ## autoregressive consistent robust standard errors waldtest(lrtest, lmtest, vcov.=function(x)vcovHAC(x))
источник
Я не знаю, является ли это вашим случаем, но это случилось со мной, когда я начал анализировать временные ряды в R, и проблема заключалась в том, что я не правильно указал период временных рядов при создании объекта временного ряда для его разложения. В функции временного ряда есть параметр, который позволяет указать его частоту. При этом он правильно разлагает свои сезонные тренды.
источник