Uso a decompose
função R
e crio os três componentes da minha série temporal mensal (tendência, sazonal e aleatória). Se plotar o gráfico ou olhar para a tabela, posso ver claramente que a série temporal é afetada pela sazonalidade.
No entanto, quando regredo a série temporal para as 11 variáveis fictícias sazonais, todos os coeficientes não são estatisticamente significativos, sugerindo que não há sazonalidade.
Não entendo por que tenho dois resultados muito diferentes. Isso aconteceu com alguém? Estou fazendo algo errado?
Eu adiciono aqui alguns detalhes úteis.
Esta é a minha série temporal e a alteração mensal correspondente. Nos dois gráficos, você pode ver que há sazonalidade (ou é isso que eu gostaria de avaliar). Especialmente, no segundo gráfico (que é a variação mensal da série), vejo um padrão recorrente (pontos altos e pontos baixos nos mesmos meses do ano).
Abaixo está a saída da decompose
função. Agradeço que, como disse @RichardHardy, a função não teste se há sazonalidade real. Mas a decomposição parece confirmar o que penso.
No entanto, quando regrito a série temporal em 11 variáveis fictícias sazonais (janeiro a novembro, exceto dezembro), encontro o seguinte:
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
Basicamente, todos os coeficientes de sazonalidade não são estatisticamente significativos.
Para executar a regressão linear, uso a seguinte função:
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)
onde eu configurei o Yvar como uma variável de série temporal com frequência mensal (frequência = 12).
Também tento levar em consideração o componente de tendência das séries temporais, incluindo uma variável de tendência para a regressão. No entanto, o resultado não muda.
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 ***
Portanto, minha pergunta é: estou fazendo algo errado na análise de regressão?
fonte
decompose
funçãoR
é usada).decompose
função, parece que a função não testa se há sazonalidade. Em vez disso, apenas obtém médias para cada estação, subtrai a média e chama isso de componente sazonal. Portanto, produziria um componente sazonal, independentemente de haver um componente sazonal subjacente verdadeiro ou apenas ruído. No entanto, isso não explica por que seus manequins são insignificantes, embora você diga que a sazonalidade é visível a partir de um gráfico dos dados. Será que sua amostra é muito pequena para obter bonecos sazonais significativos? Eles são conjuntamente significativos?Respostas:
Você está fazendo a regressão nos dados depois de remover a tendência? Você tem uma tendência positiva e sua assinatura sazonal provavelmente está mascarada em sua regressão (a variação devido à tendência ou erro é maior que devido ao mês), a menos que você tenha explicado a tendência em Yvar ...
Além disso, não estou muito confiante com as séries temporais, mas cada observação não deve ser atribuída por mês e sua regressão se parece com isso?
Desculpas se isso não faz sentido ... A regressão faz mais sentido aqui?
fonte
Em sua representação gráfica das séries temporais, é óbvio que "tendência" - um componente linear no tempo - é o único contribuinte substancial para a realização. Gostaríamos de comentar que o aspecto mais importante desta série cronológica é o aumento estável a cada mês.
Depois disso, gostaria de comentar que a variação sazonal é minúscula em comparação. Portanto, não é de surpreender que, com medidas mensais tomadas ao longo de 6 anos (um total de apenas 72 observações), o modelo de regressão linear não tenha precisão para identificar qualquer um dos contrastes de 11 meses como estatisticamente significativo. Além disso, não é surpreendente que o efeito do tempo não atingiu significância estatística, porque é o mesmo aumento linear aproximadamente consistentes ocorrendo ao longo de todas as 72 observações, depende do seu efeito sazonal.
A falta de significância estatística para qualquer um dos contrastes de 11 meses não significa que não há efeitos sazonais. De fato, se você usar um modelo de regressão para determinar se há sazonalidade, o teste apropriado é o teste de 11 graus de liberdade aninhado, que avalia simultaneamente a significância estatística do contraste de cada mês. Você obteria esse teste realizando uma ANOVA, teste de razão de verossimilhança ou teste de Wald robusto. Por exemplo:
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))
fonte
Não sei se é o seu caso, mas isso aconteceu comigo quando comecei a analisar as séries temporais no R e o problema era que eu não havia declarado corretamente o período da série temporal ao criar o objeto de série temporal para decompô-lo. Há um parâmetro na função de série temporal que permite especificar sua frequência. Com isso, decompõe corretamente suas tendências sazonais.
fonte