Mudança média ggplot2


Eu tenho uma série de séries temporais no pacote ggplot2 e eu executei a média móvel e gostaria de adicionar o resultado da média móvel ao enredo 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 apresentação de séries temporais: Amostra de gráfico médio móvel Amostra de resultados esperados O O desafio é que os dados da série temporal são obtidos a partir do conjunto de dados, que inclui timestamps e temperatura, mas os dados médios em movimento incluem apenas a coluna média e não os timestamps e a instalação desses dois podem causar inconsistência. Não há 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 gosto de produzir um ligeiramente alisado usando o ggplot2, como faço isso de forma mais elegante. Os métodos habituais de suavização removem muita informação. Uma maneira que eu considere é interpolar dois pontos de dados extra entre o conjunto atual e, em seguida, tomar uma média móvel de 2 períodos ou algo assim. 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 muitas informações 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. Este é 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 degree. Moving Averages in R Para o meu melhor conhecimento, R não possui uma função integrada para calcular as médias móveis. Usando a função de filtro, no entanto, podemos escrever uma função curta para médias móveis: podemos então usar a função em qualquer dado: mav (dados) ou mav (dados, 11) se quisermos especificar um número diferente de pontos de dados Do que o traçado padrão 5 funciona como esperado: plot (mav (data)). Além do número de pontos de dados sobre os quais a média, também podemos alterar o argumento lateral das funções de filtro: sides2 usa ambos os lados, sides1 usa apenas valores passados. Compartilhe isto: Publicar navegação Comentar navegação Comentar navegação

Comments

Popular Posts