ضریب همبستگی غیرخطی چترجی (Chatterjee) در پایتون – راهنمای گام به گام

آشنایی با ضریب همبستگی غیرخطی چترجی (Chatterjee)
برای انواع مختلفی از متغیرها، معیارهای متفاوتی تعریف شده است که پرتکرارترین حالت مربوط به بررسی همبستگی بین دو متغیر پیوسته است.
ضریب همبستگی پیرسون (Pearson Correlation Coefficient) پرکاربردترین معیار برای بررسی همبستگی خطی بین متغیرها است که بهصورت زیر محاسبه میشود:
رابطه فوق همواره عددی بین و خواهد داد. مشکل بزرگی که این معیار دارد، خطی بودن آن است و سایر ارتباطات بین متغیرها را نمیتواند تشخیص دهد. به همین دلیل، اغلب از Scatter Pair Plot برای بررسی ارتباطات غیرخطی بین متغیرها استفاده میشود.
برای محاسبه ضریب همبستگی رتبهای چترجی دو متغیر پیوسته با مقادیر غیرتکراری در ، بهصورت زیر عمل میکنیم:
در این رابطه، نشان دهنده Rank مربوط به ها بعد از مرتب شدن با توجه به ها است.
نکته دیگری که وجود دارد، این است که بهازای داده، در شدیدترین حالت همبستگی، مقدار ضریب برابر با عبارت زیر خواهد بود:
که با زیاد شدن تعدادها، قابل صرفنظر خواهد بود.
برای یادگیری برنامهنویسی با زبان پایتون، پیشنهاد میکنیم به مجموعه آموزشهای مقدماتی تا پیشرفته پایتون فرادرس مراجعه کنید که لینک آن در ادامه آورده شده است.
ضریب همبستگی غیرخطی چترجی (Chatterjee) در پایتون
حال برای بررسی و پیادهسازی ضریب همبستگی چترجی در پایتون، وارد محیط برنامهنویسی شده و کتابخانههای مورد نیاز را فراخوانی میکنیم:
ابتدا Random State و Style را تنظیم میکنیم:
حال باید ضریب همبستگی پیرسون را پیادهسازی کنیم. برای این کار، ابتدا یک تابع تعریف میکنیم که در ورودی دو آرایه مربوط به متغیرها را دریافت میکند:
ماتریس در این شرایط بهشکل زیر خواهد بود:
بنابراین، میتوان از آن بهصورت زیر برای محاسبه ضریب همبستگی پیرسون استفاده کرد:
این تابع، در خروجی، ضریب مورد نظر را برمیگرداند.
توجه داشته باشید که میتوان از کتابخانه Scipy نیز برای محاسبه ضریب همبستگی پیرسون استفاده کرد:
حال برای بررسی عملکرد کد، یک مجموعه داده با رابطه زیر تولید میکنیم:
که برای رسم این دو متغیر در مقابل هم، مینویسیم:
که نمودار زیر حاصل میشود.

حال برای محاسبه و مشاهده ضریب همبستگی پیرسون مینویسیم:
که خواهیم داشت:
Pearson Correlation Coefficient: 0.9963573476843708

در این شرایط، ضریب همبستگی پیرسون نیز از به کاهش مییابد.
حال رابطه استفادهشده در تولید دادهها را بهصورت زیر تغییر میدهیم:
در این حالت نمودار زیر حاصل خواهد شد.

در این نمودار با اینکه ارتباط بین و کاملاً مشهود است، ضریب همبستگی پیرسون عدد را به خود میگیرد. به دلیل این مشکل، نیاز به معیارهایی که بتواند روابط غیرخطی را تشخیص دهد، افزایش مییابد.
پیادهسازی ضریب همبستگی رتبهای چترجی در پایتون
حال به سراغ ضریب همبستگی رتبهای چترجی میرویم تا آن را نیز پیادهسازی کرده و نتایج را مشاهده کنیم.
ابتدا یک تابع تعریف کرده و متغیرهای ورودی را دریافت میکنیم:
حال باید اندیسهای دادهها را با توجه به ترتیب محاسبه کنیم:
حال میتوانیم ماتریس را با استفاده از ماتریس مرتب کنیم:
حال میتوانیم ماترس Rank را تولید کنیم، در این ماتریس، هر عضو از دادهها با تک تک اعضای دیگر مقایسه میشود و بزرگتر یا کوچکتر بودن آن نشان داده میشود. برای این کار میتوانیم بنویسیم:
به این ترتیب، ماتریس مربعی تولید میشود. در شکل نهایی رابطه، تنها نیاز به تعداد Trueها در هر ستون داریم، بنابراین باید در طول ستونها عمل جمع (Summation) انجام دهیم:
حال تعداد دادهها را نیز محاسبه کرده و در فرمول آورده شده قرار میدهیم:
به این ترتیب، ضریب همبستگی رتبهای چترجی محاسبه و در خروجی برگردانده میشود.
حال مجموعه داده مربوط به رابطه سهمی را تولید کرده و ضریب همبستگی رتبهای چترجی را محاسبه میکنیم:
که شکل زیر را خواهیم داشت.

Pearson Correlation Coefficient: -0.03724899705945379 Chatterjee Rank Correlation: +0.82953181272509
به این ترتیب، مشاهده میکنیم که ضریب همبستگی رتبهای چترجی وجود ارتباطی آماری بین دو متغیر را تأیید میکند.
میتوان ارتباطات پیچیدهتر مثل ترکیب دو تابع سینوسی را نظر گرفت:
که در این حالت نتایج مطابق شکل زیر خواهد بود.

Pearson Correlation Coefficient: -0.2120912310052988 Chatterjee Rank Correlation: +0.786978697869787
به این ترتیب، عملکرد مناسب ضریب همبستگی رتبهای چترجی مشهود است.
جمعبندی
در این آموزش، با پیادهسازی ضریب همبستگی غیرخطی Chatterjee در پایتون بهصورت گام به گام آشنا شدیم. برای بررسیهای بیشتر میتوان ضرایب مشابه را با ضریب همبستگی رتبهای چترجی مقایسه کرد:
- ضریب همبستگی رتبهای اسپیرمن (Spearman Rank Correlation Coefficient)
- ضریب همبستگی رتبهای کندال (Kendall Rank Correlation Coefficient)
مطالب مجله فرادرس را در جستجوی گوگل سریعتر ببینید













