Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Encontrar correspondência entre duas variáveis em um dataframe

Boa noite, pessoal, tudo bem?

Estou com o dataframe abaixo e gostaria de tentar encontrar uma correlação entre as colunas "payments" e "jobs", ou na coluna da variação de ambas em relação ao dia anterior. Em outras palavras, necessito saber se um impacta o outro, ou seja, se quando o número de jobs varia, o de payments também varia.

Há também uma coluna de payments dividido por jobs, e eu gostaria de saber se é possível encontrar uma equação entre essas duas métricas que indique algo bom (payments subiram, jobs também), ou ruim (payments e jobs decaíram).

É possível encontrar a resposta para essas perguntas com o Python? Deixo abaixo o dataframe, e fico no aguardo de uma ajuda.

date    day    holiday    payments    var_payments    jobs    var_jobs    pay_divided_by_jobs
0    2019-03-01    friday    n    144    -59,89%    349    1645,00%    0,41
1    2019-03-02    saturday    y    39    -72,92%    7    -97,99%    5,57
2    2019-03-03    sunday    y    38    -2,56%    14    100,00%    2,71
3    2019-03-04    monday    y    102    168,42%    17    21,43%    6,00
4    2019-03-05    tuesday    y    113    10,78%    15    -11,76%    7,53
5    2019-03-06    wednesday    y    107    -5,31%    327    2080,00%    0,33
6    2019-03-07    thursday    n    206    92,52%    573    75,23%    0,36
7    2019-03-08    friday    n    147    -28,64%    478    -16,58%    0,31
8    2019-03-09    saturday    y    52    -64,63%    34    -92,89%    1,53
9    2019-03-10    sunday    y    51    -1,92%    36    5,88%    1,42
10    2019-03-11    monday    n    183    258,82%    532    1377,78%    0,34
11    2019-03-12    tuesday    n    271    48,09%    439    -17,48%    0,62
12    2019-03-13    wednesday    n    246    -9,23%    454    3,42%    0,54
13    2019-03-14    thursday    n    116    -52,85%    408    -10,13%    0,28
14    2019-03-15    friday    n    212    82,76%    329    -19,36%    0,64
15    2019-03-16    saturday    y    74    -65,09%    26    -92,10%    2,85
16    2019-03-17    sunday    y    41    -44,59%    30    15,38%    1,37
17    2019-03-18    monday    n    224    446,34%    552    1740,00%    0,41
18    2019-03-19    tuesday    n    181    -19,20%    424    -23,19%    0,43
19    2019-03-20    wednesday    n    166    -8,29%    481    13,44%    0,35
20    2019-03-21    thursday    n    123    -25,90%    386    -19,75%    0,32
21    2019-03-22    friday    n    143    16,26%    384    -0,52%    0,37
22    2019-03-23    saturday    y    67    -53,15%    27    -92,97%    2,48
23    2019-03-24    sunday    y    61    -8,96%    31    14,81%    1,97
24    2019-03-25    monday    n    199    226,23%    544    1654,84%    0,37
25    2019-03-26    tuesday    n    170    -14,57%    482    -11,40%    0,35
26    2019-03-27    wednesday    n    178    4,71%    465    -3,53%    0,38
27    2019-03-28    thursday    n    181    1,69%    481    3,44%    0,38
28    2019-03-29    friday    n    131    -27,62%    402    -16,42%    0,33
29    2019-03-30    saturday    y    74    -43,51%    19    -95,27%    3,89
30    2019-03-31    sunday    y    44    -40,54%    31    63,16%    1,42

Att., Tiago Rangel.

1 resposta
solução!

Olá Tiago,

Acredito que o apenas o método corr do pandas já vai resolver isso tudo para você (após algum tratamento dos dados).

Recomendo você ver o curso Regressão Linear: Testando Relações e Prevendo Resultados, principalmente na primeira metado é mostrado como fazer uma análise dos dados e entender a correlação.

Executando diretamente o corr você já vai ter a informação da correlação entre as colunas payments e jobs qua são as únicas colunas numéricas. O resultado pode ser chamado de coeficiente de correlação.

Resultado:

Como é dito no curso mencionado acima:

O coeficiente de correlação é uma medida de associação linear entre duas variáveis e situa-se entre -1 e +1 sendo que -1 indica associação negativa perfeita e +1 indica associação positiva perfeita.

Então vemos que existe uma forte correlação positiva entre payment e jobs (0.860151).


Para tentar visualizar essa correlação também podemos utilizar um gráfico, que o próprio pandas já ajuda a gerar também utilizando o .plot.line()

Observando o gráfico podemos ver que as duas linhas apresentam um formato parecido, que indica uma relação.

Além desse gráfico também podemos utilizar o lmplot() do seaborn para uma visualização diferente. Se a linha está subindo temos uma relação positiva, caso contrário uma relação negativa:


Agora você pode aplicar essas mesmas técnicas para as outras colunas, só precisa antes transformar os valores para valores numéricos.