Pular para o conteúdo principal

Autocorrelação em R

Pratique autocorrelação em R usando o material do curso Introduction to Time Series Analysis da DataCamp.
· 6 min leer

Explore com IA

Se você quer fazer nosso curso Introduction to Time Series Analysis in R, aqui está o link.

Calculando autocorrelações

Autocorrelações, ou correlações defasadas, são usadas para avaliar se uma série temporal depende do seu passado. Para uma série temporal x de comprimento n, consideramos os n-1 pares de observações separados por uma unidade de tempo. O primeiro par é (x[2],x[1]), o próximo é (x[3],x[2]). Cada par tem a forma (x[t],x[t-1]), onde t é o índice da observação, variando de 2 até n neste caso. A autocorrelação de defasagem 1 de x pode ser estimada como a correlação amostral desses pares (x[t], x[t-1]).

De modo geral, podemos criar manualmente esses pares de observações. Primeiro, crie dois vetores, x_t0 e x_t1, cada um com comprimento n-1, de forma que as linhas correspondam aos pares (x[t], x[t-1]). Depois, aplique a função cor() para estimar a autocorrelação de defasagem 1.

Felizmente, o comando acf() oferece um atalho. Aplicar acf(..., lag.max = 1, plot = FALSE) a uma série x calcula automaticamente a autocorrelação de defasagem 1.

Por fim, observe que as duas estimativas diferem ligeiramente porque usam escalas diferentes no cálculo da covariância amostral, 1/(n-1) versus 1/n. Embora a segunda gere uma estimativa viesada, ela é preferida em análise de séries temporais, e as estimativas de autocorrelação resultantes diferem apenas por um fator de (n-1)/n.

Neste exercício, você vai praticar tanto o cálculo manual quanto o automático da autocorrelação de defasagem 1. A série temporal x e seu comprimento n (150) já foram carregados. A série está no gráfico à direita.

Instruções

  • Crie dois vetores, x_t0 e x_t1, cada um com comprimento n-1, de forma que as linhas correspondam aos pares (x[t], x[t-1]).
  • Confirme que x_t0 e x_t1 são pares (x[t], x[t-1]) usando o código pré-escrito.
  • Use plot() para ver o gráfico de dispersão de x_t0 e x_t1.
  • Use cor() para ver a correlação entre x_t0 e x_t1.
  • Use acf() com x para calcular automaticamente a autocorrelação de defasagem 1. Defina o argumento lag.max como 1 para produzir uma única defasagem e defina o argumento plot como FALSE.
  • Confirme que o fator de diferença é (n-1)/n usando o código pré-escrito.

Se isso fez sentido, siga para o próximo exercício! Se não, aqui vai um vídeo de visão geral.

Vídeo de visão geral sobre autocorrelação

A função de autocorrelação

É possível estimar autocorrelações em várias defasagens para avaliar melhor como uma série temporal se relaciona com seu passado. Normalmente, nos interessa mais como a série se relaciona com o passado mais recente.

A função acf(..., lag.max = ..., plot = FALSE) estima todas as autocorrelações de 0, 1, 2, ... até o valor especificado pelo argumento lag.max. No exercício anterior, você focou na autocorrelação de defasagem 1 definindo o argumento lag.max como 1.

Neste exercício, você vai explorar mais aplicações do comando acf(). Mais uma vez, a série temporal x já foi carregada e está no gráfico à direita.

Instruções

  • Use acf() para visualizar as autocorrelações da série x de 0 a 10. Defina o argumento lag.max como 10 e mantenha o argumento plot como FALSE.
  • Copie e cole a estimativa de autocorrelação (ACF) na defasagem 10.
  • Copie e cole a estimativa de autocorrelação (ACF) na defasagem 5.

Visualizando a função de autocorrelação

Estimar a função de autocorrelação (ACF) em várias defasagens permite avaliar como uma série temporal x se relaciona com seu passado. As estimativas numéricas são importantes para cálculos detalhados, mas também é útil visualizar a ACF como função da defasagem.

Na verdade, o comando acf() produz um gráfico por padrão. Ele também escolhe automaticamente um valor padrão para lag.max, o número máximo de defasagens a serem exibidas.

Três séries temporais x, y e z foram carregadas no seu ambiente R e estão plotadas à direita. A série temporal x mostra forte persistência, ou seja, o valor atual está relativamente próximo dos que o antecedem. A série temporal y apresenta um padrão periódico com ciclo de aproximadamente quatro observações, o que significa que o valor atual está relativamente próximo da observação de quatro passos atrás. A série temporal z não exibe um padrão claro.

Neste exercício, você vai plotar a função de autocorrelação estimada para cada série. Nos gráficos produzidos por acf(), a defasagem de cada estimativa aparece no eixo horizontal e cada autocorrelação é indicada pela altura das barras verticais. Lembre-se de que a ACF na defasagem 0 é sempre 1.

Por fim, cada gráfico da ACF inclui duas linhas azuis, horizontais e tracejadas, que representam intervalos de confiança de 95% por defasagem, centrados em zero. Eles servem para determinar a significância estatística de uma estimativa de autocorrelação em determinada defasagem em relação ao valor nulo zero, isto é, ausência de autocorrelação naquela defasagem.

Instruções

Use três chamadas da função acf() para exibir as ACFs estimadas de cada uma das três séries (x, y e z). Não é necessário especificar argumentos adicionais nas chamadas de acf().


Se você quiser aprender mais com este curso, aqui está o link.

Confira nosso Time Series Analysis using R: Tutorial.

Temas

Relacionado

Tutorial

Tutorial de regressão linear no R