Sunday 20 May 2018

Moving average smoothing c


Im coding algo no momento em que estou tomando um monte de valores ao longo do tempo a partir de uma bússola de hardware. Esta bússola é muito precisa e se atualiza com muita frequência, com o resultado de que, se ela balançar levemente, acabo com o valor ímpar que é descontroladamente inconsistente com seus vizinhos. Eu quero suavizar esses valores. Tendo feito algumas leituras, parece que o que eu quero é um filtro passa-alto, um filtro passa-baixo ou uma média móvel. Com a média móvel, posso ficar com, apenas manter um histórico dos últimos 5 valores ou o que quer que seja, e usar a média desses valores downstream no meu código, onde eu estava apenas usando o valor mais recente. Isso deve, eu acho, suavizar esses jiggles muito bem, mas parece-me que é provavelmente bastante ineficiente, e este é provavelmente um daqueles Problemas Conhecidos para os Programadores Corretos, para o qual existe uma solução realmente inteligente de Matemática Inteligente. Eu sou, no entanto, um desses programadores autodidatas terríveis, sem um pingo de educação formal em qualquer coisa, mesmo que vagamente relacionada à CompSci ou Matemática. Ler um pouco sugere que isso pode ser um filtro de alta ou baixa passagem, mas não consigo encontrar nada que explique em termos compreensíveis a um hack como eu qual seria o efeito desses algoritmos em uma matriz de valores, muito menos como a matemática trabalho. A resposta dada aqui. por exemplo, tecnicamente responde a minha pergunta, mas apenas em termos compreensíveis para aqueles que provavelmente já sabem como resolver o problema. Seria realmente uma pessoa muito amável e esperta que pudesse explicar o tipo de problema que é, e como as soluções funcionam, em termos compreensíveis para um graduado em Artes. Se sua média móvel tiver que ser longa para conseguir a suavização necessária, e você realmente não precisa de nenhuma forma particular de kernel, então você está melhor se usar uma média móvel exponencialmente decadente: onde você escolha minúsculo para ser uma constante apropriada (por exemplo, se você escolher minúsculo 1-1 / N, ele terá a mesma quantidade de média que uma janela de tamanho N, mas distribuído de maneira diferente em relação a pontos mais antigos). De qualquer forma, como o próximo valor da média móvel depende apenas do anterior e dos seus dados, você não precisa manter uma fila ou algo assim. E você pode pensar nisso como algo como: "Bem, eu tenho um novo ponto, mas eu realmente não confio nele, então vou manter 80 da minha estimativa antiga da medição, e só confiar neste novo ponto de dados". praticamente o mesmo que dizer: Bem, eu só confio neste novo ponto 20, e vou usar 4 outros pontos que eu confio na mesma quantia, exceto que ao invés de explicitamente pegar os 4 outros pontos, você está assumindo que a média que você fez da última vez foi sensato para que você possa usar o seu trabalho anterior. respondeu 21 set 10 at 14:27 Ei, eu sei que isso é 5 anos de atraso, mas obrigado por uma resposta incrível. Eu estava trabalhando em um jogo onde o som mudava com base na sua velocidade, mas devido à execução do jogo em um computador lento, a velocidade flutuava descontroladamente, o que era bom para a direção, mas super irritante em termos de som. Esta foi uma solução muito simples e barata para algo que eu pensei que seria um problema muito complexo. Se você está tentando remover o valor ímpar ocasional, um filtro passa-baixa é a melhor das três opções que você identificou. Os filtros passa-baixa permitem alterações de baixa velocidade, como as causadas pela rotação manual de uma bússola, ao mesmo tempo que rejeitam alterações de alta velocidade, como as causadas por solavancos na estrada, por exemplo. Uma média móvel provavelmente não será suficiente, pois os efeitos de um único blip em seus dados afetarão vários valores subsequentes, dependendo do tamanho da sua janela de média móvel. Se os valores ímpares são facilmente detectados, você pode até mesmo estar melhor com um algoritmo de remoção de falhas que os ignora completamente: Aqui está um gráfico de orientação para ilustrar: O primeiro gráfico é o sinal de entrada, com um erro desagradável. O segundo gráfico mostra o efeito de uma média móvel de 10 amostras. O gráfico final é uma combinação da média de 10 amostras e o algoritmo simples de detecção de falhas mostrado acima. Quando a falha é detectada, a média de 10 amostras é usada em vez do valor real. respondido setembro 21 10 em 13:38 Bem explicado, e pontos de bônus para o gráfico) ndash Henry Cooke 22 de setembro 10 às 0:50 Uau. Raramente vi uma resposta tão agradável, que era um filtro de baixa passagem. ndash nomen Oct 21 13 at 19:36 Em vez disso, tente uma mediana de execução / streaming. ndash kert Apr 25 14 at 22:09 Média móvel posso descer com. mas parece-me que é provavelmente bastante ineficiente. Não há realmente nenhuma razão para que uma média móvel seja ineficiente. Você mantém o número de pontos de dados que você deseja em algum buffer (como uma fila circular). Em cada novo ponto de dados, você insere o valor mais antigo e subtrai-o de uma soma e empurra o mais novo e adiciona-o à soma. Assim, cada novo ponto de dados realmente implica apenas um pop / push, uma adição e uma subtração. Sua média móvel é sempre essa soma de deslocamento dividida pelo número de valores em seu buffer. Fica um pouco mais complicado se você está recebendo dados simultaneamente de vários threads, mas já que seus dados estão vindo de um dispositivo de hardware que parece altamente duvidoso para mim. Ah, e também: programadores auto-didatas se uniram) A média de movimento me pareceu ineficiente porque você tem que armazenar um buffer de valores - melhor apenas fazer algumas Maths inteligentes com seu valor de entrada e valor de trabalho atual Eu acho que isso é como média móvel exponencial trabalho. Uma otimização que eu já vi para esse tipo de média móvel envolve o uso de um amplificador de fila de tamanho fixo, um ponteiro para onde você está naquela fila e apenas o ponteiro do contorno (com ou um if). Voila Sem push / pop caro. Poder para os amadores, irmão Henry Cooke Sep 22 10 às 0:54 Henry: Para uma média móvel direta você precisa do buffer simplesmente para que você saiba qual o valor que aparece quando o próximo valor é empurrado. Dito isso, o "amplificador de fila de comprimento fixo" um ponteiro que você está descrevendo é exatamente o que eu quis dizer com "fila circular". É por isso que eu estava dizendo que não é ineficiente. O que você acha que eu quis dizer E se a sua resposta é um array que troca seus valores de volta em todas as remoções indexadas (como std :: vector em C). bem, então, eu estou tão magoada que nem quero mais falar com você.) Henry: Eu não sei sobre AS3, mas um programador Java tem coleções como CircularQueue à sua disposição (I39m não é um desenvolvedor de Java, então tenho certeza de que existem exemplos melhores por aí que são apenas o que eu descobri em uma rápida pesquisa no Google), que implementa precisamente a funcionalidade que estamos falando. Eu estou bastante confiante de que a maioria das linguagens de nível médio e baixo com bibliotecas padrão tem algo semelhante (por exemplo, em. NET há o QueueltTgt). De qualquer forma, eu mesmo era filosofia. tudo é perdoado. ndash Dan Tao Sep 22 10 at 12:44 Uma média móvel exponencialmente decadente pode ser calculada manualmente com apenas a tendência se você usar os valores apropriados. Veja fourmilab. ch/hackdiet/e4/ para ter uma ideia de como fazer isso rapidamente com uma caneta e um papel, se você estiver procurando uma média móvel suavemente exponencial com 10 suavizações. Mas, como você tem um computador, provavelmente quer fazer mudanças binárias em vez de deslocamento decimal. Dessa forma, tudo o que você precisa é de uma variável para seu valor atual e outra para a média. A próxima média pode então ser calculada a partir disso. respondeu 21 de setembro às 14:39 Há uma técnica chamada um portão de gama que funciona bem com amostras espúrias de baixa ocorrência. assumindo o uso de uma das técnicas de filtro mencionadas acima (média móvel, exponencial), uma vez que você tenha histórico suficiente (uma Constante de Tempo), você pode testar a nova amostra de dados de entrada por razoabilidade, antes que ela seja adicionada à computação. É necessário algum conhecimento da taxa de variação máxima aceitável do sinal. a amostra bruta é comparada com o valor suavizado mais recente e, se o valor absoluto dessa diferença for maior que a faixa permitida, essa amostra é descartada (ou substituída por alguma heurística, por exemplo, uma previsão baseada na inclinação diferencial ou na tendência valor de predição da suavização exponencial dupla) 30 de abril às 6: 56Os dados de suavização eliminam variação aleatória e mostram tendências e componentes cíclicos Inerente na coleta de dados ao longo do tempo há alguma forma de variação aleatória. Existem métodos para reduzir o cancelamento do efeito devido à variação aleatória. Uma técnica frequentemente usada na indústria é suavizar. Esta técnica, quando aplicada corretamente, revela mais claramente a tendência subjacente, componentes sazonais e cíclicos. Existem dois grupos distintos de métodos de suavização Métodos de Média Exponencial Suavização de Métodos A obtenção de médias é a maneira mais simples de suavizar dados. Primeiro investigaremos alguns métodos de cálculo de média, como a média simples de todos os dados anteriores. Um gerente de um depósito quer saber quanto um fornecedor típico entrega em unidades de mil dólares. Ele / ela pega uma amostra de 12 fornecedores, aleatoriamente, obtendo os seguintes resultados: A média calculada ou média dos dados 10. O gerente decide usar isso como a estimativa para o gasto de um fornecedor típico. Esta é uma estimativa boa ou ruim O erro quadrático médio é uma maneira de julgar quão bom é um modelo Vamos calcular o erro quadrático médio. O valor verdadeiro do erro gasto menos o valor estimado. O erro ao quadrado é o erro acima, ao quadrado. O SSE é a soma dos erros quadrados. O MSE é a média dos erros ao quadrado. Resultados do MSE, por exemplo Os resultados são: Erro e Erros Quadráticos A estimativa 10 Surge a pergunta: podemos usar a média para prever renda se suspeitarmos de uma tendência Uma olhada no gráfico abaixo mostra claramente que não devemos fazer isso. A média pesa todas as observações passadas igualmente Em resumo, afirmamos que A média simples ou média de todas as observações passadas é apenas uma estimativa útil para previsão quando não há tendências. Se houver tendências, use estimativas diferentes que levem em consideração a tendência. A média pesa todas as observações passadas igualmente. Por exemplo, a média dos valores 3, 4, 5 é 4. Sabemos, é claro, que uma média é computada adicionando todos os valores e dividindo a soma pelo número de valores. Outra maneira de calcular a média é somando cada valor dividido pelo número de valores, ou 3/3 4/3 5/3 1 1.3333 1.6667 4. O multiplicador 1/3 é chamado de peso. Em geral: bar frac soma esquerda (fratura direita) x1 esquerda (fratura direita) x2,. , esquerda (frac direita) xn. Os (esquerda (fratura à direita)) são os pesos e, é claro, somam 1.Movendo modelos de suavização média e exponencial Como primeiro passo para ir além dos modelos de média, modelos de caminhada aleatória e modelos de tendência linear, padrões e tendências não sazonais pode ser extrapolado usando um modelo de média móvel ou suavização. A suposição básica por trás dos modelos de média e suavização é que a série temporal é localmente estacionária com uma média de variação lenta. Assim, tomamos uma média móvel (local) para estimar o valor atual da média e, em seguida, usamos isso como a previsão para o futuro próximo. Isso pode ser considerado como um compromisso entre o modelo de média e o modelo de passeio aleatório sem deriva. A mesma estratégia pode ser usada para estimar e extrapolar uma tendência local. Uma média móvel é muitas vezes chamada de uma versão quotsmoothed da série original porque a média de curto prazo tem o efeito de suavizar os solavancos da série original. Ao ajustar o grau de suavização (a largura da média móvel), podemos esperar encontrar algum tipo de equilíbrio ideal entre o desempenho dos modelos de caminhada média e aleatória. O tipo mais simples de modelo de média é o. Média Móvel Simples (igualmente ponderada): A previsão para o valor de Y no tempo t1 que é feito no tempo t é igual à média simples das observações mais recentes: (Aqui e em outros lugares eu usarei o símbolo 8220Y-hat8221 para ficar para uma previsão da série temporal Y feita o mais cedo possível por um dado modelo.) Esta média é centrada no período t - (m1) / 2, o que implica que a estimativa da média local tenderá a ficar atrás da valor verdadeiro da média local em cerca de (m1) / 2 períodos. Assim, dizemos que a idade média dos dados na média móvel simples é (m1) / 2 em relação ao período para o qual a previsão é calculada: é a quantidade de tempo que as previsões tenderão a ficar para trás nos pontos de virada no dados. Por exemplo, se você está calculando a média dos últimos 5 valores, as previsões serão aproximadamente 3 períodos mais tarde para responder aos pontos de virada. Observe que, se m1, o modelo de média móvel simples (SMA) é equivalente ao modelo de passeio aleatório (sem crescimento). Se m é muito grande (comparável à duração do período de estimativa), o modelo SMA é equivalente ao modelo de média. Como acontece com qualquer parâmetro de um modelo de previsão, é costume ajustar o valor de k para obter o melhor quotfit dos dados, ou seja, os menores erros de previsão, em média. Aqui está um exemplo de uma série que parece exibir flutuações aleatórias em torno de uma média de variação lenta. Primeiro, vamos tentar ajustá-lo com um modelo de passeio aleatório, o que equivale a uma média móvel simples de 1 termo: o modelo de passeio aleatório responde muito rapidamente a mudanças na série, mas ao fazê-lo ele escolhe muito da cotação na série. dados (as flutuações aleatórias), bem como o quotsignalquot (a média local). Se, em vez disso, tentarmos uma média móvel simples de 5 termos, obteremos um conjunto de previsões mais suave: a média móvel simples de 5 termos gera erros significativamente menores do que o modelo de passeio aleatório nesse caso. A idade média dos dados nesta previsão é de 3 ((51) / 2), de modo que ela tende a ficar atrás de pontos de virada em cerca de três períodos. (Por exemplo, uma desaceleração parece ter ocorrido no período 21, mas as previsões não mudam até vários períodos depois.) Observe que as previsões de longo prazo do modelo SMA são uma linha reta horizontal, assim como no passeio aleatório. modelo. Assim, o modelo SMA assume que não há tendência nos dados. No entanto, enquanto as previsões do modelo de passeio aleatório são simplesmente iguais ao último valor observado, as previsões do modelo SMA são iguais a uma média ponderada de valores recentes. Os limites de confiança calculados pela Statgraphics para as previsões de longo prazo da média móvel simples não aumentam à medida que o horizonte de previsão aumenta. Isso obviamente não está correto Infelizmente, não há uma teoria estatística subjacente que nos diga como os intervalos de confiança devem se ampliar para esse modelo. No entanto, não é muito difícil calcular estimativas empíricas dos limites de confiança para as previsões de horizonte mais longo. Por exemplo, você poderia configurar uma planilha na qual o modelo do SMA seria usado para prever duas etapas à frente, três etapas à frente etc. na amostra de dados históricos. Você poderia calcular os desvios padrão da amostra dos erros em cada horizonte de previsão e, em seguida, construir intervalos de confiança para previsões de prazo mais longo adicionando e subtraindo múltiplos do desvio padrão apropriado. Se tentarmos uma média móvel simples de 9 termos, obteremos previsões ainda mais suaves e mais um efeito retardado: a idade média é agora de 5 períodos ((91) / 2). Se tomarmos uma média móvel de 19 anos, a idade média aumentará para 10: observe que, de fato, as previsões agora estão atrasadas em relação aos pontos de virada em cerca de 10 períodos. Que quantidade de suavização é melhor para esta série? Aqui está uma tabela que compara suas estatísticas de erro, incluindo também uma média de três termos: Modelo C, a média móvel de 5 termos, produz o menor valor de RMSE por uma pequena margem sobre os 3 A médio e médio prazo, e as outras estatísticas são quase idênticas. Assim, entre os modelos com estatísticas de erros muito semelhantes, podemos escolher se preferiríamos um pouco mais de capacidade de resposta ou um pouco mais de suavidade nas previsões. (Voltar ao topo da página.) Suavização exponencial simples de Browns (média móvel exponencialmente ponderada) O modelo de média móvel simples descrito acima tem a propriedade indesejável de tratar as últimas k observações igualmente e ignorar completamente todas as observações anteriores. Intuitivamente, os dados passados ​​devem ser descontados de forma mais gradual - por exemplo, a observação mais recente deve ter um pouco mais de peso do que o segundo mais recente, e o segundo mais recente deve ter um pouco mais de peso que o terceiro mais recente. em breve. O simples modelo de suavização exponencial (SES) faz isso. Seja 945 denotar uma constante de quotsmoothing (um número entre 0 e 1). Uma maneira de escrever o modelo é definir uma série L que representa o nível atual (ou seja, o valor médio local) da série, conforme estimado a partir dos dados até o presente. O valor de L no tempo t é computado recursivamente a partir de seu próprio valor anterior como este: Assim, o valor atual suavizado é uma interpolação entre o valor suavizado anterior e a observação atual, onde 945 controla a proximidade do valor interpolado com o mais recente. observação. A previsão para o próximo período é simplesmente o valor atual suavizado: equivalentemente, podemos expressar a próxima previsão diretamente em termos de previsões anteriores e observações anteriores, em qualquer uma das seguintes versões equivalentes. Na primeira versão, a previsão é uma interpolação entre previsão anterior e observação anterior: Na segunda versão, a próxima previsão é obtida ajustando a previsão anterior na direção do erro anterior por um valor fracionário 945. é o erro feito em tempo t. Na terceira versão, a previsão é uma média móvel exponencialmente ponderada (ou seja, com desconto) com fator de desconto 1- 945: A versão de interpolação da fórmula de previsão é a mais simples de usar se você estiver implementando o modelo em uma planilha: ela se encaixa em um célula única e contém referências de célula apontando para a previsão anterior, a observação anterior e a célula onde o valor de 945 é armazenado. Observe que, se 945 1, o modelo SES é equivalente a um modelo de passeio aleatório (sem crescimento). Se 945 0, o modelo SES é equivalente ao modelo da média, assumindo que o primeiro valor suavizado é definido como igual à média. (Retornar ao início da página.) A idade média dos dados na previsão de suavização exponencial simples é 1/945 em relação ao período para o qual a previsão é calculada. (Isso não deve ser óbvio, mas pode ser facilmente demonstrado pela avaliação de uma série infinita.) Assim, a previsão da média móvel simples tende a ficar para trás em pontos de virada em cerca de 1/945. Por exemplo, quando 945 0,5 o atraso é de 2 períodos quando 945 0,2 o atraso é de 5 períodos quando 945 0,1 o atraso é de 10 períodos e assim por diante. Para uma determinada idade média (ou seja, quantidade de defasagem), a previsão de suavização exponencial simples (SES) é um pouco superior à previsão de média móvel simples (SMA) porque coloca relativamente mais peso na observação mais recente - isto é. é ligeiramente mais sensível às mudanças que ocorreram no passado recente. Por exemplo, um modelo SMA com 9 termos e um modelo SES com 945 0.2 ambos têm uma idade média de 5 para os dados em suas previsões, mas o modelo SES coloca mais peso nos últimos 3 valores do que o modelo SMA e no mesmo tempo, ele não ignora inteiramente os valores acima de 9 períodos, como mostrado neste gráfico: Outra importante vantagem do modelo SES sobre o modelo SMA é que o modelo SES usa um parâmetro de suavização que é continuamente variável, para que possa ser facilmente otimizado usando um algoritmo quotsolverquot para minimizar o erro quadrático médio. O valor ideal de 945 no modelo SES para esta série é 0.2961, como mostrado aqui: A idade média dos dados nesta previsão é de 1 / 0.2961 3.4 períodos, o que é similar ao de um movimento simples de 6 termos. média. As previsões de longo prazo do modelo SES são uma linha reta horizontal. como no modelo SMA e no modelo de passeio aleatório sem crescimento. No entanto, observe que os intervalos de confiança calculados pela Statgraphics agora divergem de maneira razoável, e que eles são substancialmente mais estreitos do que os intervalos de confiança para o modelo de passeio aleatório. O modelo SES assume que a série é um pouco mais "previsível" do que o modelo de passeio aleatório. Um modelo SES é, na verdade, um caso especial de um modelo ARIMA. Portanto, a teoria estatística dos modelos ARIMA fornece uma base sólida para calcular os intervalos de confiança para o modelo SES. Em particular, um modelo SES é um modelo ARIMA com uma diferença não sazonal, um termo MA (1) e nenhum termo constante. também conhecido como um modelo quotARIMA (0,1,1) sem constante. O coeficiente MA (1) no modelo ARIMA corresponde à quantidade 1-945 no modelo SES. Por exemplo, se você ajustar um modelo ARIMA (0,1,1) sem constante para as séries aqui analisadas, o coeficiente estimado MA (1) será 0,7029, que é quase exatamente um menos 0,2961. É possível adicionar a suposição de uma tendência linear constante diferente de zero a um modelo SES. Para fazer isso, basta especificar um modelo ARIMA com uma diferença não-sazonal e um termo MA (1) com uma constante, ou seja, um modelo ARIMA (0,1,1) com constante. As previsões a longo prazo terão então uma tendência que é igual à tendência média observada ao longo de todo o período de estimativa. Você não pode fazer isso em conjunto com o ajuste sazonal, porque as opções de ajuste sazonal são desabilitadas quando o tipo de modelo é definido como ARIMA. No entanto, você pode adicionar uma tendência exponencial constante de longo prazo a um modelo de suavização exponencial simples (com ou sem ajuste sazonal) usando a opção de ajuste de inflação no procedimento Previsão. A taxa de "inflação" por período pode ser estimada como o coeficiente de inclinação em um modelo de tendência linear ajustado aos dados em conjunto com uma transformação logarítmica natural, ou pode ser baseado em outra informação independente sobre perspectivas de crescimento a longo prazo. . (Voltar ao topo da página) Browns Linear (ie double) Suavização exponencial Os modelos SMA e modelos SES assumem que não há tendência de nenhum tipo nos dados (o que é normalmente OK ou pelo menos não muito mau para 1- previsões antecipadas quando os dados são relativamente ruidosos), e elas podem ser modificadas para incorporar uma tendência linear constante como mostrado acima. E as tendências de curto prazo Se uma série exibe uma taxa variável de crescimento ou um padrão cíclico que se destaca claramente contra o ruído, e se há a necessidade de prever mais de um período à frente, então a estimativa de uma tendência local também pode ser um problema. O modelo de suavização exponencial simples pode ser generalizado para obter um modelo de suavização exponencial linear (LES) que calcula estimativas locais de nível e tendência. O modelo de tendência mais simples e variante no tempo é o modelo de suavização exponencial linear de Brown, que usa duas séries suavizadas diferentes que são centralizadas em diferentes pontos no tempo. A fórmula de previsão é baseada em uma extrapolação de uma linha através dos dois centros. (Uma versão mais sofisticada deste modelo, Holt8217s, é discutida abaixo.) A forma algébrica do modelo de suavização exponencial linear de Brown8217s, como o modelo de suavização exponencial simples, pode ser expressa em várias formas diferentes, mas equivalentes. A forma "padrão" deste modelo é geralmente expressa da seguinte forma: Seja S a série suavemente obtida pela aplicação da suavização exponencial simples à série Y. Ou seja, o valor de S no período t é dado por: (Lembre-se que, sob simples suavização exponencial, essa seria a previsão para Y no período t1.) Então, Squot denota a série suavizada duplamente obtida aplicando suavização exponencial simples (usando o mesmo 945) à série S: Finalmente, a previsão para Y tk. para qualquer kgt1, é dado por: Isto produz e 1 0 (isto é, trapaceie um pouco, e deixe a primeira previsão igual à primeira observação real), e e 2 Y 2 8211 Y 1. após o qual as previsões são geradas usando a equação acima. Isto produz os mesmos valores ajustados que a fórmula baseada em S e S se estes últimos foram iniciados usando S 1 S 1 Y 1. Esta versão do modelo é usada na próxima página que ilustra uma combinação de suavização exponencial com ajuste sazonal. Holt8217s Linear Exponential Smoothing O modelo Brown8217s LES calcula as estimativas locais de nível e tendência suavizando os dados recentes, mas o fato de fazer isso com um único parâmetro de suavização impõe uma restrição nos padrões de dados que ele pode ajustar: o nível e a tendência não é permitido variar em taxas independentes. O modelo LES de Holt8217s resolve esse problema incluindo duas constantes de suavização, uma para o nível e outra para a tendência. A qualquer momento t, como no modelo Brown8217s, existe uma estimativa L t do nível local e uma estimativa T t da tendência local. Aqui eles são calculados recursivamente a partir do valor de Y observado no tempo t e as estimativas anteriores do nível e da tendência por duas equações que aplicam suavização exponencial a elas separadamente. Se o nível e tendência estimados no tempo t-1 são L t82091 e T t-1. respectivamente, então a previsão para Y tshy que teria sido feita no tempo t-1 é igual a L t-1 T t-1. Quando o valor real é observado, a estimativa atualizada do nível é computada de forma recursiva pela interpolação entre Y tshy e sua previsão, L t-1 T t-1, usando pesos de 945 e 1- 945. A mudança no nível estimado, ou seja, L t 8209 L t82091. pode ser interpretado como uma medida ruidosa da tendência no tempo t. A estimativa atualizada da tendência é então calculada recursivamente pela interpolação entre L t 8209 L t82091 e a estimativa anterior da tendência, T t-1. usando pesos de 946 e 1-946: A interpretação da constante de suavização de tendência 946 é análoga àquela da constante de suavização de nível 945. Modelos com valores pequenos de 946 assumem que a tendência muda apenas muito lentamente com o tempo, enquanto modelos com maiores 946 assumem que está mudando mais rapidamente. Um modelo com um grande 946 acredita que o futuro distante é muito incerto, porque os erros na estimativa de tendência tornam-se bastante importantes na previsão de mais de um período à frente. (Retornar ao início da página.) As constantes de suavização 945 e 946 podem ser estimadas da maneira usual minimizando o erro quadrático médio das previsões de 1 passo à frente. Quando isso é feito na Statgraphics, as estimativas são de 945 0,3048 e 946 0,008. O valor muito pequeno de 946 significa que o modelo assume muito pouca mudança na tendência de um período para o outro, então basicamente esse modelo está tentando estimar uma tendência de longo prazo. Por analogia com a noção da idade média dos dados que é usada na estimativa do nível local da série, a idade média dos dados que é usada na estimativa da tendência local é proporcional a 1/946, embora não exatamente igual a isto. Neste caso, isto é 1 / 0,006 125. Isto não é um número muito preciso na medida em que a precisão da estimativa de 946 não é realmente 3 casas decimais, mas é da mesma ordem geral de magnitude que o tamanho da amostra de 100 Portanto, esse modelo está calculando a média de muito da história na estimativa da tendência. O gráfico de previsão abaixo mostra que o modelo LES estima uma tendência local ligeiramente maior no final da série do que a tendência constante estimada no modelo SEStrend. Além disso, o valor estimado de 945 é quase idêntico ao obtido pelo ajuste do modelo SES com ou sem tendência, portanto, esse é quase o mesmo modelo. Agora, essas parecem previsões razoáveis ​​para um modelo que deveria estar estimando uma tendência local? Se você planeja esse gráfico, parece que a tendência local diminuiu no final da série O que aconteceu Os parâmetros deste modelo foram estimados minimizando o erro quadrado das previsões em 1 passo à frente, e não as previsões a longo prazo, caso em que a tendência não faz muita diferença. Se tudo o que você está vendo são erros de 1 passo à frente, você não está vendo a imagem maior das tendências em (digamos) 10 ou 20 períodos. A fim de obter este modelo mais em sintonia com a extrapolação dos dados do nosso globo ocular, podemos ajustar manualmente a constante de suavização de tendência para que ela use uma linha de base mais curta para a estimativa de tendência. Por exemplo, se escolhermos definir 946 0,1, a idade média dos dados usados ​​na estimativa da tendência local é de 10 períodos, o que significa que estamos calculando a média dos últimos 20 períodos. Aqui está o que o gráfico de previsão parece se definirmos 946 0.1 enquanto mantemos 945 0.3. Isto parece intuitivamente razoável para esta série, embora seja provavelmente perigoso extrapolar esta tendência mais do que 10 períodos no futuro. E as estatísticas de erro Aqui está uma comparação de modelo para os dois modelos mostrados acima, bem como três modelos SES. O valor ideal de 945 para o modelo SES é de aproximadamente 0,3, mas resultados semelhantes (com uma maior ou menor responsividade, respectivamente) são obtidos com 0,5 e 0,2. (A) exp. Linear de Holts alisamento com alfa 0,3048 e beta 0,008 (B) Holts linear exp. alisamento com alpha 0.3 e beta 0.1 (C) Alisamento exponencial simples com alpha 0.5 (D) Suavização exponencial simples com alpha 0.3 (E) Suavização exponencial simples com alpha 0.2 Suas estatísticas são quase idênticas, então nós realmente podemos fazer a escolha com base de erros de previsão em um passo à frente na amostra de dados. Temos que recorrer a outras considerações. Se acreditamos firmemente que faz sentido basear a estimativa de tendência atual no que aconteceu nos últimos 20 períodos, podemos fazer um caso para o modelo LES com 945 0.3 e 946 0.1. Se quisermos sermos agnósticos quanto à existência de uma tendência local, então um dos modelos do SES poderá ser mais fácil de explicar e também fornecerá mais previsões do meio do caminho para os próximos 5 ou 10 períodos. (Voltar ao topo da página.) Qual tipo de extrapolação de tendência é melhor: horizontal ou linear Evidências empíricas sugerem que, se os dados já foram ajustados (se necessário) para a inflação, então pode ser imprudente extrapolar o linear de curto prazo tendências muito longe no futuro. Tendências evidentes hoje podem afrouxar no futuro devido a causas variadas, como obsolescência do produto, aumento da concorrência e desacelerações cíclicas ou retomadas em uma indústria. Por essa razão, a suavização exponencial simples geralmente tem melhor desempenho fora da amostra do que seria esperado, apesar de sua extrapolação de tendência horizontal cotativa. Modificações de tendências amortecidas do modelo de suavização exponencial linear também são frequentemente usadas na prática para introduzir uma nota de conservadorismo em suas projeções de tendência. O modelo LES de tendência amortecida pode ser implementado como um caso especial de um modelo ARIMA, em particular, um modelo ARIMA (1,1,2). É possível calcular intervalos de confiança em torno de previsões de longo prazo produzidas por modelos de suavização exponencial, considerando-os como casos especiais de modelos ARIMA. (Cuidado: nem todos os softwares calculam intervalos de confiança para esses modelos corretamente.) A largura dos intervalos de confiança depende (i) do erro RMS do modelo, (ii) do tipo de suavização (simples ou linear) (iii) do valor (s) da (s) constante (s) de suavização e (iv) o número de períodos à frente que você está prevendo. Em geral, os intervalos se espalham mais rápido à medida que o 945 se torna maior no modelo SES e eles se espalham muito mais rápido quando a suavização linear é usada. Este tópico é discutido mais adiante na seção de modelos ARIMA das notas. (Voltar ao topo da página.)

No comments:

Post a Comment