Exponencial Móvel Médio Irregular


As médias móveis exponenciais para a série de tempo irregular. Na análise da série de tempo há frequentemente uma necessidade para alisar as funções que reagem rapidamente às mudanças no sinal. Na aplicação típica, você pode processar um sinal de entrada no tempo real, e quer computar tais coisas Como o valor médio recente, ou obter uma inclinação instantânea para ele Mas os sinais do mundo real são muitas vezes ruidosos Algumas amostras barulhentas fará com que o valor atual do sinal, ou a sua inclinação, variam amplamente. Moving Averages. The função de suavização mais simples é uma janela Média móvel Como as amostras vêm em você tomar uma média dos mais recentes valores de N Isto vai suavizar picos, mas introduz um atraso ou latência Sua média será sempre atrasada pela largura de sua média móvel. O exemplo acima é relativamente caro para calcular Para cada amostra você tem que iterar sobre o tamanho inteiro da janela Mas há maneiras mais baratas manter a soma de todas as amostras na janela em um buffer, e ajustar a soma como novas amostras com E in. Outro tipo de média móvel é a média móvel ponderada que pondera para cada posição na janela de amostra Antes de calcular a média você multiplica cada amostra pelo peso daquela posição de janela Tecnicamente isso é chamado de convolução. Uma função de ponderação típica aplica uma curva de sino Para a janela de amostra Isto dá um sinal que está mais sintonizado para o centro da janela, e ainda um pouco tolerante de amostras barulhentas Na análise financeira que muitas vezes usam uma função de ponderação que as amostras mais recentes valores mais, para dar uma média móvel que acompanha mais de perto Amostras recentes amostras mais antigas são dadas progressivamente menos peso Isso minimiza um pouco os efeitos da latência, enquanto ainda dando razoavelmente boa suavização. Com uma média ponderada, você sempre tem que iterar sobre o tamanho da janela inteira para cada amostra a menos que você pode restringir os pesos permitidos para Determinadas funções. A média móvel exponencial. Um outro tipo de média é a média móvel exponencial, ou EMA Isto é frequentemente u Onde a latência é crítica, como em análise financeira em tempo real. Nesta média, os pesos diminuem exponencialmente. Cada amostra é avaliada em alguns por cento menor do que a próxima amostra mais recente. Com essa restrição, você pode calcular a média móvel de forma muito eficiente. Constante que descreve como os pesos das janelas diminuem ao longo do tempo Por exemplo, se cada amostra foi ponderada em 80 do valor da amostra anterior, você deve definir alfa 0 2 O alfa menor torna-se mais a sua média móvel é por exemplo torna-se mais suave, Mas menos reativo a novas amostras. Os pesos para um EMA com alfa 0 20. Como você pode ver, para cada nova amostra você só precisa de média com o valor da média anterior So computação é muito muito rápido. Em teoria todos os anteriores Amostras contribuem para a média atual, mas sua contribuição torna-se exponencialmente menor ao longo do tempo. Esta é uma técnica muito poderosa, e provavelmente o melhor se você quiser obter uma média móvel que responde qui Ckly para novas amostras, tem boas propriedades de suavização e é rápido para computar. O código é trivial. EMA para Irregular Time Series. O padrão EMA é bom quando o sinal é amostrado em intervalos de tempo regular Mas e se suas amostras vêm em intervalos irregulares. Imagine um sinal contínuo que é amostrado em intervalos irregulares Esta é a situação usual na análise financeira Em teoria, há uma função contínua para o valor de qualquer instrumento financeiro, mas você só pode provar esse sinal sempre que alguém realmente executa um comércio Assim, seu fluxo de dados Consiste em um valor, mais o tempo em que ele foi observado. Uma maneira de lidar com isso é converter o sinal irregular para um sinal regular, interpolando entre observações, e reamostragem. Mas isso perde dados e re-introduz latência. É possível computar um EMA para uma série de tempo irregular diretamente. Nesta função, você passa a amostra atual de seu sinal, ea amostra anterior, ea quantidade de tempo decorrido betw Een os dois eo valor anterior retornado por esta função. Então o quão bem este trabalho para demonstrar I ve gerou uma onda senoidal, em seguida, amostrados em intervalos irregulares, e introduziu cerca de 20 ruído que é o sinal irá variar aleatoriamente - 20 de O sinal de seno verdadeiro original. Como bem a média móvel exponencial irregular recuperar o sinal. A linha vermelha é a onda sinusoidal original amostrada em intervalos irregulares A linha azul é o sinal com o ruído adicionado A linha azul é o único sinal que a EMA vê A linha verde é o EMA suavizado Você pode ver que recupera o sinal muito bem Um pouco vacilante, mas o que você pode esperar de um sinal de fonte tão ruidosa. É deslocado cerca de 15 para a direita, porque a EMA introduz alguma latência O suave Você quer isso, mais latência você vai ver Mas a partir deste você pode, por exemplo, calcular uma inclinação instantânea para um sinal ruidoso irregular. O que você pode fazer com que Hmm. I têm um valor contínuo para o qual eu gostaria de calcular uma expo Normalmente, eu apenas usaria a fórmula padrão para isso. Onde S n é a nova média, é o alfa, Y é a amostra, e S n-1 é a média anterior. Infelizmente, devido a várias questões não Ter um tempo de amostragem consistente que eu posso saber que posso provar no máximo, por exemplo, uma vez por milissegundo, mas devido a fatores fora do meu controle, eu não consigo tomar uma amostra por vários milissegundos de cada vez. Um caso mais comum , No entanto, é que eu amostra simples um pouco cedo ou tarde, em vez de amostragem em 0, 1 e 2 ms I amostra em 0, 0 9 e 2 1 ms Eu antecipo que, independentemente dos atrasos, a minha freqüência de amostragem será muito, Muito acima do limite de Nyquist, e assim eu não preciso me preocupar com aliasing. Eu acho que eu posso lidar com isso de uma forma mais ou menos razoável, variando o alfa adequadamente, com base no período de tempo desde a última amostra. Do meu raciocínio de que isto irá funcionar é que o EMA interpola linearmente entre o ponto de dados anterior eo atual If Consideramos calcular um EMA da seguinte lista de amostras a intervalos t 0,1,2,3,4 Devemos obter o mesmo resultado se usarmos o intervalo 2t, onde os inputs se tornam 0,2,4, right Se a EMA tivesse Assumiu que, em t 2, o valor tinha sido 2 desde t 0 que seria o mesmo que o cálculo do intervalo t calculando em 0,2,2,4,4, o que não está fazendo Ou faz sentido algum. Can Alguém me diga como variar o alfa adequadamente Por favor, mostre seu trabalho Eu e mostrar-me a matemática que prova que seu método realmente está fazendo a coisa certa. Perguntou Jun 21 09 às 13 05. Você não deve ter o mesmo EMA para diferentes entradas Pense De EMA como um filtro, a amostragem em 2t é equivalente a uma amostragem para baixo, eo filtro vai dar uma saída diferente. Isso me parece claro, pois 0,2,4 contém componentes de freqüência mais alta do que 0,1,2,3,4 A menos que A questão é, como faço para alterar o filtro sobre a voar para torná-lo dar a mesma saída Talvez eu estou faltando algo freespace Jun 21 09 em 15 52.But a entrada não é diff É apenas 0,, 2, 4 em intervalos t, onde o indica que a amostra é ignorada Curt Sampson Jun 21 09 at 23 45. Esta resposta baseada em A minha boa compreensão dos filtros passa-baixa exponencial média móvel é realmente apenas um filtro de passa-baixo de um único pólo, mas a minha compreensão obscuros do que você está procurando Eu acho que o seguinte é o que você want. First, você pode simplificar a sua equação um pouco Parece mais complicado, mas é mais fácil no código eu vou usar Y para a saída e X para a entrada em vez de S para a saída e Y para a entrada, como você tem feito. Em segundo lugar, o valor de aqui é igual a 1-e-t Onde t é o tempo entre as amostras, e é a constante de tempo do filtro passa-baixa Eu digo igual em citações porque isso funciona bem quando t é pequeno em comparação com 1 e 1-e-tt Mas não muito pequeno você vai correr em Questões de quantização e, a menos que você recorra a algumas técnicas exóticas que você geralmente precisa de um extra N bits de resolução em seu estado variável S, wh Ere N - log 2 Para valores maiores de t o efeito de filtragem começa a desaparecer, até chegar ao ponto onde está perto de 1 e você está basicamente apenas atribuindo a entrada para a saída. Isso deve funcionar corretamente com valores variáveis ​​de t Variação de t não é muito importante, desde que alfa é pequena, caso contrário, você vai correr em algumas coisas Nyquist bastante estranho aliasing etc, 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, Precalculate 1, e considere tentar aproximar a fórmula para. Se você realmente quer saber como derivar a formula. then considerar sua equação diferencial source. which, quando X é uma função de etapa unitária, tem a solução Y 1 - e - t Para valores pequenos de t, a derivada pode ser aproximada por Y t, resultando. E a extrapolação de 1-e-t vem de tentar combinar o comportamento com o caso de função de etapa unitária. Você poderia por favor elaborar sobre a tentativa de igualar Acima da parte do comportamento que eu compreendo T e sua solução de tempo contínuo Y 1 - exp - t e sua generalização para uma função escalonada 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 Rhys Ulerich May 4 13 at 22 34. Esta não é uma resposta completa, mas pode ser o começo de um É tão longe quanto eu tenho com isso em uma hora ou assim de jogar estou postando-lo como um exemplo do que eu estou procurando, e talvez uma inspiração Para outros que trabalham no problema. Começo com S 0, que é a média resultante da média anterior S -1 ea amostra Y 0 tomada em t 0 t 1 - t 0 é o meu intervalo de amostra e é ajustada para o que é apropriado para Que o intervalo de amostra eo período sobre o qual eu desejo a média. I considerou o que acontece se eu perder a amostra em t 1 e em vez disso tem que se contentar com a amostra Y 2 tomada em t 2 Bem, podemos começar por expandir a equação para Ver o que teria acontecido se tivéssemos tido Y 1.I notar que a série parece estender-se infinitamente desta forma, Porque podemos substituir o S n no lado direito indefinidamente. Ok, então não é realmente um polinômio bobo mim, mas se multiplicarmos o termo inicial por um, então vemos um pattern. Hm é uma série exponencial Quelle Surpresa Imagine que saindo da equação para uma média móvel exponencial. Então, de qualquer maneira, tenho essa coisa x 0 x 1 x 2 x 3 indo, e eu tenho certeza que estou cheirando e ou um logaritmo natural chutando por aqui, mas eu posso T lembrar onde eu estava indo em seguida antes de eu ficar 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 tomadas em t 0 0ms t 1 0 9ms e t 2 2 1ms, mas sua escolha é baseada em intervalos de 1 ms, e, portanto, você quer um ajustado localmente n a prova de correção da escolha significaria conhecer os valores de amostra em t 1ms e t 2ms. This leva À pergunta Você pode interpolar seus dados resonably para ter suposições sanas de que valores in-between puderam ter sido Ou c E você mesmo interpola a média em si. Se nenhum destes é possível, então, tanto quanto eu vejo, a escolha lógica de um valor intermediário Y t é a média calculada mais recentemente, ou seja, Y t S n onde n é maxmial tal Que tn t. Esta escolha tem uma consequência simples Deixar sozinho, não importa qual a diferença de tempo era. Se, por outro lado, é possível interpolar seus valores, então isso lhe dará averagable amostras de intervalo constante Por último, se ele S mesmo possível interpolar a própria média, que tornaria a pergunta sem sentido. Eu acho que posso interpolar meus dados, dado que eu estou amostragem em intervalos discretos, eu Já estou fazendo isso com um padrão EMA Anyway, suponha que eu preciso de uma prova que mostra que funciona bem como um padrão EMA, que também tem irá produzir um resultado incorreto se os valores não estão mudando muito bem entre os períodos de amostra Curt Sampson 21 de junho 09 às 15 21. Mas isso é o que eu estou dizendo que eu Se você considerar a EMA uma interpolação de seus valores, você está feito se você deixar alfa como é porque inserir a média mais recente como Y não muda a média Se você diz que você precisa de algo que funciona, bem como um padrão EMA - O que há de 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á no melhor arbitrário balpha Jun 21 09 em 15 31.I deixaria o valor alfa sozinho, e preencher os dados em falta. Como você não sabe o que acontece durante o tempo em que você não pode amostra, 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ê tem uma nova amostra, preencher Nos valores em falta e recompute o EMA. O que eu estou tentando obter é que você tem uma entrada xn que tem buracos Não há nenhuma maneira de contornar o fato de que você está faltando dados Então você pode usar uma espera de ordem zero, ou definir Para zero, ou algum tipo de interpolação entre xn e x N M onde M é o número de amostras em falta e n o início do intervalo Possivelmente até mesmo usando valores antes de n. answered Jun 21 09 em 13 35.Desde gastar uma hora ou assim mucking sobre um pouco com a matemática para isso, eu acho Que simplesmente variando o alfa vai realmente me dar a interpolação adequada entre os dois pontos que você fala, mas de uma maneira muito mais simples Além disso, eu acho que variando o alfa também adequadamente lidar com amostras tomadas entre os intervalos de amostragem padrão Em outras palavras , Eu estou procurando o que você descreveu, mas tentando usar matemática para descobrir a maneira simples de fazê-lo Curt Sampson 21 de junho 09 às 14 07.I don t acho que existe uma besta como a interpolação adequada Você simplesmente don t sabe o que Aconteceu no tempo que você não está amostragem Boa e má interpolação implica algum conhecimento do que você perdeu, uma vez que você precisa medir contra isso para julgar se uma interpolação é bom ou ruim Embora isso seja dito, você pode colocar restrições, ou seja, com aceleração máxima, Rapidez , Etc Eu acho que se você sabe como modelar os dados faltantes, então você seria apenas modelo os dados em falta, em seguida, aplicar o algoritmo EMA com nenhuma mudança, ao invés de mudar alfa Just my 2c freespace Jun 21 09 at 14 17.This is Exatamente o que eu estava começando em minha edição para a questão há 15 minutos Você simplesmente don t saber o que aconteceu no tempo que você não está amostragem, mas isso é verdade mesmo se você amostra em cada intervalo designado Assim, a minha contemplação Nyquist, enquanto você Sei que a forma de onda não muda de direção mais do que cada par de amostras, o intervalo de amostra real não deve importar e deve ser capaz de variar. A equação de EMA me parece exatamente para calcular como se a forma de onda mudasse linearmente do último valor de amostra para O atual Curt Sampson 21 de junho 09 às 14 26.I don t pensar que é completamente verdadeiro Nyquist s teorema exige requer mínimo de 2 amostras por período para ser capaz de identificar exclusivamente o sinal Se você don t fazer isso, você começa aliasing It Seria o mesmo que sa Mpling como fs1 por um tempo, então fs2, então de volta a fs1, e você começa aliasing nos dados quando você amostra com fs2 se fs2 está abaixo do limite de Nyquist Eu também devo confessar Eu não entendo o que você quer dizer por mudanças de forma de onda linearmente Última amostra para um atual Você poderia explicar Cheers, Steve freespace Jun 21 09 em 14 36.Isto é semelhante a um problema aberto na minha lista de tudo Tenho um esquema funcionou em certa medida, mas não tem trabalho matemático para apoiar esta sugestão Yet. Update sumário Gostaria de manter o alinhamento factor alfa independente do fator de compensação que eu me refiro como beta aqui Jason resposta excelente s já aceito aqui funciona muito bem para mim. Se você também pode medir o tempo desde a última amostra foi tomada em arredondado Múltiplos do seu tempo de amostragem constante - de modo que 7 8 ms desde a última amostra seria de 8 unidades, que poderia ser usado para aplicar o alisamento várias vezes Aplicar a fórmula 8 vezes neste caso Você efetivamente fez um alisamento mais tendenciosa S o valor atual. Para obter um melhor alisamento, precisamos ajustar o alfa ao aplicar a fórmula 8 vezes no caso anterior. Qual será esta aproximação de suavização miss. It já perdeu 7 amostras no exemplo acima. Este foi aproximado em Passo 1 com uma aplainada re-aplicação do valor atual um adicional de 7 vezes. Se definimos um fator de aproximação beta que será aplicado juntamente com alfa como beta alfa em vez de apenas alfa, vamos estar assumindo que as 7 amostras perdidas estavam mudando Suavemente entre a amostra prévia e atual values. answered Jun 21 09 at 13 35. Eu pensei sobre isso, mas um pouco de mucking sobre com a matemática me levou ao ponto onde eu acredito que, ao invés de aplicar a fórmula oito vezes com O valor da amostra, eu 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 iria lidar automaticamente com a questão de amostras de offset de exato vezes amostra Curt Sampson 21 jun 0 9 em 13 47. A única aplicação é fina O que eu não tenho certeza sobre ainda é quão boa é a aproximação dos 7 valores em falta Se o movimento contínuo faz o valor jitter muito ao longo dos 8 milissegundos, as aproximações podem ser bastante fora do Realidade Mas, então, se você está amostragem em 1ms resolução mais alta, excluindo as amostras atrasadas você já percebeu que o jitter dentro de 1ms não é relevante Será que este trabalho de raciocínio para você Eu ainda estou tentando me convencer nik 21 de junho 09 às 14 08.Right That É o fator beta da minha descrição Um fator beta seria calculado com base no intervalo de diferença e as amostras atuais e anteriores O novo alfa será alfa beta, mas ele será usado apenas para essa amostra Enquanto você parece estar movendo o alfa no Fórmula, eu tendem para o fator de alisamento alfa constante e um beta independentemente calculado um fator de ajuste que compensa as amostras perdidas agora nik Jun 21 09 em 15 23.Exponencial Filter. This página descreve exponencial fi O filtro mais simples é o filtro exponencial Tem apenas um parâmetro de sintonia, que é o filtro mais simples e mais popular. Que o intervalo de amostra Requer o armazenamento de apenas uma variável - a saída anterior É um filtro auto-regressivo IIR - os efeitos de uma mudança de entrada decaem exponencialmente até que os limites de exibições ou computador aritmética escondê-lo. Em várias disciplinas, o uso deste Filtro é também referido como suavização exponencial Em algumas disciplinas, como a análise de investimento, o filtro exponencial é chamado de EWMA Exponencialmente Ponderada Média Móvel, ou apenas Exponential Moving Average EMA Isso abusa a tradicional ARMA terminologia média móvel da análise de séries temporais, uma vez que não há Nenhum histórico de entrada que é usado - apenas a entrada atual. É o equivalente em tempo discreto do retardo de primeira ordem comumente usado em Modelagem analógica de sistemas de controle em tempo contínuo Em circuitos elétricos, um filtro de filtro RC com um resistor e um capacitor é um atraso de primeira ordem. Ao enfatizar a analogia com circuitos analógicos, o parâmetro de ajuste único é a constante de tempo, Na verdade, os valores nos tempos de amostra discretos correspondem exatamente ao intervalo de tempo contínuo equivalente com a mesma constante de tempo. A relação entre a implementação digital e a constante de tempo é mostrada nas equações abaixo. Equações de filtro exponencial e inicialização. O filtro exponencial é uma combinação ponderada da saída de estimativa anterior com os dados de entrada mais recentes, com a soma dos pesos iguais a 1, de modo que a saída corresponde à entrada no estado estacionário. Seguindo a notação de filtro já introduzida. ykay k-1 1 ax K. onde xk é a entrada bruta no passo de tempo kyk é a saída filtrada na etapa de tempo ka é uma constante entre 0 e 1, normalmente entre 0 8 e 0 99 A-1 ou a é às vezes chamada de constante de suavização. Para sistemas com um passo de tempo fixo T entre amostras, a constante a é calculada e armazenada por conveniência somente quando o desenvolvedor de aplicação especifica um novo valor da constante de tempo desejada. A constante de tempo do filtro, nas mesmas unidades de tempo que T. Para sistemas com amostragem de dados em intervalos irregulares, a função exponencial acima deve ser usada com cada passo de tempo, onde T é o tempo desde a amostra anterior. Inicializado para coincidir com a primeira entrada. Quando a constante de tempo se aproxima de 0, a vai para zero, então não há filtragem a saída é igual à nova entrada Como a constante de tempo fica muito grande, a aproxima-se 1, de modo que a nova entrada é quase ignorada muito Pesado. A equação de filtro acima pode ser rearranjada no seguinte equivalente predictor-corretor. Esta forma torna mais evidente que a saída de estimativa variável do filtro é prevista como inalterada a partir da estimativa anterior y K-1 mais um termo de correção baseado na inovação inesperada - a diferença entre a nova entrada xk ea predição y k-1 Esta forma é também o resultado de derivar o filtro exponencial como um caso especial simples de um filtro de Kalman que é A solução ideal para um problema de estimação com um determinado conjunto de pressupostos. Step resposta. Uma maneira de visualizar a operação do filtro exponencial é traçar a sua resposta ao longo do tempo para uma entrada passo Isso é, começando com o filtro de entrada e saída em 0 , O valor de entrada é repentinamente alterado para 1 Os valores resultantes são plotados abaixo. No gráfico acima, o tempo é dividido pela constante de tempo do filtro tau para que você possa mais facilmente prever os resultados para qualquer período de tempo, para qualquer valor do filtro Constante de tempo Após um tempo igual à constante de tempo, a saída do filtro sobe para 63 21 do seu valor final Após um tempo igual a 2 constantes de tempo, o valor sobe para 86 47 de seu valor final As saídas após tempos iguais a 3,4 , E 5 cons vez Como o filtro é linear, isso significa que essas porcentagens podem ser usadas para qualquer magnitude da mudança de passo, não apenas para o valor de 1 usado aqui. A resposta passo em teoria leva um tempo infinito, a partir de um ponto de vista prático, pense no filtro exponencial como 98 a 99 feito respondendo após um tempo igual a 4 a 5 constantes de tempo de filtro. Variações no filtro exponencial. O filtro exponencial chamado filtro exponencial não-linear Weber, 1980 pretendeu filtrar o ruído fortemente dentro de uma determinada amplitude típica, mas depois responder mais rapidamente a maiores mudanças. Copyright 2010 - 2013, Greg Stanley. Compartilhe esta página.

Comments