Thursday, 18 January 2018

Exponencial moving average alpha


Eu tenho uma série de tempo com uma média móvel exponencial e eu quero calcular um retorno em movimento do EMA nos últimos períodos de m (algo parecido com um retorno em movimento suavizado). Y (t) é o valor da série temporal no período de tempo t S (t) é o valor de uma EMA de Y no período de tempo t Agora R (t) é o retorno do EMA nos últimos períodos de tempo: My A questão é: quantos períodos de tempo o cálculo EMA deve usar para um dado m. Precisamente, se o EMA for calculado usando S (t) alfa Y (t) (1-alfa) S (t-1) e alfa é definido por 2 (N1), então, como deve N depender de m Im assumindo que N deve ser suficientemente inferior a m para evitar a sobreposição de valores Y que são utilizados no cálculo de S (t) e S (tm). Qualquer teorias ou práticas recomendadas sobre este Este é realmente um problema bastante complexo. Há algumas direções para as quais você pode procurar. Uma maneira, normalmente recomendada na literatura de previsão, é otimizar o erro de previsão. Se você tem uma aplicação específica em mente, você pode definir sua própria função de custo para otimizar. Uma visão diferente sobre isso é olhar para o EWMA como um modelo de espaço de estado, então o problema é equivalente a configurar um filtro de Kalman apropriado que você pode fazer com o MLE, veja, por exemplo, a análise da série de tempo por métodos de espaço do estado Existem outras direções Você pode ir, mas acho que isso lhe dará uma idéia. Forecasting by Smoothing Techniques Este site faz parte dos objetos de aprendizado de E-Labs JavaScript para a tomada de decisões. Outro JavaScript nesta série é categorizado em diferentes áreas de aplicações na seção MENU nesta página. Uma série temporal é uma sequência de observações que são ordenadas a tempo. Inerente à coleta de dados obtidos ao longo do tempo é alguma forma de variação aleatória. Existem métodos para reduzir o cancelamento do efeito devido a variação aleatória. As técnicas amplamente utilizadas são o alisamento. Essas técnicas, quando aplicadas corretamente, revelam mais claramente as tendências subjacentes. Digite as séries temporais em ordem de linha em sequência, a partir do canto superior esquerdo e o (s) parâmetro (s), e clique no botão Calcular para obter uma previsão em um período de antecedência. As caixas em branco não estão incluídas nos cálculos, mas os zeros são. Ao inserir seus dados para mover de célula para célula na matriz de dados, use a tecla Tab, sem seta ou digite as chaves. Características das séries temporais, que podem ser reveladas examinando seu gráfico. Com os valores previstos e o comportamento dos resíduos, modelagem de previsão de condições. Médias móveis: as médias médias classificam-se entre as técnicas mais populares para o pré-processamento de séries temporais. Eles são usados ​​para filtrar o ruído branco aleatório dos dados, para tornar as séries temporais mais suaves ou mesmo para enfatizar certos componentes informativos contidos nas séries temporais. Suavização exponencial: Este é um esquema muito popular para produzir uma série de tempo suavizada. Considerando que, nas Médias móveis, as observações passadas são ponderadas de forma igual, Suavização exponencial atribui pesos exponencialmente decrescentes à medida que a observação envelhece. Em outras palavras, as observações recentes recebem relativamente mais peso na previsão do que as observações mais antigas. O Suavizado Exponencial Duplo é melhor nas tendências de manuseio. O Triple Exponential Suavização é melhor no manuseio de tendências da parábola. Uma média móvel ponderada exponencialmente com uma constante de suavização a. Corresponde aproximadamente a uma média móvel simples de comprimento (isto é, período) n, onde a e n estão relacionados por: a 2 (n1) OR n (2 - a) a. Assim, por exemplo, uma média móvel ponderada exponencialmente com uma constante de suavização igual a 0,1 corresponderia aproximadamente a uma média móvel de 19 dias. E uma média móvel simples de 40 dias corresponderia aproximadamente a uma média móvel ponderada exponencialmente com uma constante de suavização igual a 0,04878. Holst Linear Exponential Suavização: Suponha que as séries temporais não sejam sazonais, mas que mostram a tendência de exibição. O método Holts estima tanto o nível atual como a atual tendência. Observe que a média móvel simples é um caso especial do alisamento exponencial, definindo o período da média móvel para a parte inteira de (2-Alpha) Alpha. Para a maioria dos dados de negócios, um parâmetro Alpha menor que 0.40 geralmente é efetivo. No entanto, pode-se realizar uma pesquisa em grade do espaço dos parâmetros, com 0,1 a 0,9, com incrementos de 0,1. Então, o melhor alfa tem o menor erro absoluto médio (erro MA). Como comparar vários métodos de suavização: embora existam indicadores numéricos para avaliar a precisão da técnica de previsão, a abordagem mais ampla é o uso de comparação visual de várias previsões para avaliar sua precisão e escolher entre os vários métodos de previsão. Nesta abordagem, é necessário traçar (usando, por exemplo, Excel), no mesmo gráfico, os valores originais de uma variável de séries temporais e os valores previstos de vários métodos de previsão diferentes, facilitando assim uma comparação visual. Você pode gostar de usar as previsões passadas por Smoothing Techniques JavaScript para obter os valores de previsão passados ​​com base em técnicas de suavização que usam apenas um único parâmetro. Os métodos Holt e Winters usam dois e três parâmetros, respectivamente, portanto, não é uma tarefa fácil selecionar os valores ideais ótimos, ou mesmo próximos, por testes e erros para os parâmetros. O alisamento exponencial único enfatiza a perspectiva de curto alcance, ele define o nível para a última observação e baseia-se na condição de que não há nenhuma tendência. A regressão linear, que se adapta a uma linha de mínimos quadrados aos dados históricos (ou dados históricos transformados), representa o longo alcance, que está condicionado à tendência básica. Holder linear exponencial suavização capta informações sobre a tendência recente. Os parâmetros no modelo Holts são níveis-parâmetro que devem ser diminuídos quando a quantidade de variação de dados é grande, e as tendências-parâmetro devem ser aumentadas se a direção recente da tendência é suportada pelos fatores causais. Previsão de curto prazo: observe que cada JavaScript nesta página fornece uma previsão de um passo a frente. Para obter uma previsão de duas etapas. Simplesmente adicione o valor previsto para o final de seus dados da série temporal e clique no mesmo botão Calcular. Você pode repetir este processo por algumas vezes para obter as previsões necessárias a curto prazo. Tenho um valor contínuo para o qual a Id gosta de calcular uma média móvel exponencial. Normalmente, Id apenas usa a fórmula padrão para isso: onde S n é a nova média, alfa é o alfa, Y é a amostra e S n-1 é a média anterior. Infelizmente, devido a várias questões, não tenho um tempo de amostra consistente. Eu posso saber que posso provar, no máximo, digamos, uma vez por milissegundo, mas devido a fatores fora do meu controle, talvez não consiga tirar uma amostra por vários milissegundos por vez. Um caso provavelmente mais comum, no entanto, é que eu amostras simples um pouco cedo ou tarde: em vez de amostragem a 0, 1 e 2 ms. Eu amostras em 0, 0.9 e 2.1 ms. Eu antecipo que, independentemente dos atrasos, minha freqüência de amostragem estará longe, muito acima do limite Nyquist, e, portanto, não preciso me preocupar com aliasing. Eu acho que posso lidar com isso de uma maneira mais ou menos razoável ao variar o alfa de forma apropriada, com base no período de tempo desde a última amostra. Parte do meu raciocínio que isso funcionará é que o EMA interpola linearmente entre o ponto de dados anterior e o atual. Se considerarmos o cálculo de uma EMA da seguinte lista de amostras em intervalos t: 0,1,2,3,4. Devemos obter o mesmo resultado se usarmos o intervalo 2t, onde as entradas se tornam 0,2,4, direito, se a EMA assumiu que, em t 2, o valor tinha sido 2 desde t 0. Isso seria o mesmo que o cálculo do intervalo t calculado em 0,2,2,4,4, o que não está fazendo. Ou isso faz sentido? Alguém pode me dizer como variar o alfa apropriadamente. Por favor, mostre seu trabalho. Isto é, Mostre-me a matemática que prova que seu método realmente está fazendo o que é certo. Perguntou Jun 21 09 às 13:05 Você não deve obter o mesmo EMA para diferentes entradas. Pense em EMA como um filtro, a amostragem em 2t é equivalente a amostragem descendente, e o filtro vai dar uma saída diferente. Isso é claro para mim, pois 0,2,4 contém componentes de freqüência mais alta que 0,1,2,3,4. A menos que a questão seja, como eu altero o filtro no tempo para fazer com que ele dê a mesma saída. Talvez eu esteja faltando algo ndash freespace 21 de junho 09 às 15:52 Mas a entrada não é diferente, ela é apenas amostrada com menos frequência. 0,2,4 em intervalos 2t é como 0,, 2,, 4 em intervalos t, onde o indica que a amostra é ignorada ndash Curt Sampson 21 de junho de 09 às 23:45 Esta resposta com base na minha boa compreensão de baixa passagem Filtros (a média móvel exponencial é realmente apenas um filtro de passagem simples de um único polo), mas a minha nebulosa compreensão do que você está procurando. Eu acho que o seguinte é o que você quer: primeiro, você pode simplificar sua equação um pouco (parece mais complicado, mas é mais fácil no código). Vou usar Y para saída e X para entrada (em vez de S para saída e Y para entrada, como você fez). Em segundo lugar, o valor de alpha aqui é igual a 1-e-Deltattau onde Deltat é o tempo entre amostras, e tau é a constante de tempo do filtro passa-baixa. Eu digo igual em citações porque isso funciona bem quando Deltattau é pequeno em comparação com 1, e alpha 1-e-Deltattau asymp Deltattau. (Mas não é muito pequeno: você terá problemas de quantificação e, a menos que você recorra a algumas técnicas exóticas, você geralmente precisa de N bits extras de resolução em sua variável de estado S, onde N - log 2 (alfa).) Para valores maiores de Deltattau O efeito de filtragem começa a desaparecer, até chegar ao ponto em que o alfa é próximo de 1 e você basicamente está apenas atribuindo a entrada para a saída. Isso deve funcionar corretamente com valores variáveis ​​de Deltat (a variação de Deltat não é muito importante, desde que o alfa seja pequeno, caso contrário, você irá encontrar alguns alianças de Nyquist raras, e se você estiver trabalhando em um processador onde a multiplicação É mais barato do que a divisão, ou questões de ponto fixo são importantes, precalcular omega 1tau e considerar tentar aproximar a fórmula para alfa. Se você realmente deseja saber como derivar a fórmula alfa 1-e-Deltattau, considere sua fonte de equação diferencial: qual, quando X é uma função de etapa de unidade, tem a solução Y 1 - e - ttau. Para pequenos valores de Deltat, a derivada pode ser aproximada por DeltaYDeltat, produzindo Y tau DeltaYDeltat X DeltaY (XY) (Deltattau) alfa (XY) e a extrapolação de alfa 1-e-Deltattau vem de tentar combinar o comportamento com o Caso da função do passo da unidade. Você poderia elaborar o quottrying para combinar a parte do comportamento. Compreendo sua solução de tempo contínuo Y 1 - exp (-t47) e sua generalização para uma função escalonada com magnitude x e condição inicial y (0). Mas eu não estou vendo como juntar essas idéias para alcançar seu resultado. Ndash Rhys Ulerich 4 de maio 13 às 22:34 Esta não é uma resposta completa, mas pode ser o começo de uma. É tão longe quanto eu consegui com isso em uma hora ou mais de jogar Im publicando isso como um exemplo do que eu procuro, e talvez seja uma inspiração para outros que trabalham no problema. Eu começo com S 0. Que é a média resultante da média anterior S -1 e da amostra Y 0 tomada em t 0. (T 1 - t 0) é o meu intervalo de amostra e o alfa está configurado para o que for apropriado para esse intervalo de amostra e o período durante o qual eu desejaria a média. Eu considerei o que acontece se eu perder a amostra em t 1 e, em vez disso, tenho que fazer com a amostra Y 2 tomada em t 2. Bem, podemos começar expandindo a equação para ver o que aconteceria se tivéssemos cometido 1: percebo que a série parece se estender infinitamente dessa maneira, porque podemos substituir o S n no lado direito indefinidamente: Ok , Então não é realmente um polinômio (eu tolo), mas se multiplicarmos o termo inicial por um, então vemos um padrão: Hm: é uma série exponencial. Surpresa Quelle Imagine que sai da equação para uma média móvel exponencial Então, de qualquer forma, eu tenho esse x 0 x 1 x 2 x 3. A coisa está indo, e estou seguro de que eu estou cheirando e ou um logaritmo natural dando uma volta por aqui, mas não consigo lembrar de onde eu estava indo antes que eu estivesse sem tempo. Qualquer resposta a esta pergunta, ou qualquer prova de correção de tal resposta, depende muito dos dados que você está medindo. Se suas amostras foram tiradas em t 0 0ms. T 1 0.9ms e t 2 2.1ms. Mas sua escolha de alfa é baseada em intervalos de 1 ms, e, portanto, você quer uma alfa n localmente ajustada. A prova de correção da escolha significaria conhecer os valores da amostra em t1ms e t2ms. Isso leva à questão: você pode interpor seus dados de forma razoável para ter suposições sãs do que os valores intermediários podem ter sido ou você pode mesmo interpolar a média em si. Se nenhum desses é possível, então, até onde eu vejo, a lógica A escolha de um valor intermediário Y (t) é a média calculada mais recentemente. Isto é, Y (t) asymp S n onde n é maxmial tal que t n ltt. Esta escolha tem uma conseqüência simples: deixe o alfa sozinho, independentemente da diferença horária. Se, por outro lado, é possível interpolar seus valores, então isso lhe dará amostras intermediárias de intervalo constante. Por último, se é possível interpolar a própria média, isso tornaria a questão sem sentido. Respondeu Jun 21 09 às 15:08 balpha 9830 26.8k 9679 10 9679 85 9679 117 Eu pensaria que eu posso interpolar meus dados: dado que I39m amostragem em intervalos discretos, já estou fazendo isso com uma EMA padrão, suponha que eu precise Um quotproofquot que mostra que ele funciona, bem como um EMA padrão, que também produzirá um resultado incorreto se os valores não estiverem mudando bastante devagar entre os períodos de amostra. Ndash Curt Sampson 21 de junho 09 às 15:21 Mas isso é o que eu digo: se você considerar a EMA uma interpolação de seus valores, você será feito se você deixar o alfa como é (porque inserir a média mais recente como Y não altera a média) . Se você diz que você precisa de algo que funciona bem como um EMAquot padrão - o que está errado com o original A menos que você tenha mais informações sobre os dados que você está medindo, quaisquer ajustes locais para alfa serão, na melhor das hipóteses, arbitrários. Ndash balpha 9830 21 jun 09 às 15:31 Eu deixaria o valor alfa sozinho e preencheria os dados faltantes. Como você não sabe o que acontece durante o tempo em que você não pode mostrar, você pode preencher essas amostras com 0s ou manter o valor anterior estável e usar esses valores para o EMA. Ou alguma interpolação para trás, uma vez que você tenha uma nova amostra, preencha os valores em falta e recomponha a EMA. O que eu estou tentando conseguir é que você tem uma entrada xn que tem buracos. Não há como contornar o fato de você estar faltando dados. Então, você pode usar uma retenção de ordem zero, ou configurá-la para zero, ou algum tipo de interpolação entre xn e xnM. Onde M é o número de amostras em falta e n o início da lacuna. Possivelmente, mesmo usando valores antes de n. Respondeu 21 de junho de 09 às 13:35 De passar uma hora ou mais por um pouco com as matemáticas para isso, acho que simplesmente variar o alfa realmente me dará a interpolação adequada entre os dois pontos de que você fala, mas em um Muito mais simples. Além disso, acho que a variação do alfa também tratará de forma adequada as amostras colhidas entre os intervalos de amostragem padrão. Em outras palavras, estou procurando o que você descreveu, mas tentando usar matemática para descobrir a maneira simples de fazê-lo. Ndash Curt Sampson 21 de junho 09 às 14:07 Eu não acho que há uma besta tão boa quanto a interpolação quotproper. Você simplesmente não sabe o que aconteceu no momento em que você não está amostragem. A interpolação boa e ruim implica algum conhecimento do que você perdeu, já que você precisa medir contra isso para julgar se uma interpolação é boa ou ruim. Embora seja dito, você pode colocar restrições, ou seja, com aceleração máxima, velocidade, etc. Eu acho que se você sabe como modelar os dados que faltam, então você apenas modelaria os dados ausentes, então aplique o algoritmo EMA sem mudança, em vez disso Do que mudar alfa. Apenas meu 2c :) ndash freespace 21 de junho 09 às 14:17 Isto é exatamente o que eu estava recebendo na minha edição para a pergunta há 15 minutos: você simplesmente não sabe o que aconteceu no momento em que você não está amostragem, mas isso é verdade Mesmo se você provar em cada intervalo designado. Assim, a minha contemplação de Nyquist: enquanto você sabe que a forma de onda não altera as direções mais do que todas as amostras, o intervalo de amostra real não deve ser importante e pode variar. A equação EMA parece-me exatamente calcular como se a forma de onda mudasse linearmente do último valor de amostra para o atual. Ndash Curt Sampson 21 de junho 09 às 14:26 Eu não acho que isso seja verdade. O teorema de Nyquist exige um mínimo de 2 amostras por período para poder identificar o sinal de forma exclusiva. Se você não fizer isso, você obtém aliasing. Seria o mesmo que a amostragem como fs1 por um tempo, então fs2, então voltar para fs1, e você obtém aliasing nos dados quando você amostra com fs2 se fs2 estiver abaixo do limite de Nyquist. Eu também devo confessar que não entendo o que você quer dizer com quotwaveform mudanças linearmente da última amostra para onequot atual. Você poderia explicar Cheers, Steve? Ndash freespace Jun 21 09 às 14:36 ​​Isso é semelhante a um problema aberto na minha lista de tarefas. Eu tenho um esquema elaborado até certo ponto, mas não tenho trabalho matemático para apoiar esta sugestão ainda. Atualização do sumário do amplificador: Gostaria de manter o fator de suavização (alfa) independente do fator de compensação (que eu me refiro como beta aqui). A excelente resposta já aceita aqui é excelente para mim. Se você também pode medir o tempo desde a última amostra (em múltiplos arredondados de seu tempo de amostragem constante - então 7.8 ms uma vez que a última amostra seria de 8 unidades), isso poderia ser usado para aplicar várias vezes o alisamento. Aplique a fórmula 8 vezes neste caso. Você efetivamente fez um alisamento mais inclinado para o valor atual. Para obter um melhor alisamento, precisamos ajustar o alfa ao aplicar a fórmula 8 vezes no caso anterior. O que essa aproximação de suavização perderá. Já faltou 7 amostras no exemplo acima. Isso foi aproximado no passo 1 com uma re-aplicação achatada do valor atual 7 vezes adicionais. Se definimos um fator de aproximação beta que será aplicado junto com o alfa (Como alfabeta em vez de apenas alfa), estaremos assumindo que as 7 amostras perdidas estavam mudando suavemente entre os valores de amostra anteriores e atuais. Respondeu 21 de junho 09 às 13:35 Eu pensei sobre isso, mas um pouco de amaldiçoamento com a matemática me levou ao ponto em que eu acredito que, ao invés de aplicar a fórmula oito vezes com o valor da amostra, posso fazer um cálculo De um novo alfa que me permitirá aplicar a fórmula uma vez e me dar o mesmo resultado. Além disso, isso trataria automaticamente a questão de amostras compensadas de tempos de amostra exatos. Ndash Curt Sampson 21 de junho 09 às 13:47 O único aplicativo está bem. O que ainda não tenho certeza é o quanto é boa a aproximação dos 7 valores em falta. Se o movimento contínuo faz com que o valor flui muito nos 8 milésimos de segundo, as aproximações podem estar bastante fora da realidade. Mas, então, se você estiver amostragem a 1 ms (resolução mais alta, excluindo as amostras atrasadas), você já descobriu que o jitter dentro de 1 ms não é relevante. Esse raciocínio funciona para você (eu ainda estou tentando me convencer). Ndash nik Jun 21 09 às 14:08 Direita. Esse é o fator beta da minha descrição. Um fator beta seria computado com base no intervalo de diferença e nas amostras atual e anterior. O novo alfa será (alfabeta), mas será usado apenas para essa amostra. Enquanto você parece ser o alfa na fórmula, eu tende para o alfa constante (fator de suavização) e um beta calculado de forma independente (um fator de sintonia) que compensa amostras perdidas agora. Ndash nik Jun 21 09 às 15:23

No comments:

Post a Comment