Показать значения корреляции в парном участке, используя seaborn в python - PullRequest
0 голосов
/ 13 июня 2018

У меня есть следующие данные:

prop_tenure  prop_12m  prop_6m  
0.00         0.00      0.00   
0.00         0.00      0.00   
0.06         0.06      0.10   
0.38         0.38      0.25   
0.61         0.61      0.66   
0.01         0.01      0.02   
0.10         0.10      0.12   
0.04         0.04      0.04   
0.22         0.22      0.22 

, и я делаю парный график, как показано ниже:

sns.pairplot(data)
plt.show()

Однако я хотел бы отобразить коэффициент корреляции среди переменных, и есливозможна асимметрия и эксцесс каждой переменной.Я не уверен, как это сделать в Сиборн.Может кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 13 июня 2018

Насколько я знаю, для этого нет функции "из коробки", вам придется создать свой собственный :

from scipy.stats import pearsonr
import matplotlib.pyplot as plt 

def corrfunc(x,y, ax=None, **kws):
    """Plot the correlation coefficient in the top left hand corner of a plot."""
    r, _ = pearsonr(x, y)
    ax = ax or plt.gca()
    # Unicode for lowercase rho (ρ)
    rho = '\u03C1'
    ax.annotate(f'{rho} = {r:.2f}', xy=(.1, .9), xycoords=ax.transAxes)

Пример с использованием вашеговвод:

import seaborn as sns; sns.set(style='white')
import pandas as pd

data = {'prop_tenure': [0.0, 0.0, 0.06, 0.38, 0.61, 0.01, 0.1, 0.04, 0.22], 
        'prop_12m':    [0.0, 0.0, 0.06, 0.38, 0.61, 0.01, 0.1, 0.04, 0.22], 
        'prop_6m':     [0.0, 0.0, 0.1, 0.25, 0.66, 0.02, 0.12, 0.04, 0.22]}

df = pd.DataFrame(data)

g = sns.pairplot(df)
g.map_lower(corrfunc)
plt.show()

enter image description here

...