Autocorrelación en NumPy
En ciencia de datos, las variables de un conjunto de datos pueden estar relacionadas entre sí de una forma u otra. La relación puede ser directamente proporcional o indirectamente proporcional. Un simple cambio en una variable podría cambiar alguna variable levemente o tal vez drásticamente. Este fenómeno se conoce como correlación.
La autocorrelación se refiere a una correlación entre un conjunto de señales de tiempo con una versión obsoleta o antigua de sí mismo. Los dos conjuntos de señales de tiempo tienen alguna diferencia de tiempo entre ellos.
Calcular la autocorrelación en NumPy
La robusta biblioteca de ciencia de datos, NumPy, tiene una función incorporada, correlate()
, que se puede utilizar para encontrar una correlación entre dos secuencias 1D. Acepta dos matrices 1D y un tipo de modo.
El tipo de modo puede ser valid
, same
y full
, y este parámetro es opcional. El valor predeterminado de este parámetro es valid
.
Para obtener más información sobre esta función, consulte los documentos oficiales
import numpy
myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
myArray = numpy.array(myArray)
result = numpy.correlate(myArray, myArray, mode="full")
result = result[result.size // 2 :]
print(result)
Producción :
[385 330 276 224 175 130 90 56 29 10]
En el código anterior, primero definimos una lista de números y luego la convertimos en un array NumPy usando el método array()
de NumPy. Luego llamamos a nuestro método de interés correlate()
para calcular la autocorrelación de nuestros datos. Estamos usando el modo full
para los cálculos.
Los resultados se almacenan en una variable result
y luego se dividen. La parte de corte es crucial ya que el método correlate()
devuelve un array de tamaño 2 * longitud de nuestra matriz - 1
, y los valores de nuestro interés se encuentran en la segunda mitad, es decir, [(result.size // 2), result.size)
.