Exponencial Moving Average Kernel
Receita6.4.Simagem de dados usando médias ponderadas Você gostou de suavizar dados em uma série de tempo. Utilize o recurso de suavização exponencial das Excels no Analysis ToolPak ou construa uma série de dados suavizados usando funções de planilha e VBA. Discussão Os dados de suavização geralmente são desejáveis para remover o ruído indesejado em uma série de dados. A computação de médias móveis como discutido na Receita 6.3 é realmente um processo de suavização. Além dos métodos de médias móveis discutidos anteriormente, existem outras maneiras de suavizar os dados. O Excel oferece um recurso de suavização exponencial como parte do Analysis ToolPak. Além disso, você pode construir qualquer operação de suavização que desejar usando funções de planilha padrão (ou VBA). Você já viu essa abordagem na receita anterior no entanto, desta vez, eu mostro como usar uma média móvel ponderada que faz uso de um kernel de interpolação cúbica de spline. Suavização exponencial O alisamento exponencial também é uma técnica de média ponderada. A idéia por trás da média ponderada é fornecer valores de dados mais próximos do valor que está sendo previsto ou estimado maior importância, ou influenciar, ao contrário de valores mais distantes. Suavização exponencial usa a seguinte fórmula: F n 1 é o valor estimado no intervalo de tempo n 1. a é um fator de ponderação, que é chamado de fator de amortecimento no Excel. F n é o valor estimado anterior e Y n é o valor real anterior na série de dados original. Para usar o suavização exponencial, selecione Ferramentas Figura 6-11. Caixa de diálogo Suavização exponencial No campo Faixa de entrada, digite (ou selecione na planilha) o intervalo de células que contém os dados de entrada que deseja suavizar. Digite um fator de amortecimento no campo do fator de amortecimento ou deixe em branco para usar o valor padrão de 0,3. Digite uma referência para a célula superior na faixa de célula de saída desejada no campo Faixa de saída. Pressione OK quando terminar e você deve ver os resultados em sua planilha. A Figura 6-12 mostra um exemplo para os mesmos dados de temperatura anual usados na receita anterior. As séries de dados resultantes após o alisamento estão contidas na coluna R. Figura 6-12. Resultados de suavização exponencial Assim como a ferramenta Moeda em Movimento discutida anteriormente, a ferramenta Exponencial de Suavização coloca uma fórmula de célula em vez de um valor em cada célula da série de dados resultante. Desta forma, se os dados originais forem alterados, os dados suavizados serão atualizados automaticamente. A célula R10 é selecionada na Figura 6-12 para que você possa ver como as fórmulas se parecem. A fórmula é mostrada na barra de fórmulas e é da forma 0.7O90.3R9. Como você pode ver, esta fórmula corresponde à equação exponencial de suavização que mostrei anteriormente. Claro, você pode inserir essas fórmulas você mesmo, ignorando a necessidade de usar o Analysis ToolPak, se desejar. A Figura 6-13 mostra um gráfico da série de dados suavizados sobreposta à série original para que você possa ver a diferença entre as duas. Figura 6-13. Dados de temperatura suavizados exponencialmente Outras técnicas de média ponderada são comumente usadas na análise de séries temporais. Na próxima seção, eu mostro você com base em um kernel de interpolação de spline cúbico. Suavização do kernel Neste exemplo, Ill mostra uma técnica de média ponderada que usa um kernel de interpolação de spline cúbico projetado para aproximar um kernel gaussiano. Você pode usar todo o tipo de kernels diferentes para suavizar com apenas pequenas modificações na técnica Ill presente. O kernel Ill use é: r representa a distância entre pontos de dados e h representa o raio de suavização efetivo dividido por 2. Use esta função de suavização para calcular pesos ao calcular médias médias ponderadas das séries temporais. Para tornar esta tarefa mais fácil, adicionei uma função VBA chamada Wcs que você chama da planilha. O exemplo 6-1 mostra minha implementação do VBA para este kernel de suavização. Exemplo 6-1. Kernel de spline cúbico Esta é uma implementação bastante direta da equação que mostrei anteriormente, então não vou sobre cada linha de código. Consulte o Capítulo 2 se você ainda não estiver atualizado ao usar o VBA e adicionando funções e sub-rotinas personalizadas. Eu uso esta função para gerar pesos para suavizar os mesmos dados de temperatura discutidos anteriormente. A Figura 6-14 mostra uma tabela de pesos que eu computei usando esta função. Figura 6-14. Tabela de pesos A primeira coluna na tabela, rotulada r. Contém índices relativos em torno do quarto índice, rotulado como 0. Podemos fazer isso aqui para calcular r porque os dados da série temporal são amostrados em intervalos uniformemente espaçados. A segunda coluna contém fórmulas como Wcs (U10,2). Esta é a fórmula contida na célula V10. Todas as outras células contêm fórmulas semelhantes. A soma dos pesos (calculada usando a fórmula SUM mostrada na célula V14) é necessária para normalizar a computação média ponderada. Você pode evitar esse passo se seu kernel se integrar à unidade em relação à sua gama de suporte. Agora, para calcular a série de dados suavizados, configure outra coluna na minha planilha, conforme mostrado na Figura 6-15. Figura 6-15. Resultados do alisamento do kernel Os dados suavizados estão contidos na coluna S sob o título Suavidade do kernel. Eu selecionei o primeiro valor de dados suavizados na célula S10 na figura para que você possa ver a fórmula da célula. A fórmula é SUMPRODUCT (R7: R13, V7: V13) V14. Como você pode ver, ele usa a fórmula SUMPRODUCT para calcular a soma dos produtos de cada termo correspondente nas duas gamas de células (veja o Capítulo 7 para obter mais informações sobre esta e outras funções úteis). Nesse caso, o primeiro intervalo de células corresponde aos seis itens de dados em torno do item de dados fornecido, incluindo o item de dados fornecido. Isso significa que a média ponderada neste caso é centrada sobre o i th item de dados e inclui a influência ponderada dos três itens anteriores e os três itens a seguir. A segunda gama de células contém os pesos mostrados na Figura 6-14. Além disso, dividir pela soma de pesos, contida na célula V14, normaliza o resultado. Uma vez que a primeira fórmula foi configurada, eu simplesmente copiei e colei as células restantes na série de dados. Observe que perdemos alguns dados. Especificamente, perdemos o primeiro e o último três itens de dados no intervalo devido ao alcance da influência da função de ponderação que usei. Você pode aumentar o alcance da influência aumentando o valor do parâmetro h passado para o Wcs. Ou pode diminuí-lo, diminuindo esse valor. Quanto maior o alcance da influência (portanto, quanto maior o número de itens de dados na série em média para cada resultado suavizado), mais lisas serão as séries de dados resultantes. A Figura 6-16 mostra um gráfico da série de dados suavizados em comparação com a série de dados original, o efeito do alisamento é claramente evidente. Figura 6-16. Dados de temperatura suavizados no Kernel Consulte a Receita 6.3 para saber como calcular as médias móveis não ponderadas no Excel. Suavizar os dados usando as técnicas nessa e a receita anterior é na verdade uma forma de filtragem. Você também pode filtrar dados no domínio da frequência no Excel usando transformações de Fourier, lê a Receita 6.10 para aprender mais. Uma possível abordagem aqui é ter um método que retorna o kernel. Pelo que eu posso ver, as insumos para este método seriam do tipo kernel. Eu. E outras entradas. Uma abordagem simples seria: isso é, naturalmente, terrivelmente, terrivelmente áspero, e podem ser feitas muitas melhorias, mas se destina apenas a obter o ponto de vista. Eu usaria uma interface para representar um kernel e ter classes derivadas por kernel. Na minha experiência, isso produz um código suficientemente legível e sustentável, mas há sempre espaço para melhorias. Respondeu 1 de agosto às 20:39
Comments
Post a Comment