“Las correlaciones rodantes se obtienen calculando las correlaciones entre dos series de tiempo usando una ventana rodante. Podemos identificar si dos series de tiempo correlacionadas se divergen entre sí con el tiempo utilizando correlaciones rodantes."
Encontrar la correlación continua en un marco de datos PANDAS se puede realizar utilizando el "DataFrame_Object.laminación().método corr () ". En esta ilustración, aprenderemos a calcular la correlación rodante en un marco de datos de pandas con la técnica básica.
Sintaxis:
En dos marcos de datos:
DataFrame_Object1.Rolling (ancho).Corr (dataFrame_Object2)
(O)
En dos columnas en un marco de datos:
DataFrame_Object ['columna1'].Rolling (ancho).Corr (dataFrame_Object ['columna2'])
Lo importante para recordar al especificar los valores para las columnas es que la longitud de los valores para todas las columnas que están contenidas en el marco de datos deben ser iguales. Si ponemos una longitud desigual de valores, el programa no se ejecutará.
Ejemplo 1: Correlate la columna1 vs columna2
Creemos un marco de datos con 3 columnas y 10 filas y correlacionemos la cantidad con la columna de costo durante 2 días.
importación de pandas
# Crea Pandas DataFrame para calcular la correlación
# con 3 columnas.
Análisis = pandas.DataFrame ('Producto': [11,22,33,44,55,66,77,88,99,110],
'Cantidad': [200,455,800,900,900,122,400,700,80,500],
'Costo': [2400,4500,5090,600,8000,7800,1100,2233,500,1100])
# Correlacione la cantidad con la columna de costos durante 2 días.
Analytics ['correlacionado'] = Análisis ['Cantidad'].Rolling (2).Corr (Analytics ['Costo'])
Imprimir (Análisis)
Producción:
Costo de cantidad del producto correlacionada
0 11 200 2400 nan
1 22 455 4500 1.0
2 33 800 5090 1.0
3 44 900 600 -1.0
4 55 900 8000 nan
5 66 122 7800 1.0
6 77 400 1100 -1.0
7 88 700 2233 1.0
8 99 80 500 1.0
9 110 500 1100 1.0
La correlación durante 2 días, 200 a 400, es Nan, etc., en la que se colocan en la columna "correlacionada".
Ejemplo 2: Visualización
Creemos un marco de datos con 3 columnas y 5 filas y correlacionemos las "ventas" vs "product_likes".
Use el marco para ver la correlación en un gráfico y obtenga el coeficiente de correlación de Pearson.
importación de pandas
Importar mar
De las estadísticas de importación escasas
# Crea Pandas DataFrame para calcular la correlación
# con 3 columnas.
Análisis = pandas.DataFrame ('Nombre del producto': ['TV', 'Steel', 'Plastic', 'Leather', 'Otros'],
'Product_likes': [100,20,45,67,9],
'Ventas': [2300,890,1400,1800,200])
Imprimir (Análisis)
imprimir()
# Ver el coeficiente de correlación
Imprimir (estadísticas.Pearsonr (Analytics ['Ventas'], Analytics ['Product_likes']))
imprimir()
# Ahora vea las ventas de correlación frente a Product_Likes
marino.lmplot (x = "ventas", y = "product_likes", data = Analytics)
Producción:
Nombre del producto Product_likes Ventas
0 TV 100 2300
1 acero 20 890
2 plástico 45 1400
3 cuero 67 1800
4 otros 9 200
(0.9704208315867275, 0.006079620327457793)
Ahora, puede ver la correlación entre ventas y productos_likes.
Ahora obtengamos la correlación rodante para estas dos columnas durante 3 días.
Código por ejemplo 2:
# Correlacione las ventas con la columna Product_Likes durante 5 días.
Analytics ['correlacionado'] = Analytics ['Ventas'].Rolling (3).Corr (Analytics ['Product_likes'])
Imprimir (Análisis)
Producción:
Nombre del producto Product_likes Ventas correlacionadas
0 TV 100 2300 nan
1 acero 20 890 nan
2 plástico 45 1400 0.998496
3 cuero 67 1800 0.999461
4 otros 9 200 0.989855
Puede ver que estas dos columnas están altamente correlacionadas.
Ejemplo 3: diferentes marcos de datos
Creemos 2 marcos de datos con 1 columna cada una y correlacionemos.
importación de pandas
Importar mar
De las estadísticas de importación escasas
Analytics1 = pandas.DataFrame ('Ventas': [2300,890,1400,1800,200,2000,340,56,78,0])
Analytics2 = pandas.DataFrame ('Product_likes': [100,20,45,67,9,90,8,1,3,0])
# Consulte el coeficiente de correlación para los dos marcos de datos anteriores
Imprimir (estadísticas.Pearsonr (Analytics1 ['Ventas'], Analytics2 ['Product_likes']))
# Correlacione las ventas con Product_Likes DataFrame
Imprimir (Analytics1 ['Ventas'].Rolling (5).Corr (Analytics2 ['Product_likes']))
Producción:
(0.9806646612423284, 5.97410226154508e-07)
0 nan
1 nan
2 nan
3 nan
4 0.970421
5 0.956484
6 0.976242
7 0.990068
8 0.996854
9 0.996954
dtype: float64
Puede ver que estas dos columnas están altamente correlacionadas.
Conclusión
Esta discusión gira en torno a calcular la ventana rodante y luego encontrar la correlación de un marco de datos de pandas. Para poner en práctica ambos conceptos, Pandas ofrece un práctico "DataFrame.laminación().método corr () ". Para la comodidad del alumno para comprender mejor el proceso, hemos dado tres ejemplos prácticamente implementados junto con la visualización y el módulo Searborn. Cada ejemplo está prolongado con una explicación detallada de los pasos. Puede aplicarlo a diferentes columnas en un solo marcado de datos o puede usar las mismas columnas de diferentes marcos de datos; Todo depende de sus requisitos.