Monday 26 June 2017

Mathematica Moving Average Plot


Eu tenho um enredo de série de tempo no pacote ggplot2 e eu executei a média móvel e gostaria de adicionar o resultado da média móvel para o enredo da série de tempo. Exemplo de conjunto de dados (p31): ambtemp dt -1.14 2007-09-29 00:01:57 -1.12 2007-09-29 00:03:57 -1.33 2007-09-29 00:05:57 -1.44 2007 -09-29 00:07:57 -1.54 2007-09-29 00:09:57 -1.29 2007-09-29 00:11:57 Código aplicado para apresentação de séries temporais: Amostra do gráfico da média móvel Amostra dos resultados esperados A Desafio é que os dados da série de tempo ovbtained de conjunto de dados que inclui carimbos de data e temperatura, mas os dados de média móvel incluem apenas a coluna média e não os carimbos de data e montagem e estes dois podem causar inconsistência. Eu tenho uma lista de pontos de dados. meus dados. Quando eu traçá-los, a curva é irregulares. Eu quero alisar a curva e preservar os dois cantos afiados. Este é um gráfico dos dados brutos. Eu tentei usar filtros de baixa passagem por uma semana, mas a curva ainda não é muito bom. Minha curva tem muitos ziguezagues. O seguinte é minha função de filtro passa-baixa. Depois de avaliar o código acima, eu posso suavizar as três partes da curva em ziguezague separadamente. Então eu combiná-los. Como eu disse, a curva ainda doesnt olhar bom o suficiente. Algumas partes são alteradas de forma inadequada O que eu quero é algo como isto, que foi obtido por fazer um desenho :). Eu só quero usar alguns truques de enredo Mathematica ou alguma outra abordagem que me dê a curva suave que eu estou procurando. Perguntou Oct 10 14 at 13:04 Apenas um comentário alargado para começar. Vou tentar acompanhar com algum código mais tarde hoje ou durante o fim de semana. Isto soa como um trabalho perfeito para um filtro de Laguerre e muito provável um adaptável, por exemplo. Laguerre Filtros Uma Introdução. Você pode encontrar muitas informações sobre este online. O Laguerre Filter suaviza um conjunto de dados baseado em polinômios de Laguerre. Seu primeiro termo, uma média móvel exponencial, seguido de certos termos de feedback. O alisamento é controlado por um fator alfa (o alfa para a média móvel exponencial) e também prejudica os termos adicionais. Alfa pode variar de 1 para seguir os dados quase exatamente para 0 para uma resposta muito lenta. O resultado dá a média ponderada dos valores passados. Um filtro laguerre adaptativo introduz um fator alfa variável baseado em quão bem o filtro rastreia os valores de N passados. Isso deve permitir que o filtro para acompanhar os dados bastante estreitamente como ele muda de caráter ao longo do span do eixo x. A função LaguerreL de Mathematicas pode tornar isso bastante fácil. Da documentação: Vou tentar postar algum código mais tarde. Oi, Jagra Obrigado por seu interessante também vou tentar Eu estou pensando que MovingAverage pode fazer este trabalho perfeitamente se pudermos controlar o peso para fazer a média na parte oscilante e seguir a minha curva perto Os dois pontos de inversão. Como você pode ver, com o meu LowpassFilter ou GaussianFilter kale39s. Há uma mudança inadequada na parte direita da curva, onde a curva original é lisa ou suficientemente boa. Em primeiro lugar, uma função de filtragem: Esta função aplica um filtro gaussiano a todos os dados maiores que um determinado valor de y. Nós podemos usá-lo assim: Para jogar com os valores, podemos construir um programa Manipulate simples: Eu acho que o WienerFilter funciona melhor: respondido Oct 10 14 at 13:52 Graças kale Como você pode ver, com o meu LowpassFilter ou seu GaussianFilter. Há uma mudança inadequada na parte direita da curva, onde a curva original é lisa ou suficientemente boa. Acho que o seu WienerFilter é relativamente bom. Mas ainda podemos melhorar. Você poderia pls postar seu código de WienerFilter ndash 10 de outubro de 14 às 14:21 Ixy Basta substituir GaussianFilter com WeinerFilter. Ndash kale Oct 10 14 at 14:22 Sua resposta 2017 Stack Exchange, IncEu estou jogando em Python um pouco mais, e eu encontrei um livro limpo com exemplos. Um dos exemplos é traçar alguns dados. Eu tenho um arquivo. txt com duas colunas e eu tenho os dados. Eu traçou os dados apenas multa, mas no exercício diz: Modifique seu programa mais para calcular e traçar a média running dos dados, definida por: onde r5 neste caso (eo yk é a segunda coluna no arquivo de dados) . Faça com que o programa trace os dados originais e a média em execução no mesmo gráfico. Até agora eu tenho isso: Então, como eu calculo a soma Em Mathematica sua simples desde a sua manipulação simbólica (Sumi, por exemplo), mas como calcular a soma em python que leva a cada dez pontos nos dados e médias, e faz isso Até o final dos pontos eu olhei para o livro, mas não encontrei nada que poderia explicar isso: heltonbikers código fez o truque: D Muito obrigado :) Há um problema com a resposta aceita. Eu acho que precisamos usar válido em vez de mesmo aqui - return numpy. convolve (intervalo, janela, mesmo). Como exemplo, teste o MA deste conjunto de dados 1,5,7,2,6,7,8,2,2,7,8,3,7,3,7,3,15,6 - o resultado Deve ser 4.2.5.4,6.0,5.0,5.0,5.2,5.4,4.4,5.4,5.6,5.6,4.6,7.0,6.8. Mas tendo o mesmo nos dá uma saída incorreta de 2.6.3.0,4.2,5.4,6.0,5.0,5.0,5.2,5.4,4.4,5.4,5.6,5.6, 4.6,7.0,6.8,6.2,4.8 Código enferrujado para tentar isso -: Tente isso com amplificador válido mesmo e ver se a matemática faz sentido. Respondeu Oct 29 14 at 4:27 Haven39t tentou isso, mas I39ll olhar para ele, It39s sido um tempo desde I39ve codificado em Python. Ndash dingod Oct 29 14 at 7:07 dingod Por que don39t você rapidamente tentar isso com o código enferrujado (eo conjunto de dados de exemplo (como uma lista simples), eu postei. Para algumas pessoas preguiçoso (como eu tinha sido no início) - suas máscaras para fora o fato de que a média móvel é incorreta. Probably você deve considerar a edição de sua resposta original. Eu tentei isso ontem e verificação dupla me salvou cara de olhar ruim em relatar ao nível Cxo. Tudo o que você precisa fazer, é tentar Sua mesma média móvel uma vez com quotvalidquot e outro tempo com quotsamequot - e uma vez que você está convencido me dar algum amor (aka-up-vote) ndash ekta 29 out at 7:16

No comments:

Post a Comment