لتصوير الارتباط (correlation) بين المتغيرات باستخدام بايثون، سوف نستخدم مكتبة: seaborn وهي مكتبة متخصصة في تصوير البيانات في بايثون وتعمل بالاعتماد على المكتبة المعروفة matplotlib. تتميز مكتبة: seaborn بقدرتها على انتاج رسوم بيانية جذابة ومبتكرة. في البداية سوف نستخدم البيانات: mydata. حيث يمكن استيرادها بعد تحميلها كما يلي:
In:
import pandas as pd
mydata = pd.read_csv('mydata.csv',sep=',')
يمكن تصوير الارتباط بين المتغيرات بعدة طرق منها:
اولاً: تصوير مصفوفة الارتباط (correlation matrix)
ويمكن ذلك من خلال الكود التالي:
In:
import seaborn as sns
import matplotlib.pyplot as plt
corr_coef = mydata.corr(method= 'pearson').round(2)
f, ax = plt.subplots(figsize=(5, 5))
C=sns.diverging_palette(10, 150, as_cmap=True)
sns.heatmap(corr_coef, cmap=C,vmin=-1, vmax=1,
center=0,annot=True,cbar_kws={"shrink": .7})
والذي يعطي الشكل التالي:
الدالة ()corr يمكن أن تأخد اساليب مختلفة من الإرتباط وهي:
method =’pearson’ or ‘kendall’ or ‘spearman’
حسب نوع البيانات. ويمكن التعديل على الكود السابق كما يلي:
In:
import numpy as np
corr_coef = mydata.corr(method= 'pearson').round(2)
f, ax = plt.subplots(figsize=(5, 5))
M = np.zeros_like(corr_coef, dtype=np.bool)
M[np.triu_indices_from(M)] = True
C=sns.diverging_palette(10, 150, as_cmap=True)
sns.heatmap(corr_coef,mask=M, cmap=C, vmin=-1, vmax=1,
center=0,annot=True,cbar_kws={"shrink": .7})
وبالتالي يعطي الشكل التالي:
ثانياً: بواسطة correlogram
ويمكن ذلك من خلال الدالة التالية:
In:
sns.pairplot(mydata)
والتي تعطي الرسوم البيانية التالية:
ويمكن التعديل على الدالة السابقة كما يلي:
In:
sns.pairplot(mydata, diag_kind="kde")
وبالتالي تعطي الرسوم البيانية التالية:
Short and simple post
Thanks Dr.Aziz