Quero detectar a sazonalidade nos dados que recebo. Existem alguns métodos que encontrei, como o gráfico de sub-séries sazonais e o gráfico de autocorrelação, mas o problema é que não entendo como ler o gráfico, alguém poderia ajudar? A outra coisa é: existem outros métodos para detectar a sazonalidade com ou sem o resultado final no gráfico?
time-series
seasonality
Danial
fonte
fonte
Respostas:
Uma maneira realmente boa de encontrar periodicidade em qualquer série regular de dados é inspecionar seu espectro de potência após remover qualquer tendência geral . (Isso se presta bem à triagem automatizada quando a energia total é normalizada para um valor padrão, como a unidade.) A remoção preliminar de tendências (e a diferenciação opcional para remover a correlação serial) é essencial para evitar períodos de confusão com outros comportamentos.
O espectro de potência é a transformada discreta de Fourier da função de autocovariância de uma versão suavizada da série original. Se você considerar as séries temporais como amostra de uma forma de onda física, poderá estimar quanto da energia total da onda é transportada dentro de cada frequência. O espectro de potência (ou periodograma ) representa a potência versus frequência. Os padrões cíclicos (isto é, padrões repetitivos ou sazonais) aparecerão como grandes picos localizados em suas frequências.
Como exemplo, considere esta série temporal (simulada) de resíduos de uma medição diária realizada por um ano (365 valores).
Aqui está outro gráfico dos mesmos dados, desenhado para nos ajudar a ver possíveis padrões periódicos.
Se você parecer realmente duro, poderá discernir um padrão ruidoso, mas repetitivo, que ocorre de 11 a 12 vezes. As sequências longas de valores acima de zero e abaixo de zero sugerem pelo menos alguma autocorrelação positiva, mostrando que esta série não é completamente aleatória.
Aqui está o periodograma, mostrado para frequências de até 91 (um quarto da duração total da série). Foi construído com uma janela Welch e normalizado para a área da unidade (para todo o periodograma, não apenas a parte mostrada aqui).
O poder parece "ruído branco" (pequenas flutuações aleatórias) mais dois picos proeminentes. Eles são difíceis de perder, não são? O maior ocorre em um período de 12 e o menor em um período de 52. Esse método detectou um ciclo mensal e um ciclo semanal nesses dados. Isso é realmente tudo o que existe. Para automatizar a detecção de ciclos ("sazonalidade"), basta digitalizar o periodograma (que é uma lista de valores) em busca de máximos locais relativamente grandes.
É hora de revelar como esses dados foram criados.
Os valores são gerados a partir de uma soma de duas ondas senoidais, uma com frequência 12 (de amplitude ao quadrado 3/4) e outra com frequência 52 (de amplitude ao quadrado 1/4). Estes são os picos detectados no periodograma. Sua soma é mostrada como a curva preta grossa. Iid O ruído normal de variação 2 foi então adicionado, como mostrado pelas barras cinza claro que se estendem da curva preta aos pontos vermelhos. Esse ruído introduziu as manobras de baixo nível na parte inferior do periodograma, que de outra forma seriam apenas um zero. Totalmente dois terços da variação total dos valores são não periódicos e aleatórios, o que é muito barulhento: é por isso que é tão difícil perceber a periodicidade apenas olhando para os pontos. No entanto (em parte porque há muitos dados), é fácil encontrar as frequências com o periodograma e o resultado é claro.
Instruções e bons conselhos para calcular periodogramas aparecem no site de Receitas Numéricas : procure a seção "estimativa do espectro de potência usando a FFT".
R
possui código para estimativa do periodograma . Essas ilustrações foram criadas no Mathematica 8; o periodograma foi calculado com sua função "Fourier".fonte
Aqui está um exemplo usando dados mensais sobre pedidos de registro de desemprego de uma cidade de Nova Jersey (da Stata, apenas porque foi o que eu analisei esses dados originalmente).
As alturas das linhas indicam a correlação entre uma variável e o sth lag de si; a área cinza mostra se essa correlação é significativa (esse intervalo é apenas um guia e não é a maneira mais confiável de testar a significância). Se essa correlação for alta, há evidências de correlação serial. Observe as alterações que ocorrem nos períodos 12, 24 e 36. Como esses são dados mensais, isso sugere que a correlação fica mais forte quando você olha períodos exatamente 1, 2 ou 3 anos antes. Isso é evidência de sazonalidade mensal.
Você pode testar esses relacionamentos estatisticamente, regredindo a variável em variáveis simuladas, indicando o componente de sazonalidade - aqui, manequins mensais. Você pode testar o significado conjunto desses manequins para testar a sazonalidade.
Esse procedimento não está certo, pois o teste exige que os termos do erro não sejam correlacionados em série. Portanto, antes de testar esses manequins de sazonalidade, precisamos remover a correlação serial restante (geralmente incluindo atrasos da variável). Pode haver pulsos, quebras e todos os outros problemas de séries temporais que você precisa corrigir para obter os resultados apropriados do teste. Você não perguntou sobre isso, então não vou entrar em detalhes (além disso, há muitas perguntas sobre o currículo sobre esses tópicos). (Apenas para alimentar sua curiosidade, esta série requer os manequins do mês, um único atraso e um componente de turno para se livrar da correlação serial.)
fonte
A sazonalidade pode e muda frequentemente ao longo do tempo, portanto, as medidas sumárias podem ser bastante inadequadas para detectar a estrutura. É preciso testar a transitoriedade dos coeficientes do ARIMA e, muitas vezes, as mudanças nos “manequins sazonais”. Por exemplo, em um horizonte de 10 anos, pode não ter havido um efeito de junho nos primeiros k anos, mas nos últimos 10 mil anos há evidências de um efeito de junho. Um simples efeito composto de junho pode não ser significativo, pois o efeito não foi constante ao longo do tempo. De maneira semelhante, um componente ARIMA sazonal também pode ter sido alterado. Deve-se tomar cuidado para incluir mudanças no nível local e / ou tendências da hora local, garantindo que a variação dos erros permaneça constante ao longo do tempo. Não se deve avaliar transformações como GLS / mínimos quadrados ponderados ou transformações de potência como toras / raízes quadradas, etc. nos dados originais, mas nos erros de um modelo experimental. As suposições gaussianas não têm nada a ver com os dados observados, mas tudo a ver com os erros do modelo. Isso se deve aos fundamentos dos testes estatísticos que usam a razão de uma variável qui-quadrado não central para uma variável qui-quadrado central.
Se você quiser publicar uma série de exemplos do seu mundo, ficarei feliz em fornecer a você e à lista uma análise completa que leve à detecção da estrutura sazonal.
fonte
A resposta de Charlie é boa, e é onde eu começaria. Se você não quiser usar gráficos ACF, poderá criar variáveis fictícias k-1 para os k períodos presentes. Então você pode ver se as variáveis dummy são significativas em uma regressão com as variáveis dummy (e provavelmente um termo de tendência).
Se seus dados são trimestrais: o fictício Q2 é 1 se este for o segundo trimestre, caso contrário 0 fictício Q3 é 1 se for o terceiro trimestre, caso contrário 0 fictício Q4 é 1 se for o quarto trimestre, caso contrário 0 Nota trimestre 1 é o estojo base (todos os 3 manequins zero)
Você também pode verificar a "decomposição de séries temporais" no Minitab - geralmente chamada de "decomposição clássica". No final, você pode querer usar algo mais moderno, mas este é um lugar simples para começar.
fonte
Gostaria de aceitar a oferta de ajuda do usuário IrishStat ou de qualquer outra pessoa da minha série de exemplos do mundo real. Estou tentando produzir um índice sazonal com base nos últimos 5 anos dos preços futuros do petróleo. Eu consegui produzir uma média simples Sazonal que pode ser vista aqui .
No entanto, gostaria de reproduzir um gráfico sazonal anual contínuo (acho que o rolamento significa que o início e o final do ano têm o mesmo valor) e está em uma escala de zero a 100, conforme mostrado na imagem abaixo:
Há 15 anos de dados diários do nível de preços na planilha que podem ser baixados. Exemplo ou qualquer dica sobre como obter o que foi dito acima seria muito apreciado.
fonte
Sou um pouco novo para R, mas meu entendimento da função ACF é que, se a linha vertical ultrapassar a linha tracejada superior ou abaixo da linha tracejada inferior, haverá alguma regressão automática (incluindo a sazonalidade). Tente criar um vetor de seno
fonte