Capturando a sazonalidade em regressão múltipla para dados diários

13

Tenho dados de vendas diárias de um produto altamente sazonal. Eu quero capturar a sazonalidade no modelo de regressão. Eu li que, se você tiver dados trimestrais ou mensais, nesse caso, poderá criar 3 e 11 variáveis ​​fictícias, respectivamente - mas posso lidar com dados diários?

Eu tenho três anos de dados diários. As variáveis ​​independentes são preço, sinal promocional (sim / não) e temperatura. A variável dependente é a venda desse produto. Não estou procurando um modelo de série temporal, pois estou usando um modelo de regressão múltipla.

Arushi
fonte
Quantos dados você tem? Quantos anos valem? Você tem dados sobre algo como temperatura? Como é o restante do seu modelo? Quais são os seus DV e IVs?
Peter Flom - Restabelece Monica
Além do que Peter Flom perguntou, você está modelando seus dados como séries temporais univariadas ou multivariadas? Se for multivariada, você tem outras variáveis? Essas variáveis ​​exibem comportamento sazonal? se assim for, adicionar variável dummy seria desnecessário. Você pode fornecer essas informações adicionais?
forecaster
Eu editei minha pergunta. Poderia, por favor, fornecer qualquer solução. Obrigado
Arushi
Eu concordo totalmente com o @IrishStat, não suporemos ignorar os modelos de séries temporais, um modelo muito bom por aí que captura várias sazonalidades. Sugiro que você verifique o modelo de espaço de estado de suavização exponencial que está tendo a capacidade de lidar com várias sazonalidades, trend, simultaneamente.se exclusivamente em R., você pode usar o pacote if Forecast ().
Karthi V

Respostas:

10

O @Irishstat abordou praticamente o que eu estava prestes a dizer, mas eu responderia com minha própria experiência pessoal na modelagem desses dados com regressão de séries temporais e OLS.

Se for um dado diário, eu faria o seguinte:

Crie uma variável dummy para diferentes sazonalidades:

  • Para capturar a sazonalidade do dia da semana, crie 6 variáveis ​​fictícias.
  • Para capturar a sazonalidade do dia do mês, crie 30 variáveis ​​fictícias
  • Para capturar o mês do ano, crie 11 variáveis ​​fictícias.

Crie uma variável fictícia para variáveis ​​de tendência:

  • Se a série temporal exibir tendência linear, adicione uma variável de tendência temporal.

  • Se a série temporal exibir tendência não linear, adicione uma variável de tendência temporal não linear, como quadrático / cúbico / log

Adicionar variáveis ​​independentes Variáveis

  • Como são dados de séries temporais, deve-se tomar cuidado com os efeitos de chumbo e atraso de varibales independentes. Por exemplo, no seu exemplo, você menciona a bandeira promocional de preço, eles podem não ter efeito imediato em sua resposta, ou seja, pode haver atraso e um efeito decadente / permanente . Por exemplo, se você executar uma promoção hoje, poderá ter um aumento nas vendas hoje, mas o efeito da promoção decairá após alguns dias. Não há uma maneira fácil de modelar isso usando regressão múltipla; você deseja usar a modelagem da função de transferência, que é parsimonoius e pode lidar com qualquer tipo de efeito de avanço e atraso. Veja este exemplo que publiquei anteriormente, onde há uma intervenção (no seu caso, preço) e há um aumento abrupto, seguido de um efeito decadente. Dito isto, se você tiverPara conhecer a priori o efeito lead e lag, crie variáveis ​​adicionais no seu caso, variáveis ​​fictícias antes e depois do preço e mudança de promoção (sim / não).

  • Você também precisará adicionar variáveis ​​de indicador de feriados em movimento, por exemplo, como o Irishstat indicou que você deseja adicionar Páscoa / Ação de Graças (nos EUA) que estão movendo feriados. Feriados com datas fixas serão resolvidos automaticamente se você estiver usando um esquema de codificação fictícia para capturar a sazonalidade.

  • Além disso, você precisaria identificar valores discrepantes como aditivo / pulso (evento único) ou mudança de nível (mudança permanente) e adicioná-los como regressores. Identificar outliers em regressão múltipla para dados de séries temporais é quase impossível; você precisaria de métodos de detecção discrepantes de séries temporais, como o procedimento de Tsay ou o procedimento de Chen e Liu, que foi incorporado a softwares como AUTOBOX, SPSS, SAS ou o tsoutlierpacote em R.

Problemas potenciais:

A seguir, estão os problemas que você encontraria se modelasse dados de séries temporais usando a regressão múltipla do OLS.

  • Os erros podem ter correlação automática. Veja este belo site e este site explicando o problema. Uma maneira de evitar isso é usar a abordagem de mínimos quadrados generalizados (GLS) ou ARIMAX vs. regressão múltipla OLS, onde você pode corrigir a correlação automática.
  • O modelo OLS não será parsimonoius. Você tem6+30+11=47 variáveis ​​fictícias para sazonalidade.
  • Ao usar variáveis ​​fictícias, você assume que sua sazonalidade é determinística, ou seja, não muda com o tempo. Como você tem apenas 3 anos de dados, eu não me preocuparia com isso, mas ainda vale a pena traçar a série e ver se a sazonalidade não muda.

E há muitas mais desvantagens de usar a regressão múltipla. Se a previsão for mais importante para você, eu armazenaria pelo menos 6 meses de dados e testaria a capacidade preditiva de sua regressão múltipla. Se seu objetivo principal é explicar a correlação entre variáveis ​​independentes, eu seria cauteloso usando a regressão múltipla e, em vez disso, usaria uma abordagem de séries temporais, como ARIMAX / GLS.

Se você estiver interessado, consulte o excelente texto de Pankratz , para função de transferência e modelagem de regressão dinâmica. Para previsão geral de séries temporais, consulte Makridakis et al . Além disso, um bom texto de referência seria de Diebold para regressão e previsão baseada em séries temporais.

previsor
fonte
Um resumo muito bom, mas gostaria de acrescentar que você ignorou os efeitos específicos da semana do mês e do dia do mês, além dos possíveis efeitos do fim de semana, os quais considero muito importantes. Além disso, os efeitos pré e pós-evento não devem ser ignorados. Considere a atividade na Páscoa e em outros feriados / eventos importantes. Geralmente, há um padrão de resposta individual que requer a incorporação de uma especificação LEAD. Você também deve observar que os parâmetros podem e frequentemente mudam ao longo do tempo e é necessário validar a suposição de constância dos parâmetros.
IrishStat
Obrigado @Irishstat. Você está certo. Esqueci-me de férias em movimento e seus efeitos de chumbo e atraso.
forecaster
2

O que você precisa é de um modelo que incorpore efeitos diários, efeitos semanais, efeitos mensais, efeitos da semana do mês, efeitos do dia do mês, efeitos de lead e lag dos feriados, mudanças de nível / etapa não especificadas, mas empiricamente identificáveis, tendências da hora local, mudanças nos pulsos sazonais e pulsos ao incorporar a estrutura ARIMA e possivelmente lidar com alterações nos parâmetros e na variação de erros ao longo do tempo. Isso é chamado de Função de Transferência e pode ser facilmente reajustado (MAS NÃO PARSIMONIAMENTE) como uma Regressão Linear Múltipla.

Especificamente, um indicador diário levaria 6 preditores. Em geral, é preciso orquestrar cuidadosamente (identificar) que tipo de preditores são necessários. Se você tem muito tempo em mãos, pode experimentar algumas das estruturas que mencionei. Como alternativa, você pode precisar de algum software / consultoria avançada para resolver seu problema durante a sua vida.

IrishStat
fonte