Qual é o melhor, stl ou decompor?

10

Estou fazendo análise de séries temporais usando R. Tenho que decompor meus dados em tendência, componente sazonal e aleatório. Eu tenho dados semanais por 3 anos. Eu encontrei duas funções em R - stl()e decompose(). Eu li que isso stl()não é bom para decomposição multiplicativa. Alguém pode me dizer em que cenário essas funções podem ser usadas?

Arushi
fonte
11
Você terá que fornecer algum contexto para o seu problema, caso contrário, teremos que migrar para troca de pilha ou fechar com a recomendação de tentar ?stle ?decompose.
AdamO

Respostas:

4

Eu diria STL. STL faz tendência e veja sazonal: http://www.wessa.net/download/stl.pdf

Decompor apenas sazonalmente, consulte a documentação aqui: http://stat.ethz.ch/R-manual/R-devel/library/stats/html/decompose.html

Ao trabalhar com eles, inclua o tipo de tendência (multiplicativo, aditivo) e o tipo de estação (multiplicativo, aditivo). Às vezes, as tendências também podem ter um fator de amortecimento.

Por decomposição multiplicativa, presumo que você queira dizer no caso de tendência. Não é provável que você use decomposição multiplicativa, a menos que esteja decompondo uma função de crescimento exponencial.

ccsv
fonte
A decomposição multiplicativa no caso simples é onde o modelo subjacente é Y = tendência * erro sazonal *. Modelos multiplicativos surgem em contextos não exponenciais. Por exemplo, nas vendas, você tem um certo nível de tráfego e uma certa taxa de conversão e, portanto, o componente sazonal varia proporcionalmente à tendência. Solução é a que Natalie descreve.
5

Desvantagens da decomposefunção em R:

  1. A estimativa da tendência não está disponível para as primeiras e as últimas observações.
  2. Pressupõe que o componente sazonal se repita de ano para ano.

Então, eu preferiria STL. É possível obter uma decomposição multiplicativa primeiro registrando os dados e depois transformando os componentes novamente.

Natalie
fonte
1

O STL é uma técnica mais avançada para extrair sazonalidade, no sentido de permitir que a sazonalidade varie, o que não é o caso decompose.

Para entender como o STL funciona:

  • o algoritmo estima todas as sub-séries sazonais (em uma sazonalidade de 7 dias, estimará 7 sub-séries: a segunda-feira, a terça-feira, etc.),
  • estimará a sazonalidade local executando uma regressão menor em todas as sub-séries.

Isso permite capturar o efeito variável na sazonalidade. Se você não deseja que sua sazonalidade varie (em outras palavras, o efeito estimado de cada sub-série permanecerá constante durante todo o tempo), é possível especificar a janela sazonal como infinita ou "periódica". Isso é equivalente à média de cada sub-série e atribui um peso igual a todos os pontos (você não tem mais nenhum efeito "local"). decomposeé essencialmente o mesmo, pois os subcomponentes sazonais permanecerão constantes durante toda a série, o que é uma configuração especial do STL.

Isso é bem explicado aqui: https://www.otexts.org/fpp/6/1 .

O STL estima a sazonalidade de forma aditiva. Conforme explicado algumas páginas posteriormente na fonte anterior, é possível estimar a sazonalidade de forma multiplicativa, recorrendo à transformação de log (ou transformação de Cox-Box).

Tanguy
fonte