¿Cómo calcular la correlación cruzada en R?

Actualizado por ultima vez el 24 de noviembre de 2022, por Dereck Amesquita.

La correlación cruzada es una forma de medir el grado de similitud entre una serie de tiempo y una versión retrasada de otra serie de tiempo. Este tipo de correlación es útil para calcular porque nos puede decir si los valores de una serie de tiempo son predictivos de los valores futuros de otra serie de tiempo. En otras palabras, puede decirnos si una serie de tiempo es un indicador adelantado de otra serie de tiempo.

Usos de la correlación cruzada (Cross Correlation)

Este tipo de correlación se utiliza en muchos campos diferentes, que incluyen:

Economía: el índice de confianza del consumidor (ICC) se considera un indicador adelantado del producto interno bruto (PIB) de un país. Por ejemplo, si el CCI es alto durante un mes determinado, es probable que el PIB sea mayor x meses después.

Negocios: el gasto en marketing a menudo se considera un indicador principal de los ingresos futuros de las empresas. Por ejemplo, si una empresa gasta una cantidad de dinero anormalmente alta en marketing durante un trimestre, se espera que los ingresos totales sean altos x trimestres después.

Biología: Se considera que la contaminación total del océano es un indicador principal de la población de una determinada especie de tortuga. Por ejemplo, si la contaminación es mayor durante un año determinado, se espera que la población total de tortugas sea menor x años después.

El siguiente ejemplo muestra cómo calcular la correlación cruzada entre dos series de tiempo en R.

¿Cómo calcular la correlación cruzada en R?

Suponga que tenemos la siguiente serie de tiempo en R que muestra el gasto total en marketing (en miles) para una determinada empresa junto con los ingresos totales (en miles) durante 12 meses consecutivos:

# Definimos nuestros datos
gmarketing <- c(3, 4, 5, 5, 7, 9, 13, 15, 12, 10, 8, 8)
ingresos <- c(21, 19, 22, 24, 25, 29, 30, 34, 37, 40, 35, 30)

Podemos calcular la correlación cruzada para cada retraso entre las dos series de tiempo usando la función ccf () de la siguiente manera:

#calcular la correlación cruzada 
ccf (gmarketing, ingresos)

Correlación cruzada en R

Este gráfico muestra la correlación entre las dos series de tiempo en varios rezagos.

Para mostrar los valores de correlación reales, podemos usar la siguiente sintaxis:

# Mostrar los valores de la correlación cruzada
print(ccf(gmarketing, Ingresos))

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

A continuación, se explica cómo interpretar esta salida:

  • La correlación cruzada en el rezago 0 es 0,771 .
  • La correlación cruzada en el rezago 1 es 0,462 .
  • La correlación cruzada en el retraso 2 es 0,194 .
  • La correlación cruzada en el rezago 3 es -0,061 .

Y así.

Observe que la correlación entre las dos series de tiempo es bastante positiva dentro de los rezagos -2 a 2, lo que nos dice que el gasto en marketing durante un mes determinado es bastante predictivo de los ingresos uno y dos meses después.

Esto tiene sentido intuitivamente: esperaríamos que un alto gasto en marketing durante un mes determinado prediga un aumento de los ingresos durante los próximos dos meses.

Recursos adicionales

Cómo calcular la autocorrelación en R
Cómo calcular la correlación parcial en R
Cómo calcular la correlación móvil en R

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

I’m a Bachelor of Economics gratuaded from the National University of San Agustin. I have experience in Python, R and other languages with aplications in Finance or Econometrics, I also have knowledge of statistics and econometrics. If you need help on some issues you can write to me.

Deja un comentario

En el campo de la estadística, la aleatorización se refiere al acto de asignar aleatoriamente a los sujetos de un…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!