Como calcular a correlação cruzada em r
A correlação cruzada é uma forma de medir o grau de similaridade entre uma série temporal e uma versão defasada de outra série temporal.
Esse tipo de correlação é útil para calcular porque pode nos dizer se os valores em uma série temporal são preditivos de valores futuros em outra série temporal. Em outras palavras, pode nos dizer se uma série temporal é um indicador avançado para outra série temporal.
Este tipo de correlação é usado em muitos campos diferentes, incluindo:
Economia: O Índice de Confiança do Consumidor (ICC) é considerado um indicador importante do produto interno bruto (PIB) de um país. Por exemplo, se o ICC for elevado num determinado mês, o PIB provavelmente será superior x meses depois.
Empresas: os gastos com marketing são frequentemente considerados um indicador importante das receitas futuras dos negócios. Por exemplo, se uma empresa gasta uma quantia excepcionalmente alta de dinheiro em marketing em um trimestre, então a receita total deverá ser alta x trimestres depois.
Biologia: A poluição total dos oceanos é considerada um indicador importante da população de uma determinada espécie de tartaruga. Por exemplo, se a poluição for maior num determinado ano, espera-se que a população total de tartarugas diminua x anos mais tarde.
O exemplo a seguir mostra como calcular a correlação cruzada entre duas séries temporais em R.
Exemplo: Como calcular a correlação cruzada em R
Suponha que temos a seguinte série temporal em R que mostra o gasto total com marketing (em milhares) de uma determinada empresa, bem como a receita total (em milhares) durante 12 meses consecutivos:
#define data
marketing <- c(3, 4, 5, 5, 7, 9, 13, 15, 12, 10, 8, 8)
revenue <- c(21, 19, 22, 24, 25, 29, 30, 34, 37, 40, 35, 30)
Podemos calcular a correlação cruzada para cada defasagem entre as duas séries temporais usando a função ccf() da seguinte forma:
#calculate cross correlation
ccf(marketing, revenue)
Este gráfico mostra a correlação entre as duas séries temporais em defasagens diferentes.
Para exibir os valores reais de correlação, podemos usar a seguinte sintaxe:
#display cross correlation values print (ccf(marketing, revenue)) Autocorrelations of series 'X', by lag -7 -6 -5 -4 -3 -2 -1 0 1 2 3 -0.430 -0.351 -0.190 0.123 0.489 0.755 0.868 0.771 0.462 0.194 -0.061 4 5 6 7 -0.282 -0.445 -0.492 -0.358
Veja como interpretar esta saída:
- A correlação cruzada no atraso 0 é 0,771 .
- A correlação cruzada no atraso 1 é 0,462 .
- A correlação cruzada no atraso 2 é 0,194 .
- A correlação cruzada no atraso 3 é -0,061 .
E assim por diante.
Observe que a correlação entre as duas séries temporais é bastante positiva com defasagens de -2 a 2, o que nos diz que os gastos com marketing em um determinado mês são bastante preditivos da receita um e dois meses depois.
Isso faz sentido intuitivamente: esperamos que altos gastos com marketing em um determinado mês sejam preditivos de aumento de receita nos próximos dois meses.
Recursos adicionais
Como calcular a autocorrelação em R
Como calcular a correlação parcial em R
Como calcular a correlação deslizante em R