Monday 31 July 2017

Exponential Moving Average Missing Data


Eu tenho um valor contínuo para o qual eu gostaria de calcular uma média móvel exponencial. Normalmente, apenas use a fórmula padrão para isto: 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 que eu não tenho um tempo de amostragem consistente. Eu posso saber que posso provar no máximo, digamos, uma vez por milissegundo, mas devido a fatores fora do meu controle, eu não posso ser capaz de tomar uma amostra por vários milissegundos de cada vez. Um caso provável mais comum, no entanto, é que eu simples amostra um pouco cedo ou tarde: em vez de amostragem em 0, 1 e 2 ms. I amostra a 0, 0,9 e 2,1 ms. Eu antecipo que, independentemente dos atrasos, a minha frequência de amostragem será muito, muito acima do limite de Nyquist, e assim eu não preciso se 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. Parte do meu raciocínio de que isso irá funcionar é que o EMA interpola linearmente entre o ponto de dados anterior eo atual. Se considerarmos o cálculo de 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 o EMA tivesse assumido 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 isso faz sentido em tudo Alguém pode me dizer como variar o alfa adequadamente Por favor, mostre seu trabalho. I. e. Mostre-me a matemática que prova que seu método realmente está fazendo a coisa certa. Perguntou Jun 21 09 at 13:05 Você shouldn39t obter o mesmo EMA para entrada diferente. Pense em EMA como um filtro, amostragem em 2t é equivalente a amostragem para baixo, eo filtro vai dar uma saída diferente. Isto é claro para mim já que 0,2,4 contém componentes de freqüência mais alta do que 0,1,2,3,4. A menos que a questão seja, como faço para alterar o filtro na mosca para torná-lo dar a mesma saída. Talvez eu estou faltando algo ndash freespace Jun 21 09 em 15:52 Mas a entrada não é diferente, it39s apenas amostrado menos frequentemente. 0,2,4 em intervalos 2t é como 0,, 2, 4 em intervalos t, onde o indica que a amostra é ignorada ndash Curt Sampson Jun 21 09 at 23:45 Esta resposta baseada na minha boa compreensão do low-pass Filtros (média móvel exponencial é realmente apenas um filtro singlepass pólo único), mas a minha compreensão obscuros do que você está procurando. Eu acho que o seguinte é o que você quer: Primeiro, você pode simplificar a sua equação um pouco (parece mais complicado, mas seu 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 alfa aqui é igual a 1-e-Delatattau, onde Deltat é o tempo entre as amostras, e tau é a constante de tempo do filtro passa-baixa. Digo igual entre aspas porque isso funciona bem quando Deltattau é pequeno em comparação com 1, e alfa 1-e-Delatattau asymp Deltattau. (Mas não é muito pequeno: você terá problemas de quantização e, a menos que você recorra a algumas técnicas exóticas, geralmente precisa de mais N bits de resolução na 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 está próximo de 1 e você basicamente está apenas atribuindo a entrada à saída. Isso deve funcionar corretamente com vários valores de Deltat (a variação de Deltat não é muito importante, desde que o alfa é pequeno, caso contrário, você vai correr em alguns problemas bastante estranho Nyquist 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 omega 1tau, e considerar tentar aproximar a fórmula para alfa. Se você realmente quer saber como derivar a fórmula alfa 1-e-Dtattattau, então considere sua fonte de equação diferencial: que, quando X é uma função de etapa unitária, tem a solução Y 1 - e - ttau. Para valores pequenos de Deltat, a derivada pode ser aproximada por DeltaYDeltat, produzindo Y tau DeltaYDeltat X DeltaY (XY) (Deltattau) alfa (XY) ea extrapolação de alfa 1-e - Detatatta vem da tentativa de igualar o comportamento com o Caso de função de etapa unitária. Você poderia por favor elaborar sobre o quottrying para combinar o behaviorquot parte Eu entendo sua solução de tempo contínuo Y 1 - exp (-t47) e sua generalização para uma função escalonada escalonada com magnitude x e condição inicial y (0). Mas não vejo como juntar essas idéias para alcançar seu resultado. Ndash Rhys Ulerich May 4 13 at 22:34 Esta não é uma resposta completa, mas pode ser o início de um. Seu até onde eu com isto em uma hora ou assim de jogar Im que afixa isto como um exemplo de que Im que procuram, e talvez uma inspiração a outro que trabalha no problema. 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 alfa é ajustado para o que é apropriado para esse intervalo de amostra eo período sobre o qual eu desejo a média. Eu considerei o que acontece se eu perder a amostra em t 1 e em vez disso ter que se contentar com a amostra Y 2 tomada em t 2. Bem, podemos começar expandindo a equação para ver o que teria acontecido se tivéssemos tido Y 1: Observo que a série parece estender-se infinitamente desta maneira, porque podemos substituir o S n no lado direito indefinidamente: Ok , Então não é realmente um polinômio (bobo-me), mas se multiplicarmos o termo inicial por um, então vemos um padrão: 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, eu tenho esse x 0 x 1 x 2 x 3. Coisa que vai, e Im certeza estou cheirando e ou um logaritmo natural chutando por aqui, mas eu não consigo lembrar onde eu estava indo em seguida antes de eu acabar o 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 coletadas em t 0 0ms. T 1 0,9ms e t2 2,1ms. Mas sua escolha de alfa é baseada em intervalos de 1 ms e, portanto, você quer um alfa n ajustado localmente. A prova de correção da escolha significaria conhecer os valores da amostra em t1ms e t2ms. Isso leva à pergunta: Você pode interpolar os seus dados de forma sensata para ter suposições sãs do que valores intermédios poderiam ter sido? Ou você pode mesmo interpolar a própria média? Se nenhum destes é possível, então, tanto quanto eu vejo, o lógico A escolha de um valor intermediário Y (t) é a média calculada mais recentemente. I. e. Y (t) asymp S n em que n é maxmial tal que t n ltt. Esta escolha tem uma conseqüência simples: Deixe o alfa sozinho, não importa o que a diferença de tempo era. Se, por outro lado, é possível interpolar seus valores, então isto lhe dará amostras de intervalo constante averagable. Por último, se é mesmo possível interpolar a própria média, isso tornaria a pergunta sem sentido. Respondeu Jun 21 09 at 15:08 balpha 9830 27.2k 9679 10 9679 87 9679 117 Eu acho que posso interpolar meus dados: dado que I39m amostragem em intervalos discretos, I39m já fazê-lo com um padrão EMA Anyway, presumir que eu preciso Um quotproofquot 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 períodos de amostra. Ndash Curt Sampson Jun 21 09 at 15:21 Mas isso é o que I39m dizendo: Se você considerar a EMA uma interpolação de seus valores, youre feito se você deixar alfa como é (porque inserir a mais recente média como Y não muda a média) . Se você disser que precisa de algo que funciona bem como um padrão EMAquot - 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á no melhor arbitrário. Ndash balpha 9830 Jun 21 09 at 15:31 Eu deixaria o valor alfa sozinho, e preencher os dados ausentes. Uma vez que você não sabe o que acontece durante o tempo quando você não pode amostra, você pode preencher essas amostras com 0s, ou manter o valor anterior estável e usar esses valores para a EMA. Ou alguma interpolação para trás uma vez que você tiver uma nova amostra, preencha os valores ausentes e recompite a EMA. O que estou tentando obter é que você tem uma entrada xn que tem buracos. Não há como contornar o fato de que você está faltando dados. Assim, você pode usar uma retenção de ordem zero ou defini-la como 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 do intervalo. Possivelmente mesmo usando valores antes de n. De gastar uma hora ou assim muco 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 em um Muito mais simples. Além disso, eu acho que a variação do alfa também irá tratar adequadamente 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. Ndash Curt Sampson Jun 21 09 at 14:07 Eu não acho que há uma besta tão quotproper interpolationquot. Você simplesmente não sabe o que aconteceu no momento em que você não está amostragem. Interpolação boa e má 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, velocidade, etc. Eu acho que se você sabe como modelar os dados faltantes, então você apenas modelar os dados ausentes, em seguida, aplicar o algoritmo EMA sem alteração, Do que alterar alfa. Just my 2c :) ndash freespace Jun 21 09 em 14:17 Isto é exatamente o que eu estava começando em minha edição para a pergunta 15 minutos atrás: QuotYou simplesmente don39t saber o que aconteceu no tempo que você não está amostragem, mas isso é verdade Mesmo se você amostra em cada intervalo designado. Assim, minha contemplação Nyquist: desde que você saiba 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 ser importante e deve ser capaz de variar. A equação de EMA parece-me exatamente calcular como se a forma de onda mudasse linearmente do último valor de amostra ao atual. Ndash Curt Sampson Jun 21 09 em 14:26 Eu don39t acho que é muito verdadeiro. O teorema de Nyquist requer requer mínimo de 2 amostras por período para ser capaz de identificar exclusivamente o sinal. Se você don39t fazer isso, você começa aliasing. Seria o mesmo que amostragem 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 que eu não entendo o que você quer dizer com quotwaveform muda linearmente da última amostra para um onequot atual. Poderia explicar Cheers, Steve. Ndash freespace Jun 21 09 at 14:36 ​​Isso é semelhante a um problema aberto na minha lista de tarefas. Eu tenho um esquema funcionou até certo ponto, mas não tem trabalho matemático para apoiar esta sugestão ainda. Update amp resumo: Gostaria de manter o fator de alisamento (alfa) independente do fator de compensação (que eu me refiro como beta aqui). Jasons excelente resposta já aceito aqui funciona muito bem para mim. Se você também pode medir o tempo desde a última amostra foi tomada (em múltiplos arredondados do seu tempo de amostragem constante - 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 inclinado para o valor atual. Para obter uma melhor suavização, precisamos ajustar o alfa, aplicando a fórmula 8 vezes no caso anterior. O que esta aproximação de suavização perde? Já perdeu 7 amostras no exemplo acima Isto foi aproximado no 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 junto com alfa (Como alphabeta em vez de apenas alfa), estaremos assumindo que as 7 amostras perdidas estavam mudando suavemente entre os valores da amostra anterior e atual. 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 de 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 das amostras desviadas de tempos de amostra exata. Ndash Curt Sampson Jun 21 09 at 13:47 A única aplicação está bem. 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 com que o jitter de valor muito ao longo dos 8 milissegundos, as aproximações podem ser completamente fora da 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 1 ms não é relevante. Este raciocínio funciona para você (eu ainda estou tentando me convencer). Ndash nik Jun 21 09 em 14:08 Direito. Esse é o fator beta da minha descrição. Um fator beta seria calculado com base no intervalo de diferença e nas amostras atual e anterior. O alfa novo será (alphabeta) mas será usado somente para essa amostra. Enquanto você parece estar alinhando a alfa na fórmula, eu tento para alfa constante (fator de alisamento) e um beta independentemente calculado (um fator de ajuste) que compensa amostras perdidas agora. Ndash nik jun 21 09 at 15: 23Soothing e filtragem são duas das técnicas de série de tempo mais comumente usadas para remover o ruído dos dados subjacentes para ajudar a revelar as características e componentes importantes (por exemplo, tendência, sazonalidade, etc.). No entanto, também podemos usar suavização para preencher valores ausentes e / ou realizar uma previsão. Nesta edição, discutiremos cinco (5) diferentes métodos de alisamento: média móvel ponderada (WMA i), suavização exponencial simples, suavização exponencial dupla, suavização exponencial linear e suavização exponencial tripla. Por que devemos nos importar? A suavização é muito freqüentemente usada (e abusada) na indústria para fazer um rápido exame visual das propriedades dos dados (por exemplo, tendência, sazonalidade, etc.), se encaixar em valores faltantes e conduzir uma amostra rápida fora da amostra previsão. Por que temos tantas funções de suavização Como veremos neste artigo, cada função funciona para uma suposição diferente sobre os dados subjacentes. Por exemplo, a suavização exponencial simples assume que os dados têm uma média estável (ou pelo menos uma média de movimento lento), de modo que a suavização exponencial simples fará mal na previsão de dados que exibem sazonalidade ou uma tendência. Neste artigo, examinaremos cada função de suavização, destacaremos seus pressupostos e parâmetros e demonstraremos sua aplicação por meio de exemplos. Média Móvel Ponderada (WMA) Uma média móvel é comumente usada com dados de séries temporais para suavizar flutuações de curto prazo e destacar tendências ou ciclos de longo prazo. Uma média móvel ponderada tem fatores multiplicadores para dar pesos diferentes aos dados em diferentes posições na janela da amostra. A média móvel ponderada tem uma janela fixa (i. e. N) e os factores são tipicamente escolhidos para dar mais peso às observações recentes. O tamanho da janela (N) determina o número de pontos em média a cada vez, portanto um tamanho de janela maior é menos responsivo a novas alterações na série de tempo original e um tamanho de janela pequeno pode causar a saída suavizada ser ruidoso. Para fora da previsão da amostra finalidades: Exemplo 1: Vamos considerar as vendas mensais para a Empresa X, usando uma média móvel de 4 meses (igual ponderada). Observe que a média móvel está sempre atrasada em relação aos dados ea previsão fora da amostra converge para um valor constante. Vamos tentar usar um esquema de ponderação (veja abaixo) que dá mais ênfase à observação mais recente. Nós plotamos a média móvel ponderada igual e WMA no mesmo gráfico. O WMA parece mais responsivo às mudanças recentes e a previsão de saída da amostra converge para o mesmo valor que a média móvel. Exemplo 2: Vamos examinar o WMA na presença de tendência e sazonalidade. Para este exemplo, utilize bem os dados da companhia aérea internacional de passageiros. A janela da média móvel é de 12 meses. O MA e o WMA acompanham o ritmo da tendência, mas a previsão fora da amostra é plana. Além disso, embora a WMA exibe alguma sazonalidade, ela está sempre atrasada em relação aos dados originais. (Browns) Suavização Exponencial Simples A suavização exponencial simples é semelhante à WMA com a exceção de que o tamanho da janela é infinito e os fatores de ponderação diminuem exponencialmente. Como vimos na WMA, a exponencial simples é adequada para séries temporais com uma média estável ou, pelo menos, uma média móvel muito lenta. Exemplo 1: Permite usar os dados de vendas mensais (como fizemos no exemplo do WMA). No exemplo acima, escolhemos o fator de suavização para ser 0.8, o que leva à pergunta: Qual é o melhor valor para o fator de alisamento Estimar o melhor valor dos dados Usando a função TSSUB (para calcular o erro), SUMSQ e Excel Tabelas de dados, calculamos a soma dos erros quadrados (SSE) e traçamos os resultados: O SSE atinge seu valor mínimo em torno de 0,8, então escolhemos esse valor para nosso alisamento. (Holt-Winters) Suavização Exponencial Dupla A suavização exponencial simples não funciona bem na presença de uma tendência, pelo que vários métodos concebidos sob o duplo guarda-chuva exponencial são propostos para lidar com este tipo de dados. O NumXL suporta a suavização exponencial dupla de Holt-Winters, que tem a seguinte formulação: Exemplo 1: Examinemos os dados de passageiros internacionais de passageiros Escolhemos um valor Alpha de 0,9 e um Beta de 0,1. Observe que, embora a suavização dupla traça bem os dados originais, a previsão fora da amostra é inferior à média móvel simples. Como podemos encontrar os melhores fatores de suavização Tomamos uma abordagem semelhante ao nosso exemplo de suavização exponencial simples, mas modificada para duas variáveis. Calculamos a soma dos erros quadrados construindo uma tabela de dados de duas variáveis ​​e selecionando os valores alfa e beta que minimizam o SSE global. (Browns) Suavização Exponencial Linear Este é outro método de função de suavização exponencial dupla, mas tem um fator de suavização: Browns dupla exponencial suavização leva um parâmetro menor do que a função Holt-Winters, mas pode não oferecer um ajuste tão bom como essa função. Exemplo 1: Vamos usar o mesmo exemplo em Holt-Winters duplo exponencial e comparar a soma ideal do erro quadrado. A exponencial dupla de Browns não se ajusta aos dados da amostra, assim como ao método de Holt-Winters, mas a amostra fora da amostra (neste caso particular) é melhor. Como encontrar o melhor fator de suavização () Usamos o mesmo método para selecionar o valor alfa que minimiza a soma do erro quadrado. Para os exemplos de dados de amostra, o alfa é encontrado para ser 0,8. (Invernos) Suavização Exponencial Tripla A suavização exponencial tripla leva em conta mudanças sazonais, bem como tendências. Este método requer 4 parâmetros: A formulação para triplo exponencial alisamento é mais envolvido do que qualquer um dos anteriores. Por favor, consulte o nosso manual de referência online para a formulação exacta. Usando os dados internacionais da companhia aérea de passageiros, podemos aplicar o triplo triângulo exponencial dos invernos, encontrar parâmetros ótimos e realizar uma previsão fora da amostra. Obviamente, a suavização exponencial tripla de Winters é melhor aplicada para esta amostra de dados, uma vez que rastreia bem os valores e a previsão de amostra fora da amostra apresenta sazonalidade (L12). Como encontrar o melhor fator de alisamento () Mais uma vez, precisamos escolher os valores que minimizam a soma total dos erros quadrados (SSE), mas as tabelas de dados podem ser usadas para mais de duas variáveis, então recorremos ao Excel Solver: (1) Configurar o problema de minimização, com o SSE como a função de utilidade (2) As restrições para este problema Conclusão de suporte Arquivos Um método simples e geral para preencher os dados em falta, se você tem executados de dados completos, é usar Linear regressão. Digamos que você tem 1000 execuções de 5 em uma linha com nenhuma falta. Configurar o vetor 1000 x 1 y e 1000 x 4 matriz X: regressão lhe dará 4 números a b c d que dão uma melhor correspondência para suas 1000 linhas de dados mdash dados diferentes, diferentes a b c d. Então você usa estas a b c d para estimar (prever, interpolar) wt0 ​​ausente. (Para os pesos humanos, eu esperava que abcd fosse em torno de 14.) (Há centenas de livros e artigos sobre regressão, em todos os níveis. Para a conexão com a interpolação, porém, eu não sei de uma boa introdução ninguém) Exponential Moving Average - EMA BREAKING DOWN Média móvel exponencial - EMA As EMAs de 12 e 26 dias são as médias de curto prazo mais populares e são usadas para criar indicadores como a divergência de convergência média móvel (MACD) eo oscilador de preços percentuais (PPO) . Em geral, as EMA de 50 e 200 dias são usadas como sinais de tendências de longo prazo. Traders que empregam análise técnica encontrar médias móveis muito útil e perspicaz quando aplicado corretamente, mas criar havoc quando usado de forma inadequada ou são mal interpretados. Todas as médias móveis normalmente utilizadas na análise técnica são, pela sua própria natureza, indicadores atrasados. Conseqüentemente, as conclusões tiradas da aplicação de uma média móvel a um gráfico de mercado específico devem ser para confirmar um movimento de mercado ou para indicar sua força. Muitas vezes, quando uma linha de indicadores de média móvel fez uma alteração para refletir uma mudança significativa no mercado, o ponto ótimo de entrada no mercado já passou. Um EMA serve para aliviar este dilema em certa medida. Porque o cálculo EMA coloca mais peso sobre os dados mais recentes, ele abraça a ação de preço um pouco mais apertado e, portanto, reage mais rápido. Isto é desejável quando um EMA é usado para derivar um sinal de entrada de negociação. Interpretando a EMA Como todos os indicadores de média móvel, eles são muito mais adequados para mercados de tendências. Quando o mercado está em uma tendência de alta forte e sustentada. A linha de indicador EMA também mostrará uma tendência de alta e vice-versa para uma tendência de baixa. Um comerciante vigilante não só prestar atenção à direção da linha EMA, mas também a relação da taxa de mudança de uma barra para a próxima. Por exemplo, à medida que a ação de preço de uma forte tendência de alta começar a se nivelar e reverter, a taxa de mudança da EMA de uma barra para a próxima começará a diminuir até que a linha de indicador se aplana ea taxa de mudança seja zero. Devido ao efeito retardado, por este ponto, ou mesmo algumas barras antes, a ação do preço deve já ter invertido. Portanto, segue-se que a observação de uma diminuição consistente da taxa de variação da EMA poderia ser utilizada como um indicador que pudesse contrariar o dilema causado pelo efeito retardado das médias móveis. Usos comuns do EMA EMAs são comumente usados ​​em conjunto com outros indicadores para confirmar movimentos significativos do mercado e para avaliar a sua validade. Para os comerciantes que negociam intraday e mercados em rápido movimento, o EMA é mais aplicável. Muitas vezes os comerciantes usam EMAs para determinar um viés de negociação. Por exemplo, se um EMA em um gráfico diário mostra uma forte tendência ascendente, uma estratégia de comerciantes intraday pode ser o comércio apenas a partir do lado longo em um gráfico intraday.

No comments:

Post a Comment