Avaliação da previsibilidade de séries temporais

11

Suponha que eu tenha um pouco mais de 20.000 séries temporais mensais que vão de jan'05 a dez'11. Cada um deles representa dados de vendas globais para um produto diferente. E se, em vez de calcular previsões para cada um deles, eu quisesse focar apenas em um pequeno número de produtos que "realmente importam"?

Eu poderia classificar esses produtos pela receita anual total e reduzir a lista usando o clássico Pareto. Ainda me parece que, embora eles não contribuam muito para o resultado final, alguns produtos são tão fáceis de prever que deixá-los de fora seria um julgamento ruim. Um produto que vendeu US $ 50 a cada mês nos últimos 10 anos pode não parecer muito, mas requer tão pouco esforço para gerar previsões sobre vendas futuras que eu também o faria.

Então, digamos que divido meus produtos em quatro categorias: alta receita / fácil de prever - baixa receita / fácil de prever - alta receita / difícil de prever - baixa receita / difícil de prever.

Eu acho que seria razoável deixar para trás apenas as séries temporais pertencentes ao quarto grupo. Mas como exatamente posso avaliar a "previsibilidade"?

O coeficiente de variação parece ser um bom ponto de partida (também me lembro de ter visto algum artigo sobre isso há algum tempo). Mas e se minhas séries temporais exibirem sazonalidade / mudanças de nível / efeitos de calendário / tendências fortes?

Eu imaginaria que deveria basear minha avaliação apenas na variabilidade do componente aleatório e não no dos dados "brutos". Ou eu estou esquecendo de alguma coisa?

Alguém já encontrou um problema semelhante antes? Como vocês iriam fazer isso?

Como sempre, qualquer ajuda é muito apreciada!

Bruder
fonte

Respostas:

9

Aqui está uma segunda idéia baseada em stl.

Você pode ajustar uma decomposição stl para cada série e comparar o erro padrão do componente restante com a média dos dados originais, ignorando os anos parciais. As séries fáceis de prever devem ter uma pequena proporção de se (restante) para média (dados).

A razão pela qual sugiro ignorar anos parciais é que a sazonalidade afetará a média dos dados. No exemplo da pergunta, todas as séries têm sete anos completos, portanto não é um problema. Mas se a série se estender parcialmente até 2012, sugiro que a média seja computada até o final de 2011 para evitar a contaminação sazonal da média.

Essa ideia assume que a média (dados) faz sentido - ou seja, os dados são médios estacionários (além da sazonalidade). Provavelmente não funcionaria bem para dados com tendências fortes ou raízes de unidades.

Ele também pressupõe que um bom ajuste se traduz em boas previsões, mas não consigo pensar em um exemplo em que isso não seja verdade; portanto, é provavelmente uma suposição aceitável.

Rob Hyndman
fonte
Oi Rob, obrigado por voltar para mim. Eu gosto da sua idéia, então vou tentar e ver se ele fornece o nível desejado de filtragem. Só mais uma coisa, existe alguma razão específica para usar média (dados) sobre média (restante)? Receio que algumas das minhas séries temporais possam ter uma tendência um pouco forte. As séries decompostas STL, em vez disso, não deveriam. Você também acha que a abordagem que descrevemos até agora para avaliar discrepâncias de previsão / detecção é boa o suficiente para ser implementada em um ambiente de negócios real? Ou é muito "amador"? Você normalmente faria as coisas de maneira muito diferente?
Bruder
A média (restante) será próxima de zero. Você deseja comparar o ruído com a escala dos dados, então a média (dados) deve estar ok. Não sabe ao certo como lidar com suas tendências. Eu testaria a abordagem cuidadosamente em vários dados antes de acreditar nos resultados.
22812 Rob Robndndman
8

Esse é um problema bastante comum na previsão. A solução tradicional é calcular os erros percentuais absolutos médios (MAPEs) em cada item. Quanto menor o MAPE, mais fácil é a previsão do item.

Um problema é que muitas séries contêm valores zero e, em seguida, MAPE é indefinido.

Propus uma solução em Hyndman e Koehler (IJF 2006) [versão pré-impressão] usando erros médios absolutos em escala (MASEs). Para séries temporais mensais, o dimensionamento seria baseado em previsões ingênuas sazonais dentro da amostra. Ou seja, se é uma observação no tempo , os dados estão disponíveis dos tempos 1 a e um erro de escala é , onde é uma previsão de usando o método de previsão que você está implementando para esse item. Pegue o valor absoluto médio dos erros de escala para obter o MASE. Por exemplo, você pode usar uma origem rotativa (também conhecida comoyttT

Q=1T12t=13T|ytyt12|,
qt=(yty^t)/Q y tythy^tytvalidação cruzada de séries temporais ) e use o valor absoluto médio dos erros resultantes de uma etapa (ou etapa ).h

As séries fáceis de prever devem ter valores baixos de MASE. Aqui "fácil de prever" é interpretado em relação à previsão ingênua sazonal. Em algumas circunstâncias, pode fazer mais sentido usar uma medida base alternativa para dimensionar os resultados.

Rob Hyndman
fonte
Olá Rob, obrigado pela sua resposta. Como sempre, sua abordagem é muito clara, direta e razoável. Eu já avalio o valor agregado da previsão ( FTV ) em relação a um modelo ingênuo sazonal, de modo que sua idéia de avaliar a previsibilidade usando a mesma "medida base" parece muito atraente. O único problema é que, para calcular o MASE, preciso escolher um método de previsão e executar simulações para cada uma das minhas séries temporais 20000. Eu esperava poder identificar séries fáceis de prever com antecedência, para economizar tempo computacional.
Bruder
Por alguma razão, pensei que séries temporais com menor variabilidade relativa (ou seja, CV) resultariam necessariamente em previsões mais fáceis e mais precisas. Calculando previsões e depois, e só então medindo erros, meio que desafia, eu acho, meu objetivo. Acho que o que estou tentando dizer é que considero o MASE mais uma medida de precisão da previsão do que uma medida da previsibilidade. Mas eu posso estar errado ... :) #
1155 Bruder
11
@Bruder: 2 pensamentos: 1. Você pode ver uma previsão simples e ingênua, em vez de uma previsão sazonal. Uma previsão simples e ingênua usa apenas o valor anterior da série cronológica e registra uma forte tendência (com um atraso de 1 período). 2. A decomposição do STL é uma boa ideia. Se os resíduos forem muito pequenos em comparação com os componentes sazonais e de tendência, provavelmente você poderá prever facilmente a série.
Zach
11
@ Rob - e quanto à decomposição STL? Posso obter dois coelhos com uma cajadada (ou seja, detectar discrepantes e avaliar a previsibilidade, portanto, avaliar a previsibilidade "verdadeira")? Surpreende-me quantas coisas posso realizar com apenas STL e um modelo ingênuo sazonal. Mas você sabe o que acontece quando as coisas são boas demais para ser verdade ...
Bruder
11
Eu acredito que o índice da soma deve ser vez de . iti
Blakeoft #
5

Você pode estar interessado em ForeCA: Análise de Componentes Previsíveis (exoneração de responsabilidade: eu sou o autor). Como o nome sugere, é uma técnica de redução de dimensão / separação de fonte cega (BSS) para encontrar os sinais mais previsíveis de muitas séries temporais multivariadas - mais ou menos estacionárias. Para o seu caso específico de 20.000 séries temporais, pode não ser a coisa mais rápida a ser feita (a solução envolve espectros de potência multivariados e atualização analítica iterativa do melhor vetor de peso; além disso, acho que pode ocorrer o problema ).pn

Há também um pacote R ForeCA disponível no CRAN (novamente: eu sou o autor) que implementa a funcionalidade básica; no momento, ele suporta a funcionalidade de estimar a medida de para séries temporais univariadas e possui algumas boas funções de empacotador para espectros multivariados (novamente 20.000 séries temporais provavelmente são demais para lidar de uma só vez).Ω(xt)

Mas talvez você possa tentar usar a medida MASE proposta por Rob para fazer uma separação grossa da grade dos 20.000 em vários subgrupos e depois aplicar o ForeCA a cada um separadamente.

Georg M. Goerg
fonte
0

Essa resposta é muito tardia, mas para aqueles que ainda estão procurando uma medida apropriada de previsibilidade para séries temporais de demanda de produtos, sugiro observar a entropia aproximada .

A presença de padrões repetitivos de flutuação em uma série temporal o torna mais previsível do que uma série temporal em que esses padrões estão ausentes. ApEn reflete a probabilidade de que padrões semelhantes de observação não sejam seguidos por observações semelhantes adicionais. [7] Uma série temporal contendo muitos padrões repetitivos possui um ApEn relativamente pequeno; um processo menos previsível tem um ApEn maior.

A demanda do produto tende a ter um componente sazonal muito forte, tornando inadequado o coeficiente de variação (CV). ApEn (m, r) é capaz de lidar com isso corretamente. No meu caso, como meus dados tendem a ter uma forte sazonalidade semanal, defino os parâmetros m = 7 er = 0,2 * std, conforme recomendado aqui .

meraxes
fonte
No artigo da wikipedia, o que significa ? u
Blakeoft 04/11/19
Eu vejo agora. Eu pensei que e estavam relacionados, mas na verdade não são. u *uu
blakeoft