دقت کن که برای محاسبه ضرایب در اون دو تا معیارِ آخری (کندال و اسپیرمن)، اول باید دادهها رو رتبهبندی کنی. این کار با کمک تابع rank() خیلی راحت انجام میشه: در واقع در تمرین بالا، دادههای iris با اجرای قطعه کد iris.rank()، از قبل برات رتبهبندی شدن.
علاوه بر این، برای استفاده از این ضریبهای همبستگی، پای یه سری فرضیات هم در میونه: مثلاً «همبستگی پیرسون» فرض رو بر این میگیره که متغیرهای تو کلاً توزیع نرمال دارن، رابطه مستقیمی بینشون هست و دادهها حولِ خطِ رگرسیون، توزیعِ یکدستی دارن. از اون طرف، «همبستگی اسپیرمن» فرضش اینه که تو دو تا متغیرِ ترتیبی (Ordinal) داری یا کلاً دو متغیر داری که یهجورایی با هم در ارتباطن، ولی لزوماً این رابطه خطی نیست.
«همبستگی کندال تاو» ضریبیه که میزان هماهنگی بین دو ستون از دادههای رتبهبندیشده رو نشون میده. در حالی که از همبستگی اسپیرمن میتونی برای اندازهگیریِ میزان ارتباط بین دو متغیر استفاده کنی. این دو تا خیلی شبیه هم به نظر میرسن، مگه نه؟
با وجودِ اینکه کندال و اسپیرمن خیلی شبیه همن، اما تفاوتهایی هم با هم دارن که مهمترینشون در نحوه محاسباتشونه. ضریب کندال تاو از این طریق به دست میاد: تفاضلِ بین تعداد جفتهای هماهنگ و ناهماهنگ که تقسیم بر کل تعداد جفتها میشه. در مقابل، ضریب اسپیرمن برابر با مجموعِ مجذور انحرافات تقسیم بر (n-1)*n هست.
در اکثر مواقع ضریب اسپیرمن عددِ بزرگتری نسبت به کندال تاو بهت میده، اما این یه قانون همیشگی نیست: وقتی که انحرافات و تفاوتها بین مشاهدات خیلی زیاد باشه، ضریب اسپیرمنی که به دست میاد کوچیکتر میشه. در واقع، همبستگیِ اسپیرمن به این موضوع خیلی حساسه و دقیقاً همین جاست که این ویژگی میتونه خیلی به دردت بخوره!
پس سوال اینه که بالاخره، کِی باید از کدوم ضریب استفاده کنیم؟ از اونجا که این دو تا همبستگی واقعاً چیزهای متفاوتی رو میسنجن، باید با دقت انتخاب کنی. کندال تاو نسبت جفتهای هماهنگ به ناهماهنگ رو نشون میده، کاری که اسپیرمن انجام نمیده. بعضیها معتقدن کندال تاو تفسیر خیلی بهتری داره، محاسبهاش راحتتره، تخمین دقیقتری از پارامترِ جامعه میده و موقع کار با نمونههای سایز کوچیک، p-value در اون خیلی دقیقتره.
نکته: از تابع print() استفاده کن تا بتونی نتیجه محاسباتِ همبستگی رو به صورت جفتجفت و مشخص بین ستونها ببینی.