Média Em Movimento Irregular


Estou tentando desenterrar algumas métricas que analisam a confiabilidade com que os clientes se conectam a um serviço. Os dados brutos estão na forma do cliente A, foram colocados em linha no momento X. A conexão é altamente confiável, e eu quero algum tipo de média móvel para mostrar se a conexão está melhorando ou não ao longo do tempo. Os clientes nem sempre estão conectados, então simplesmente se desligar não significa ser uma falha. Até agora, eu tomei dados e apliquei alguns pressupostos para ajudar a simplificá-lo, suponho que, se um cliente se reconectar dentro de um minuto de desconectá-lo, isso é uma falha. Estes foram modelados como simples implosões, ou seja. O cliente A falhou no momento X. A parte com a qual estou lutando é como transformar esse gráfico em uma média móvel (estou jogando com R para desfazer os números). Eu acredito que eu deveria ser capaz de fazer isso com um filtro de passagem baixa, ou usar o pacote do zoológico e o RollMean. No entanto, não sei como lidar com os casos em que o cliente simplesmente não queria estar on-line. Médias móveis evocáveis ​​para séries temporais irregulares Na análise de séries temporais, muitas vezes há necessidade de funções de suavização que reagem rapidamente às mudanças no sinal. No aplicativo típico, você pode estar processando um sinal de entrada em tempo real e quer calcular coisas como o valor médio recente ou obter uma inclinação instantânea para isso. Mas os sinais do mundo real são frequentemente ruidosos. Algumas amostras ruidosas farão com que o valor atual do sinal, ou sua inclinação, varie amplamente. Médias móveis A função de suavização mais simples é uma média móvel com janelas. À medida que as amostras chegam, você toma uma média dos valores N mais recentes. Isso suavizará os picos, mas introduz um atraso de 8211 ou latência. Sua média sempre será adiada pela largura da sua média móvel. O exemplo acima é relativamente caro para calcular. Para cada amostra, você deve iterar em todo o tamanho da janela. Mas há formas mais baratas de manter a soma de todas as amostras na janela em um buffer e ajustar a soma como novas amostras entrar: Outro tipo de média móvel é a média móvel 8220weighted8221 que pesa cada posição na janela de amostra. Antes de calcular a média, multiplique cada amostra pelo peso dessa posição da janela. Tecnicamente isso é chamado de 8220convolution8221. Uma função de ponderação típica aplica uma curva de sino à janela de amostra. Isso dá um sinal que está mais ajustado ao centro da janela, e ainda é um pouco tolerante às amostras ruidosas. Na análise financeira, você geralmente usa uma função de ponderação que valora mais as amostras recentes, para dar uma média móvel que rastreia mais as amostras recentes. As amostras mais antigas recebem progressivamente menos peso. Isso mitiga um pouco os efeitos da latência, embora ainda dê um bom alisamento razoavelmente: com uma média ponderada, você sempre precisa repetir todo o tamanho da janela para cada amostra (a menos que você possa restringir os pesos permitidos a certas funções). A média móvel exponencial Outro tipo de média é a média móvel exponencial, ou EMA. Isso geralmente é usado onde a latência é crítica, como na análise financeira em tempo real. Nesta média, os pesos diminuem exponencialmente. Cada amostra é avaliada um pouco 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. Onde alfa é uma constante que descreve como os pesos das janelas diminuem ao longo do tempo. Por exemplo, se cada amostra fosse ponderada em 80 do valor da amostra anterior, você definiu alfa 0.2. O alfa menor torna-se maior a sua média móvel. (Por exemplo, torna-se mais suave, mas menos reactivo para novas amostras). Os pesos para uma EMA com alpha0.20 Como você pode ver, para cada nova amostra, você só precisa de média com o valor da média anterior. Então, a computação é muito rápida. Em teoria, todas as amostras anteriores contribuem para a média atual, mas sua contribuição se torna exponencialmente menor ao longo do tempo. Esta é uma técnica muito poderosa, e provavelmente a melhor se você deseja obter uma média móvel que responda rapidamente a novas amostras, possui boas propriedades de suavização e é rápido para calcular. O código é trivial: EMA para Série de Tempo Irregular O EMA padrão é bom quando o sinal é amostrado em intervalos de tempo regulares. Mas e se suas amostras vierem em intervalos irregulares Imagine um sinal contínuo que seja amostrado em intervalos irregulares. Esta é a situação habitual 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. Portanto, seu fluxo de dados consiste em um valor, além do tempo em que foi observado. Uma maneira de lidar com isso é converter o sinal irregular em um sinal regular, interpolando entre observações e reescrevendo. Mas isso perde dados e re-introduz a latência. É possível calcular uma EMA para uma série de tempo irregular diretamente: nesta função, você passa a amostra atual do seu sinal e a amostra anterior e a quantidade de tempo decorrido entre os dois e o valor anterior retornado por este função. Então, quão bem isso funciona. Para demonstrar que I8217ve gerou uma onda senoidal, então a amostra em intervalos irregulares e introduziu cerca de 20 ruídos. Esse é o sinal variará aleatoriamente - 20 do sinal seno original 8220true8221. Quão bem a média móvel exponencial irregular recupera o sinal. A linha vermelha é a onda senoidal original 8211 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 vê-lo recuperar o sinal muito bem. Um pouco bamboleante, mas o que você pode esperar de um sinal de fonte tão ruidoso. Ele é deslocado cerca de 15 para a direita, porque o EMA apresenta alguma latência. Quanto mais suave você quiser, mais latência você verá. Mas disso, você pode, por exemplo, calcular uma inclinação instantânea para um sinal irregular ruidoso. O que você pode fazer com esse Hmm8230. Recursos:

Comments