Monday 17 July 2017

Autoregressive Moving Average Python


Forecasting e Python Part 1 8211 Médias móveis Eu gostaria de lançar uma série que leva diferentes metodologias de previsão e as demonstra usando o Python. Para obter o 8216ball rolling8217, eu quero começar com as médias móveis e, idealmente, terminar a série na previsão com os modelos ARIMA (AutoRegressive Integrated Moving Average). Meu objetivo é ter esse conteúdo 8216light8217 em teoria e matemática e, em vez disso, concentrar-se na aplicação no código. Eu escrevo isso tarde da noite, então sinta-se livre para me fazer ping, se eu tiver algum erro. Muitas vezes eu me refiro ao Y previsto como chapéu Y, se você não está ciente, na equação o símbolo do chapéu está localizado acima do previsão de Y. Previsão com a média móvel As médias móveis devem ser um ótimo lugar para começar todos os livros didáticos que comece com a mudança Médias para estabelecer as bases. As fórmulas são simples e divertidas. Equação 1: Equação de médias móveis O modelo de médias móveis calcula a média de cada observação nos períodos k. No meu código e resultados, vou usar uma média móvel de 12 períodos, portanto, k12. Y hat (t1) é o valor de previsão para o próximo período e Y (t) é o valor real no período t. Um período pode ser horas, dias, semanas, meses, ano, etc. Como o modelo é o mesmo independentemente, não vou especificar uma unidade. Yvalues ​​é um subconjunto de todos os valores reais de Y introduzidos no código. Defina meus 8216k8217 (períodos) iguais a 12, pois eu vou calcular uma média móvel de 12 períodos. O código itera sobre as observações (n), calcula a média para cada intervalo de 12 períodos (k12) e atribui o cálculo à lista yhat. No caso de você ter notado, yfull é a minha lista completa de valores de Y, onde yvalues ​​é um subconjunto que foi compensado por k. Mais sobre isso abaixo na seção 8216Offsetting Y Subset List8217. Lote Previsões reais e de previsão 1. 12 média móvel do período Medição de erros de previsão Eu tenho minha previsão, mas é bom. Visually, a previsão segue os valores reais bastante bem, mas como posso medir a qualidade dessa previsão e depois compará-la com as previsões Derivado usando diferentes métodos. Uma maneira de medir uma previsão é medindo os erros (a. k.a. residuals, Y real 8211 Y hat) Eu optei por incluir os seguintes métodos para medir erros de previsão nesta discussão. Mean Squared Error (MSE) que mede as médias dos erros quadrados (diferença de Y e Y hat). O MSE é relatado nas mesmas unidades que os valores estimados (Y), portanto, pode-se dizer que uma previsão está desligada em 821610,000 unidades8217. Esse erro pode ser visto como pequeno se os valores reais variarem em bilhões de unidades. O erro pode ser visto como grande se os valores reais apenas variarem nos 108217s de milhares. Um problema comum com o MSE é que ele pesa pesadamente grandes outliers inflando a medida de erro. O Root Mean Squared Error leva a raiz quadrada do MSE. RMSE representa o desvio padrão da amostra dos resíduos. O erro médio de porcentagem absoluta (MAPE) é um método alternativo que relata o erro como uma porcentagem. Em vez de dizer que a previsão está desligada por 8216x unidades8217, poderíamos dizer que uma previsão está desativada em 4. Eu freqüentemente uso mais de um método ao comparar as previsões, pois cada uma tem limitações, o que em algum momento pode resultar em medições espúrias por um ou dois métodos. Equação 2 amplificador 3: MSE e MAPE Equação 3: RMSE Previsão 1: Medições de erro MSE: 630,649.39 RMSE: 794.13 MAPE: 10.22 Deslocamento Y Lista de subconjuntos É interessante que a previsão acima (previsão 1) não 8216fit8217 os valores reais de forma mais efetiva 8211 É uma série de dados simples, espero que os resíduos sejam menores. Para calcular os valores do chapéu Y para o modelo de média móvel de 12 períodos, uso uma fórmula que move o tempo (t) 12 períodos à frente (veja a equação 1 acima). Foi assim que fui originalmente ensinado e tenho exemplos de livros didáticos na prateleira do escritório. Este código cria yfull a partir do arquivo de dados carregado e, em seguida, cria uma lista de subconjuntos começando 12 períodos. Porquê, porque usaremos o primeiro 12 período para dar início à nossa previsão média móvel. Os valores de previsão, no entanto, não representam os valores reais tanto quanto eu gostaria. Eles estão sob previsão ou sobre previsão. Outro método para a previsão média móvel sugere iniciar a previsão no ponto médio de 8216k8217. Previsão 1: Dados usando o ponto intermediário de 8216k8217 Previsão 2: 12 período de média móvel Previsão 2: Medições de erro MSE: 7,350.78 RMSE: 85.74 MAPE: 0.86 Comparando as medidas de erro de previsão da previsão 1 com a previsão 2 fornece uma indicação de que o segundo método se adequa melhor Nossos dados. No entanto, há muitos conteúdos disponíveis nas Médias Movimentadas Centradas que darão detalhes completos de como calcular os valores do ponto médio para os períodos pares. Eu não sou essa fonte, estou apenas demonstrando como reduzir o atraso das médias alinha melhor nossos chapéus Y ao real e melhora as medidas de erro. O código é quase idêntico, exceto que a lista de subconjuntos (yvalues) é criada 6 períodos e pára 6 períodos curtos. A média dos dados a partir do ponto médio em diante reduziu a quantidade de previsão de superação como feita na previsão 1. Previsão 2: Dados quando as médias móveis são menos adequadas A previsão média móvel começa a realmente falhar quando a série de dados tem um componente cíclico ou sazonalidade. Abaixo está o mesmo código médio Python de 12 períodos em relação a uma série de dados cíclicos. Previsão de 3: 12 médias móveis em movimento Previsão 3: Medições de erro MSE: 5,386,003,002.91 RMSE: 73,389.39 MAPE: 48.79 O gráfico e a medida de erro calculada indicam que as médias móveis não são boas para esta série. Eu usarei essa mesma série com outros modelos de previsão para demonstrar técnicas que fazem ciclos de picking nos dados. Análise de Dados de Python Modelos ARMA Os modelos ARMA são freqüentemente usados ​​para prever uma série de tempo. Esses modelos combinam modelos de média autorregressiva e móvel (veja en. wikipedia. orgwikiAutoregressiveE28093moving-averagemodel). Nos modelos de média móvel, assumimos que uma variável é a soma da média das séries temporais e uma combinação linear de componentes de ruído. Os modelos de média autorregressiva e móvel podem ter ordens diferentes. Em geral, podemos definir um modelo ARMA com p termos autorregressivos e q termos médios móveis da seguinte forma: na fórmula anterior, assim como na fórmula do modelo autorregressivo, temos um componente de ruído constante e branco no entanto. O melhor conteúdo para sua carreira. Descubra uma aprendizagem ilimitada sob demanda por cerca de 1 dia. Forecasting e Python Part 1 8211 Médias móveis Eu gostaria de iniciar uma série que leva diferentes metodologias de previsão e as demonstra usando o Python. Para obter o 8216ball rolling8217, eu quero começar com as médias móveis e, idealmente, terminar a série na previsão com os modelos ARIMA (AutoRegressive Integrated Moving Average). Meu objetivo é ter esse conteúdo 8216light8217 em teoria e matemática e, em vez disso, concentrar-se na aplicação no código. Eu escrevo isso tarde da noite, então sinta-se livre para me fazer ping, se eu tiver algum erro. Muitas vezes eu me refiro ao Y previsto como chapéu Y, se você não está ciente, na equação o símbolo do chapéu está localizado acima do previsão de Y. Previsão com a média móvel As médias móveis devem ser um ótimo lugar para começar todos os livros didáticos que comece com a mudança Médias para estabelecer as bases. As fórmulas são simples e divertidas. Equação 1: Equação de médias móveis O modelo de médias móveis calcula a média de cada observação nos períodos k. No meu código e resultados, vou usar uma média móvel de 12 períodos, portanto, k12. Y hat (t1) é o valor de previsão para o próximo período e Y (t) é o valor real no período t. Um período pode ser horas, dias, semanas, meses, ano, etc. Como o modelo é o mesmo independentemente, não vou especificar uma unidade. Yvalues ​​é um subconjunto de todos os valores reais de Y introduzidos no código. Defina meus 8216k8217 (períodos) iguais a 12, pois eu vou calcular uma média móvel de 12 períodos. O código itera sobre as observações (n), calcula a média para cada intervalo de 12 períodos (k12) e atribui o cálculo à lista yhat. No caso de você ter notado, yfull é a minha lista completa de valores de Y, onde yvalues ​​é um subconjunto que foi compensado por k. Mais sobre isso abaixo na seção 8216Offsetting Y Subset List8217. Lote Previsões reais e de previsão 1. 12 média móvel do período Medição de erros de previsão Eu tenho minha previsão, mas é bom. Visually, a previsão segue os valores reais bastante bem, mas como posso medir a qualidade dessa previsão e depois compará-la com as previsões Derivado usando diferentes métodos. Uma maneira de medir uma previsão é medindo os erros (a. k.a. residuals, Y real 8211 Y hat) Eu optei por incluir os seguintes métodos para medir erros de previsão nesta discussão. Mean Squared Error (MSE) que mede as médias dos erros quadrados (diferença de Y e Y hat). O MSE é relatado nas mesmas unidades que os valores estimados (Y), portanto, pode-se dizer que uma previsão está desligada em 821610,000 unidades8217. Esse erro pode ser visto como pequeno se os valores reais variarem em bilhões de unidades. O erro pode ser visto como grande se os valores reais apenas variarem nos 108217s de milhares. Um problema comum com o MSE é que ele pesa pesadamente grandes outliers inflando a medida de erro. O Root Mean Squared Error leva a raiz quadrada do MSE. RMSE representa o desvio padrão da amostra dos resíduos. O erro médio de porcentagem absoluta (MAPE) é um método alternativo que relata o erro como uma porcentagem. Em vez de dizer que a previsão está desligada por 8216x unidades8217, poderíamos dizer que uma previsão está desativada em 4. Eu freqüentemente uso mais de um método ao comparar as previsões, pois cada uma tem limitações, o que em algum momento pode resultar em medições espúrias por um ou dois métodos. Equação 2 amplificador 3: MSE e MAPE Equação 3: RMSE Previsão 1: Medições de erro MSE: 630,649.39 RMSE: 794.13 MAPE: 10.22 Deslocamento Y Lista de subconjuntos É interessante que a previsão acima (previsão 1) não 8216fit8217 os valores reais de forma mais efetiva 8211 É uma série de dados simples, espero que os resíduos sejam menores. Para calcular os valores do chapéu Y para o modelo de média móvel de 12 períodos, uso uma fórmula que move o tempo (t) 12 períodos à frente (veja a equação 1 acima). Foi assim que fui originalmente ensinado e tenho exemplos de livros didáticos na prateleira do escritório. Este código cria yfull a partir do arquivo de dados carregado e, em seguida, cria uma lista de subconjuntos começando 12 períodos. Porquê, porque usaremos o primeiro 12 período para dar início à nossa previsão média móvel. Os valores de previsão, no entanto, não representam os valores reais tanto quanto eu gostaria. Eles estão sob previsão ou sobre previsão. Outro método para mover a previsão média sugere iniciar a previsão no ponto médio de 8216k8217. Previsão 1: Dados usando o ponto intermediário de 8216k8217 Previsão 2: 12 período de média móvel Previsão 2: Medições de erro MSE: 7,350.78 RMSE: 85.74 MAPE: 0.86 Comparando as medidas de erro de previsão da previsão 1 com a previsão 2 fornece uma indicação de que o segundo método se adequa melhor Nossos dados. No entanto, há muitos conteúdos disponíveis nas Médias Movimentadas Centradas que darão detalhes completos de como calcular os valores do ponto médio para os períodos pares. Eu não sou essa fonte, estou apenas demonstrando como reduzir o atraso das médias alinha melhor nossos chapéus Y ao real e melhora as medidas de erro. O código é quase idêntico, exceto que a lista de subconjuntos (yvalues) é criada 6 períodos e pára 6 períodos curtos. A média dos dados a partir do ponto médio em diante reduziu a quantidade de previsão de superação como feita na previsão 1. Previsão 2: Dados quando as médias móveis são menos adequadas A previsão média móvel começa a realmente falhar quando a série de dados tem um componente cíclico ou sazonalidade. Abaixo está o mesmo código médio Python de 12 períodos em relação a uma série de dados cíclicos. Previsão de 3: 12 médias móveis em movimento Previsão 3: Medições de erro MSE: 5,386,003,002.91 RMSE: 73,389.39 MAPE: 48.79 O gráfico e a medida de erro calculada indicam que as médias móveis não são boas para esta série. Vou usar essa mesma série com outros modelos de previsão para demonstrar técnicas que fazem ciclos de picking nos dados.

No comments:

Post a Comment