“As correlações rolantes são obtidas calculando as correlações entre duas séries temporais usando uma janela rolante. Podemos identificar se duas séries temporais correlacionadas divergem umas das outras ao longo do tempo usando correlações de rolamento.”
Encontrar a correlação rolante em um quadro de dados de pandas pode ser feita usando o “DataFrame_Object.Rolling ().CORR () ”Método. Nesta ilustração, aprenderemos a calcular a correlação de rolamento em um quadro de dados de pandas com a técnica básica.
Sintaxe:
Em dois dados de dados:
Dataframe_object1.Rolling (largura).corr (dataframe_object2)
(OU)
Em duas colunas em um DataFrame:
DataFrame_Object ['Columm1'].Rolling (largura).corr (dataframe_object ['colun2']))
O importante a lembrar ao especificar os valores para as colunas é que o comprimento dos valores para todas as colunas que estão contidas no quadro de dados deve ter que ser igual. Se colocarmos uma duração desigual de valores, o programa não será executado.
Exemplo 1: Correlato Column1 vs Columl2
Vamos criar um quadro de dados com 3 colunas e 10 linhas e correlacionar a quantidade com a coluna de custo por 2 dias.
Importar pandas
# Crie dados de dados de pandas para calcular a correlação
# com 3 colunas.
Analytics = Pandas.DataFrame ('Product': [11,22,33,44,55,66,77,88,99,110],
'Quantidade': [200.455.800.900.900.122.400.700.80.500],
'Custo': [2400.4500.5090.600.8000.7800.1100.2233.500.1100])
# Quantidade correlacionada com coluna de custo por 2 dias.
Analytics ['Correlated'] = Analytics ['Quantity'].Rolling (2).corn (análise ['custo'])
Impressão (Analytics)
Saída:
Custo da quantidade do produto correlacionado
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
A correlação por 2 dias, 200 a 400, é a nan e assim por diante, na coluna "correlacionada".
Exemplo 2: Visualização
Vamos criar um quadro de dados com 3 colunas e 5 linhas e correlacionar o "vendas" vs "product_likes".
Use o Seaborn para ver a correlação em um gráfico e obtenha o coeficiente de correlação de Pearson.
Importar pandas
importar mareben
De estatísticas de importação ccepy
# Crie dados de dados de pandas para calcular a correlação
# com 3 colunas.
Analytics = Pandas.DataFrame ('Nome do produto': ['tv', 'aço', 'plástico', 'couro', 'outros'],
'Product_likes': [100,20,45,67,9],
'Vendas': [2300.890.1400.1800.200])
Impressão (Analytics)
imprimir()
# Veja o coeficiente de correlação
Imprimir (estatísticas.Pearsonr (Analytics ['Sales'], Analytics ['Product_likes'])))))))
imprimir()
# Agora veja as vendas de correlação vs product_likes
Seancen.lmplot (x = "vendas", y = "product_likes", dados = análise)
Saída:
Nome do produto Product_likes Vendas
0 TV 100 2300
1 aço 20 890
2 plástico 45 1400
3 couro 67 1800
4 outros 9 200
(0.9704208315867275, 0.006079620327457793)
Agora, você pode ver a correlação entre vendas e product_likes.
Vamos agora obter a correlação rolante para essas duas colunas por 3 dias.
Código por exemplo 2:
# Correlacionar as vendas com a coluna Product_likes por 5 dias.
Analytics ['Correlated'] = Analytics ['Sales'].Rolling (3).Corr (Analytics ['Product_likes']))
Impressão (Analytics)
Saída:
Nome do produto Product_likes Vendas correlacionadas
0 TV 100 2300 NAN
1 aço 20 890 nan
2 plástico 45 1400 0.998496
3 couro 67 1800 0.999461
4 outros 9 200 0.989855
Você pode ver que essas duas colunas estão altamente correlacionadas.
Exemplo 3: Diferentes quadros de dados
Vamos criar 2 quadros de dados com 1 coluna cada e correlacioná -los.
Importar pandas
importar mareben
De estatísticas de importação ccepy
Analytics1 = pandas.DataFrame ('Sales': [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])
# Veja o coeficiente de correlação para os dois quadros de dados acima
Imprimir (estatísticas.Pearsonr (Analytics1 ['Sales'], Analytics2 ['Product_likes'])))
# Correlacionar as vendas com o product_likes DataFrame
Impressão (Analytics1 ['Sales'].Rolling (5).corr (análise 2 ['product_likes'])))
Saída:
(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
Você pode ver que essas duas colunas estão altamente correlacionadas.
Conclusão
Esta discussão gira em torno do cálculo da janela rolante e depois encontrando a correlação de um pandas de dados de dados. Para colocar em prática esses dois conceitos, os pandas oferecem um “DataFrame prático.Rolling ().CORR () ”Método. Para a conveniência do aluno para entender melhor o processo, demos três exemplos praticamente implementados, juntamente com a visualização e o módulo Searborn. Cada exemplo é elaborado com uma explicação detalhada das etapas. Você pode aplicá -lo a colunas diferentes em um único quadro de dados ou usar as mesmas colunas de diferentes quadros de dados; Tudo depende de seus requisitos.