Como adicionar componente periódico ao modelo de regressão linear?

17

Eu tenho alguns dados de frequência cumulativos. Uma linha parece ajustar muito bem os dados, mas há uma oscilação cíclica / periódica na linha. Gostaria de estimar quando a frequência cumulativa atingirá um determinado valor c . Quando planto os resíduos versus os valores ajustados, recebo um belo comportamento sinusoidal.cy=umax+bc

Agora, para adicionar outra complicação, observe que nos gráficos de resíduos

texto alternativo

existem dois ciclos com valores mais baixos que os outros, o que representa um efeito de final de semana que também deve ser levado em consideração.

Então, para onde eu vou daqui? Como posso combinar algum termo cosseno, seno ou cíclico em um modelo de regressão para aprox. estimar quando a frequência cumulativa será igual a c ?

Ryan Rosario
fonte

Respostas:

9

Você pode tentar o stl()método maravilhoso - ele se decompõe (usando o loess()ajuste iterado ) em tendência, sazonal e restante. Isso pode apenas captar suas oscilações aqui.

Dirk Eddelbuettel
fonte
8

Se você conhece a frequência da oscilação, pode incluir dois preditores adicionais, sin (2π wt) e cos (2π wt) - configurados w para obter o comprimento de onda desejado - e isso modelará a oscilação. Você precisa dos dois termos para ajustar a amplitude e o ângulo de fase. Se houver mais de uma frequência, você precisará de um termo seno e cosseno para cada frequência.

Se você não sabe quais são as frequências, a maneira padrão de isolar várias frequências é prejudicar os dados (obter os resíduos do ajuste linear, como você fez) e executar uma transformação discreta de Fourier contra os resíduos. Uma maneira rápida e suja de fazer isso é no MS-Excel, que possui uma ferramenta de análise de Fourier no suplemento de análise de dados. Execute a análise contra os resíduos, obtenha o valor absoluto das transformações e faça um gráfico de barras do resultado. Os picos serão seus principais componentes de frequência que você deseja modelar.

Ao adicionar esses preditores cíclicos, preste muita atenção aos valores de p na sua regressão e não exagere. Use apenas as frequências estatisticamente significativas. Infelizmente, isso pode dificultar um pouco o ajuste das baixas frequências.

Mike Anderson
fonte
2
Quando você estima as frequências dos dados (como na análise de Fourier) e as inclui como termos sin / cos na regressão, seus valores de p não terão sentido.
whuber
4

Vamos começar observando que os mínimos quadrados comuns adequados a esses dados são provavelmente inapropriados. Se, como de costume, se supõe que os dados individuais que estão sendo acumulados tenham componentes de erro aleatórios, o erro nos dados cumulativos ( não nas frequências cumulativas - algo diferente do que você possui) é a soma cumulativa de todos os termos de erro. Isso torna os dados cumulativos heterocedásticos (eles se tornam cada vez mais variáveis ​​ao longo do tempo) e fortemente correlacionados positivamente. Como esses dados são tão regularmente comportados, e há muitos deles, há pouco problema com o ajuste você receberá, mas suas estimativas de erros, suas previsões (que é a questão da questão) e, especialmente, seus erros padrão de previsão podem estar muito distantes.

Um procedimento padrão para analisar esses dados começa com os valores originais. Faça as diferenças do dia-a-dia para remover o componente sinusoidal de frequência mais alta. Pegue as diferenças semanais para remover um possível ciclo semanal. Analise o que resta. A modelagem ARIMA é uma abordagem flexível e poderosa, mas comece simplesmente: faça um gráfico desses dados diferenciados para ver o que está acontecendo e depois prossiga a partir daí. Observe também que, com menos de duas semanas de dados, suas estimativas do ciclo semanal serão fracas e essa incerteza dominará a incerteza nas previsões.

whuber
fonte
2

Claramente, a oscilação dominante tem período de um dia. Parece que também existem componentes de frequência mais baixa relacionados ao dia da semana; portanto, adicione um componente com frequência uma semana (ou seja, um sétimo de dia) e seus primeiros harmônicos. Isso fornece um modelo do formulário:

E(y)=c+uma0 0porque(2πt)+b0 0pecado(2πt)+uma1porque(2πt/7)+b1pecado(2πt/7)+uma2porque(4πt/7)+b2pecado(4πt/7)+...

- assumindo que é medido em dias. Aqui é o dado bruto , não sua soma cumulativa.ty

uma parada
fonte
-2

Por que não usar apenas um GA para encontrar a amplitude, período e fase de uma série senoidal (ou cosseno) sequencialmente e depois combinados. Otimize o seguinte: (n (n-1) / ((np-1) ^ 2 (np-2))) RSS

Mark Campbell
fonte
1
Não está claro como isso responde à pergunta sobre o cálculo de uma função de frequência cumulativa inversa. E o que você quer dizer com "GA"? Algoritmo genético? Algo mais?
whuber