Thursday 27 July 2017

Moving Average Ggplot2


Não tenho certeza se esta é uma questão de programação ou não. Se eu tiver os dados abaixo, o que produz um gráfico espetado, e Id gostaria de produzir um ligeiramente alisado usando o ggplot2, como faço isso com mais eletricidade. Os métodos habituais de suavização removem muita informação. Uma maneira que eu considere é interpolar dois pontos de dados extras entre o conjunto atual e, em seguida, ter uma média móvel de 2 períodos ou algo assim. Isso parece muito trabalho para codificar manualmente, então eu dou uma resposta que automatiza isso elegantemente como último recurso. Como você pode ver isso é spiky e visualmente pouco atraente E isso remove muita informação do gráfico Você pode tentar um polinômio. Como a variável do eixo x tem 12 valores exclusivos, você pode usar polinômios até o 11º grau. Além disso, você deve usar uma escala contínua para o eixo x para alcançar uma curva suave. Heres um exemplo de um polinômio de 8ª ordem: Aqui, o método lm significa que um modelo linear é usado. O segundo argumento da função poly especifica o grau. Tenho uma série de séries temporais no pacote ggplot2 e realizei a média móvel e gostaria de adicionar o resultado da média móvel à trama das séries temporais. 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 a apresentação da série temporal: Amostra do gráfico médio móvel Amostra dos resultados esperados O O desafio é que os dados da série temporal obtidos a partir do conjunto de dados, que incluem timestamps e temperatura, mas os dados médios móveis incluem apenas a coluna média e não os timestamps e a montagem desses dois podem causar inconsistência.

No comments:

Post a Comment