Numpy ، Scipy و Pandas: همبستگی با پایتون

ساخت وبلاگ

ضرایب همبستگی ارتباط بین متغیرها یا ویژگی های یک مجموعه داده را کمیت می کند. این آمار برای علم و فناوری از اهمیت بالایی برخوردار است و پایتون از ابزارهای بسیار خوبی برخوردار است که می توانید برای محاسبه آنها استفاده کنید. روشهای همبستگی Scipy ، Numpy و Pandas سریع ، جامع و مستند هستند.

در این آموزش ، شما یاد خواهید گرفت:

  • ضرایب همبستگی پیرسون ، اسپرمن و کندال چیست
  • نحوه استفاده از توابع همبستگی SCIPY ، NUMPY و PANDAS
  • نحوه تجسم داده ها ، خطوط رگرسیون و ماتریس همبستگی با Matplotlib

شما با توضیحی در مورد همبستگی شروع خواهید کرد ، سپس سه نمونه مقدماتی سریع را مشاهده می کنید و در نهایت به جزئیات همبستگی Numpy ، Scipy و Pandas شیرجه می شوید.

جایزه رایگان: برای دسترسی به یک راهنمای منابع رایگان Numpy که شما را به بهترین آموزش ها ، فیلم ها و کتاب ها برای بهبود مهارت های NUMPY خود نشان می دهد ، اینجا را کلیک کنید.

همبستگی

آمار و علم داده ها اغلب در مورد روابط بین دو یا چند متغیر (یا ویژگی ها) یک مجموعه داده نگران هستند. هر نقطه داده در مجموعه داده مشاهده ای است و ویژگی ها ویژگی ها یا ویژگی های آن مشاهدات هستند.

هر مجموعه داده ای که با آنها کار می کنید از متغیرها و مشاهدات استفاده می کنید. به عنوان مثال ، شما ممکن است علاقه مند به درک موارد زیر باشید:

  • چگونه ارتفاع بسکتبالیست ها با دقت تیراندازی آنها ارتباط دارد
  • آیا بین تجربه کار کارکنان و حقوق وجود دارد
  • چه وابستگی ریاضی بین تراکم جمعیت و تولید ناخالص داخلی کشورهای مختلف وجود دارد

در مثالهای بالا ، ارتفاع ، دقت تیراندازی ، سالها تجربه ، حقوق ، تراکم جمعیت و تولید ناخالص داخلی ویژگی ها یا متغیرها هستند. داده های مربوط به هر بازیکن ، کارمند و هر کشور مشاهدات است.

هنگامی که داده ها به شکل یک جدول نشان داده می شوند ، ردیف های آن جدول معمولاً مشاهدات هستند ، در حالی که ستون ها ویژگی ها هستند. به این جدول کارمند نگاهی بیندازید:

نام سال ها تجربه حقوق سالانه
آن آن آن را 30 120،000
غارت 21 105،000
دلهره 19 90،000
پیچک 10 82،000

در این جدول ، هر ردیف یک مشاهده یا داده های مربوط به یک کارمند (یا آن ، راب ، تام یا آیوی) را نشان می دهد. هر ستون یک ویژگی یا ویژگی (نام ، تجربه یا حقوق) را برای همه کارمندان نشان می دهد.

اگر هر دو ویژگی یک مجموعه داده را تجزیه و تحلیل کنید ، بین این دو ویژگی نوعی همبستگی پیدا خواهید کرد. ارقام زیر را در نظر بگیرید:

mmst-py-corr-1

هر یک از این توطئه ها یکی از سه شکل مختلف همبستگی را نشان می دهد:

همبستگی منفی (نقاط قرمز): در نقشه در سمت چپ ، مقادیر Y با افزایش مقادیر X کاهش می یابد. این همبستگی منفی قوی را نشان می دهد ، که هنگامی اتفاق می افتد که مقادیر بزرگ یک ویژگی با مقادیر کوچک دیگری مطابقت داشته باشد ، و برعکس.

همبستگی ضعیف یا بدون (نقاط سبز): طرح در وسط هیچ روند آشکاری را نشان نمی دهد. این نوعی همبستگی ضعیف است ، که زمانی اتفاق می افتد که ارتباط بین دو ویژگی آشکار نیست یا به سختی قابل مشاهده است.

همبستگی مثبت (نقاط آبی): در نقشه سمت راست ، مقادیر Y با افزایش مقادیر X افزایش می یابد. این همبستگی مثبت قوی را نشان می دهد ، که هنگامی اتفاق می افتد که مقادیر بزرگ یک ویژگی با مقادیر بزرگ دیگری مطابقت داشته باشد ، و برعکس.

شکل بعدی داده های جدول کارمند بالا را نشان می دهد:

mmst-py-corr-6

همبستگی بین تجربه و حقوق مثبت است زیرا تجربه بالاتر با حقوق بزرگتر مطابقت دارد و بالعکس.

توجه: هنگامی که شما در حال تجزیه و تحلیل همبستگی هستید ، همیشه باید در نظر داشته باشید که همبستگی نشانگر علیت نیست. این قدرت رابطه بین ویژگی های یک مجموعه داده را تعیین می کند. بعضی اوقات ، این انجمن ناشی از عاملی است که برای چندین ویژگی مورد علاقه مشترک است.

همبستگی کاملاً به مقادیر آماری دیگر مانند میانگین ، انحراف استاندارد ، واریانس و کوواریانس مرتبط است. اگر می خواهید در مورد این مقادیر و نحوه محاسبه آنها با پایتون اطلاعات بیشتری کسب کنید ، سپس آمار توصیفی را با پایتون بررسی کنید.

چندین آمار وجود دارد که می توانید برای تعیین کمیت همبستگی استفاده کنید. در این آموزش ، شما در مورد سه ضرایب همبستگی یاد خواهید گرفت:

ضریب پیرسون همبستگی خطی را اندازه گیری می کند ، در حالی که ضرایب Spearman و Kendall رده های داده را مقایسه می کنند. چندین توابع و روشهای همبستگی NUMPY ، SCIPY و PANDA وجود دارد که می توانید برای محاسبه این ضرایب استفاده کنید. همچنین می توانید از Matplotlib استفاده کنید تا به راحتی نتایج را نشان دهید.

مثال: محاسبه همبستگی Numpy

Numpy دارای روال آماری بسیاری از جمله NP. Corrcoef () است که یک ماتریس ضرایب همبستگی پیرسون را برمی گرداند. می توانید با وارد کردن NUMPY و تعریف دو آرایه numpy شروع کنید. اینها نمونه های کلاس Ndarray است. آنها را X و Y بنامید:

در اینجا ، شما از np. arange () برای ایجاد آرایه x عدد صحیح بین 10 (فراگیر) و 20 (منحصر به فرد) استفاده می کنید. سپس از np. array () برای ایجاد آرایه دوم حاوی اعداد صحیح دلخواه استفاده می کنید.

پس از داشتن دو آرایه به همان طول ، می توانید با NP. Corrcoef () با هر دو آرایه به عنوان آرگومان تماس بگیرید:

کورکوف () ماتریس همبستگی را که یک آرایه دو بعدی با ضرایب همبستگی است ، برمی گرداند. در اینجا یک نسخه ساده از ماتریس همبستگی که اخیراً ایجاد کرده اید آورده شده است:

مقادیر مورب اصلی ماتریس همبستگی (بالا سمت چپ و پایین سمت راست) برابر با 1 است. مقدار بالا سمت چپ با ضریب همبستگی برای x و x مطابقت دارد ، در حالی که مقدار پایین سمت راست ضریب همبستگی y و y است. آنها همیشه برابر با 1 هستند.

با این حال ، آنچه شما معمولاً به آن نیاز دارید مقادیر پایین سمت چپ و فوقانی ماتریس همبستگی است. این مقادیر برابر هستند و هر دو ضریب همبستگی پیرسون برای x و y را نشان می دهند. در این حالت ، تقریباً 0. 76 است.

این شکل نقاط داده و ضرایب همبستگی را برای مثال فوق نشان می دهد:

mmst-py-corr-5

مربع های قرمز نقاط داده هستند. همانطور که مشاهده می کنید ، شکل همچنین مقادیر سه ضرایب همبستگی را نشان می دهد.

مثال: محاسبه همبستگی SCIPY

SCIPY همچنین دارای روال آماری بسیاری است که در Scipy. stats موجود است. برای محاسبه سه ضرایب همبستگی که قبلاً دیدید می توانید از روشهای زیر استفاده کنید:

در اینجا نحوه استفاده از این توابع در پایتون آورده شده است:

توجه داشته باشید که این توابع اشیاء حاوی دو مقدار را برمی گردانند:

  1. ضریب همبستگی
  2. مقدار p

شما هنگام آزمایش فرضیه از P-Value در روشهای آماری استفاده می کنید. مقدار P یک اقدام مهم است که نیاز به دانش عمیق از احتمال و آمار برای تفسیر دارد. برای کسب اطلاعات بیشتر در مورد آنها ، می توانید در مورد اصول اولیه بخوانید یا توضیحات دانشمند داده در مورد مقادیر p را بررسی کنید.

شما می توانید مقادیر p و ضرایب همبستگی را با شاخص های آنها استخراج کنید ، به عنوان موارد tuples:

همچنین می توانید از نماد نقطه برای ضرایب Spearman و Kendall استفاده کنید:

نماد نقطه طولانی تر است ، اما همچنین قابل خواندن تر و خود توضیح است.

اگر می خواهید ضریب همبستگی پیرسون و مقدار P را همزمان بدست آورید ، می توانید مقدار بازگشت را باز کنید:

این رویکرد سوء استفاده از پایتون و این واقعیت را که پیرسونر () با این دو آمار بازگرداند ، سوء استفاده می کند. همچنین می توانید از این تکنیک با Spearmanr () و Kendalltau () استفاده کنید ، همانطور که بعداً خواهید دید.

مثال: محاسبه همبستگی پاندا

پاندا در بعضی موارد برای محاسبه آمار راحت تر از Numpy و Scipy است. این روش های آماری را برای نمونه های سری و DataFrame ارائه می دهد. به عنوان مثال ، با توجه به دو شیء سری با همان تعداد موارد ، می توانید با یکی از آنها با دیگری با دیگری تماس بگیرید.

در اینجا ، شما از . corr () برای محاسبه هر سه ضرایب همبستگی استفاده می کنید. شما آمار مورد نظر را با روش پارامتر تعریف می کنید ، که می تواند یکی از چندین مقدار را به خود اختصاص دهد:

  • 'پیرسون'
  • "Spearman"
  • "کندال"
  • یک تماس پذیر

تماس قابل تماس با هر عملکرد ، روش یا شیء با . __ تماس __ () که دو آرایه یک بعدی را می پذیرد و یک شماره نقطه شناور را برمی گرداند.

همبستگی خطی

همبستگی خطی نزدیکی رابطه ریاضی بین متغیرها یا ویژگی های مجموعه داده را به یک عملکرد خطی اندازه گیری می کند. اگر رابطه بین این دو ویژگی به برخی از عملکردهای خطی نزدیک باشد ، همبستگی خطی آنها قوی تر است و مقدار مطلق ضریب همبستگی بیشتر است.

ضریب همبستگی پیرسون

یک مجموعه داده با دو ویژگی در نظر بگیرید: x و y. هر ویژگی دارای مقدار n است ، بنابراین x و y n-tuples هستند. بگویید که مقدار اول x₁ از x با مقدار اول y₁ از y ، مقدار دوم x₂ از x به مقدار دوم y از y و غیره مطابقت دارد. سپس ، n جفت مقادیر مربوطه وجود دارد: (x₁ ، y₁) ، (x₂ ، y₂) و غیره. هر یک از این جفت های X-Y یک مشاهده واحد را نشان می دهد.

ضریب همبستگی پیرسون (محصول-لحظه) اندازه گیری رابطه خطی بین دو ویژگی است. این نسبت کواریانس X و Y به محصول انحراف استاندارد آنها است. این اغلب با حرف R مشخص می شود و به نام Pearson's R. شما می توانید این مقدار را از نظر ریاضی با این معادله بیان کنید:

r = σᵢ ((xᵢ - میانگین (x)) (yᵢ - میانگین (y)))) (√σᵢ (xᵢ - میانگین (x)) ² √σᵢ (yᵢ - میانگین (y)) ²) ⁻) ⁻

در اینجا ، من مقادیر 1 ، 2 ، ... ، n را می گیرم. میانگین مقادیر x و y با میانگین (x) و میانگین (y) مشخص می شود. این فرمول نشان می دهد که اگر مقادیر بزرگتر X تمایل به مقادیر Y بزرگتر داشته باشند و برعکس ، R مثبت است. از طرف دیگر ، اگر مقادیر بزرگتر X بیشتر با مقادیر Y کوچکتر همراه باشد و برعکس ، R منفی است.

در اینجا برخی از حقایق مهم در مورد ضریب همبستگی پیرسون آورده شده است:

ضریب همبستگی پیرسون می تواند هر مقدار واقعی را در محدوده −1 ≤ R ≤ 1 بدست آورد.

حداکثر مقدار r = 1 مربوط به مواردی است که در آن یک رابطه خطی مثبت کامل بین x و y وجود دارد. به عبارت دیگر ، مقادیر بزرگتر X با مقادیر Y بزرگتر مطابقت دارد و بالعکس.

The value r>0 همبستگی مثبت بین x و y را نشان می دهد.

مقدار r = 0 مربوط به مواردی است که در آن هیچ رابطه خطی بین x و y وجود ندارد.

مقدار حداقل r = −1 با مواردی مطابقت دارد که یک رابطه خطی منفی کامل بین x و y وجود داشته باشد. به عبارت دیگر ، مقادیر بزرگتر X با مقادیر Y کوچکتر مطابقت دارد و بالعکس.

حقایق فوق را می توان در جدول زیر خلاصه کرد:

ارزش R پیرسون همبستگی بین x و y
برابر با 1 رابطه خطی مثبت کامل
بیشتر از 0 همبستگی مثبت
برابر با 0 بدون رابطه خطی
کمتر از 0 همبستگی منفی
برابر ب ا-1 رابطه خطی منفی کامل

به طور خلاصه ، یک مقدار مطلق بزرگتر R نشانگر همبستگی قوی تر ، نزدیک به یک عملکرد خطی است. مقدار مطلق کوچکتر از R نشانگر همبستگی ضعیف تر است.

رگرسیون خطی: اجرای SCIPY

رگرسیون خطی فرآیند یافتن عملکرد خطی است که تا حد امکان به رابطه واقعی بین ویژگی ها نزدیک است. به عبارت دیگر ، شما عملکرد خطی را تعیین می کنید که ارتباط بین ویژگی ها را به بهترین وجه توصیف می کند. این عملکرد خطی نیز خط رگرسیون نامیده می شود.

می توانید رگرسیون خطی را با SCIPY پیاده سازی کنید. شما عملکرد خطی را دریافت خواهید کرد که به بهترین وجه رابطه بین دو آرایه و همچنین ضریب همبستگی پیرسون را تقریب می دهد. برای شروع ، ابتدا باید کتابخانه ها را وارد کنید و برخی از داده ها را برای کار با آنها تهیه کنید:

در اینجا ، شما numpy و scipy. stats را وارد می کنید و متغیرهای x و y را تعریف می کنید.

برای انجام رگرسیون خطی برای دو آرایه با همان طول می توانید از Scipy. Stats. Linregress () استفاده کنید. شما باید آرایه ها را به عنوان آرگومان تهیه کنید و با استفاده از نماد نقطه ، خروجی ها را دریافت کنید:

خودشه! شما رگرسیون خطی را تکمیل کرده اید و نتایج زیر را بدست آورده اید:

  • . slope: شیب خط رگرسیون
  • . Intercept: رهگیری خط رگرسیون
  • . Palue: مقدار p
  • . Stderr: خطای استاندارد شیب تخمین زده شده

شما یاد خواهید گرفت که چگونه این نتایج را در بخش بعدی تجسم کنید.

شما همچنین می توانید یک استدلال واحد را به آستر ریه ارائه دهید () ، اما باید یک آرایه دو بعدی با یک بعد طول دو باشد:

نتیجه دقیقاً مشابه نمونه قبلی است زیرا XY حاوی داده های مشابه X و Y در کنار هم است. Linregress () ردیف اول XY را به عنوان یک ویژگی و ردیف دوم به عنوان ویژگی دیگر گرفت.

توجه: در مثال بالا ، scipy. stats. linregress () ردیف ها را به عنوان ویژگی ها و ستون ها به عنوان مشاهدات در نظر می گیرد. به این دلیل است که دو ردیف وجود دارد.

تمرین معمول در یادگیری ماشین برعکس است: ردیف ها مشاهدات هستند و ستون ها ویژگی هایی هستند. بسیاری از کتابخانه های یادگیری ماشین ، مانند پاندا ، Scikit-Lea ، Keras و دیگران ، از این کنوانسیون پیروی می کنند.

باید مراقب باشید که هر زمان که در حال تجزیه و تحلیل همبستگی در یک مجموعه داده هستید ، مشاهدات و ویژگی ها را نشان می دهد.

Linregress () در صورت ارائه انتقال XY یا یک آرایه Numpy با 10 ردیف و دو ستون ، همان نتیجه را برمی گرداند. در Numpy ، می توانید از بسیاری جهات یک ماتریس را انتقال دهید:

در اینجا نحوه انتقال XY آمده است:

اکنون که می دانید چگونه می توانید انتقال را دریافت کنید ، می توانید یکی را به Linregress () منتقل کنید. ستون اول یک ویژگی و ستون دوم ویژگی دیگر خواهد بود:

در اینجا ، شما از . t استفاده می کنید تا از XY استفاده کنید. آسترگر () با XY و انتقال آن به همان روش کار می کند. این ویژگی ها را با تقسیم آرایه در طول بعد با طول دو ، استخراج می کند.

همچنین باید مراقب باشید که آیا مجموعه داده شما حاوی مقادیر گمشده است یا خیر. در علوم داده و یادگیری ماشین ، اغلب داده های مفقود یا فاسد را پیدا خواهید کرد. روش معمول برای نشان دادن آن در پایتون ، Numpy ، Scipy و Pandas با استفاده از NAN یا نه مقادیر عدد است. اما اگر داده های شما حاوی مقادیر NAN است ، پس از آن نتیجه مفیدی با Linregress () دریافت نخواهید کرد:

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

همچنین می توانید بررسی کنید که آیا یک متغیر با NAN با Math. isnan () یا numpy. isnan () مطابقت دارد.

همبستگی پیرسون: اجرای Numpy و Scipy

شما قبلاً دیده اید که چگونه می توانید ضریب همبستگی پیرسون را با Corcoef () و Pearsonr () بدست آورید:

توجه داشته باشید که اگر آرایه ای را با مقدار NAN به Pearsonr () ارائه دهید ، یک ValueError دریافت خواهید کرد.

چند جزئیات اضافی وجود دارد که ارزش در نظر گرفته شده است. ابتدا به یاد بیاورید که np. corrcoef () می تواند دو آرایه numpy را به عنوان آرگومان بگیرد. درعوض ، می توانید یک آرایه دو بعدی با همان مقادیر استدلال عبور دهید:

نتایج در این و مثالهای قبلی یکسان است. باز هم ، ردیف اول XY یک ویژگی را نشان می دهد ، در حالی که ردیف دوم نمایانگر دیگری است.

اگر می خواهید ضرایب همبستگی را برای سه ویژگی بدست آورید ، پس فقط یک آرایه دو بعدی عددی را با سه ردیف به عنوان استدلال ارائه می دهید:

شما دوباره ماتریس همبستگی را بدست می آورید ، اما این یکی از موارد قبلی بزرگتر خواهد بود:

این امر به این دلیل است که Corcoef () هر ردیف XYZ را یک ویژگی می داند. مقدار 0. 76 ضریب همبستگی برای دو ویژگی اول XYZ است. این همان ضریب X و Y در مثالهای قبلی است.-0. 97 نمایانگر R Pearson برای ویژگی های اول و سوم است ، در حالی ک ه-0. 83 R برای دو ویژگی آخر است.

در اینجا یک مثال جالب از آنچه اتفاق می افتد هنگام انتقال داده های NAN به Corcoef ():

در این مثال ، دو ردیف اول (یا ویژگی ها) ARR_WOTH_NAN اشکالی ندارد ، اما ردیف سوم [2 ، 5 ، np. nan ، 2] حاوی مقدار NAN است. هر آنچه شامل ویژگی NAN نیست ، به خوبی محاسبه می شود. با این حال ، نتایج به ردیف آخر بستگی دارد.

به طور پیش فرض ، numpy. corrcoef () ردیف ها را به عنوان ویژگی ها و ستون ها به عنوان مشاهدات در نظر می گیرد. اگر می خواهید رفتار متضاد ، که به طور گسترده در یادگیری ماشین استفاده می شود ، از آرگومان rowvar = false استفاده کنید:

این آرایه با نمونه ای که قبلاً دیدید یکسان است. در اینجا ، شما یک کنوانسیون متفاوت را اعمال می کنید ، اما نتیجه یکسان است.

همبستگی پیرسون: اجرای پاندا

تاکنون ، شما از روشهای شیء سری و DataFrame برای محاسبه ضرایب همبستگی استفاده کرده اید. بیایید این روش ها را با جزئیات بیشتری بررسی کنیم. ابتدا باید پاندا را وارد کنید و مواردی از سری و DataFrame ایجاد کنید:

اکنون سه شیء سری به نام X ، Y و Z دارید. شما همچنین دو شیء DataFrame ، XY و XYZ دارید.

توجه: هنگامی که با نمونه های DataFrame کار می کنید ، باید توجه داشته باشید که ردیف ها مشاهدات هستند و ستون ها از ویژگی ها هستند. این با تمرین معمول در یادگیری ماشین سازگار است.

شما قبلاً یاد گرفته اید که چگونه از . corr () با اشیاء سری استفاده کنید تا ضریب همبستگی پیرسون را بدست آورید:

در اینجا ، شما با . corr () با یک شی تماس می گیرید و دیگری را به عنوان اولین استدلال منتقل می کنید.

اگر مقدار NAN را ارائه دهید ، پس . corr () هنوز هم کار خواهد کرد ، اما مشاهدات حاوی مقادیر نان را حذف می کند:

شما در این دو مثال همان مقدار ضریب همبستگی را دریافت می کنید. به این دلیل است که . corr () جفت مقادیر را نادیده می گیرد (np. nan ، 154) که دارای یک مقدار گمشده است.

همچنین می توانید از . corr () با اشیاء dataframe استفاده کنید. می توانید از آن برای به دست آوردن ماتریس همبستگی برای ستون های آنها استفاده کنید:

ماتریس همبستگی حاصل نمونه جدیدی از DataFrame است و ضرایب Correlatrion را برای ستون های XY ['X-Values'] و XY ['y-alues'] نگه می دارد. چنین نتایج دارای برچسب معمولاً بسیار راحت است زیرا می توانید با برچسب های آنها یا شاخص های موقعیت عدد صحیح آنها به آنها دسترسی پیدا کنید:

این مثال دو روش دسترسی به مقادیر را نشان می دهد:

  1. برای دسترسی به یک مقدار واحد بر اساس برچسب های ردیف و ستون از . at [] استفاده کنید.
  2. برای دسترسی به یک مقدار توسط موقعیت های ردیف و ستون خود از . iat [] استفاده کنید.

شما می توانید . corr () را به همان روش با اشیاء DataFrame که شامل سه یا چند ستون هستند استفاده کنید:

با ضرایب همبستگی زیر یک ماتریس همبستگی دریافت خواهید کرد:

  • 0. 758640 برای مقادیر x و مقادیر y
  • -0. 968072 برای مقادیر X و مقادیر z
  • -0. 834079 برای مقادیر y و مقادیر z

روش مفید دیگر . corrwith () است که به شما امکان می دهد ضرایب همبستگی بین ردیف ها یا ستون های یک شیء DataFrame و سری دیگر یا شیء DataFrame را به عنوان اولین آرگومان محاسبه کنید:

در این حالت ، نتیجه یک شیء سری جدید با ضریب همبستگی برای ستون XY ['X-Values'] و مقادیر Z و همچنین ضریب برای XY ['y-values] و z است.

. corrwith () دارای محور پارامتر اختیاری است که مشخص می کند ستون ها یا ردیف ها ویژگی ها را نشان می دهند. مقدار پیش فرض محور 0 است ، و همچنین به ستون هایی که ویژگی ها را نشان می دهد پیش فرض است. همچنین یک پارامتر افت وجود دارد ، که نشان می دهد با مقادیر گمشده چه کاری باید انجام شود.

هر دو . corr () و . corrwith () دارای روش پارامتر اختیاری برای مشخص کردن ضریب همبستگی که می خواهید محاسبه کنید. ضریب همبستگی پیرسون به طور پیش فرض بازگردانده می شود ، بنابراین نیازی به ارائه آن در این مورد نیست.

همبستگی

همبستگی رتبه ، رتبه ها یا ترتیب داده های مربوط به دو متغیر یا ویژگی های مجموعه داده را مقایسه می کند. اگر سفارشات مشابه باشند ، همبستگی قوی ، مثبت و زیاد است. با این حال ، اگر سفارشات نزدیک به معکوس باشند ، همبستگی قوی ، منفی و کم است. به عبارت دیگر ، همبستگی رتبه فقط مربوط به ترتیب ارزش ها است ، نه با مقادیر خاص از مجموعه داده.

برای نشان دادن تفاوت بین همبستگی خطی و رتبه ، شکل زیر را در نظر بگیرید:

mmst-py-corr-2

طرح چپ یک رابطه خطی مثبت کامل بین x و y دارد ، بنابراین r = 1. طرح مرکزی همبستگی مثبت را نشان می دهد و راست همبستگی منفی را نشان می دهد. با این حال ، هیچ یک از آنها یک عملکرد خطی نیستند ، بنابراین r متفاوت از 1 یا 1 است.

وقتی فقط به سفارشات یا رده ها نگاه می کنید ، هر سه رابطه کامل هستند! توطئه های چپ و مرکزی مشاهداتی را نشان می دهند که مقادیر بزرگتر X همیشه با مقادیر Y بزرگتر مطابقت دارند. این همبستگی عالی رتبه مثبت است. طرح راست مورد مخالف را نشان می دهد ، که همبستگی رتبه منفی کامل است.

ضریب همبستگی Spearman

ضریب همبستگی Spearman بین دو ویژگی ضریب همبستگی پیرسون بین مقادیر رتبه آنها است. این به همان روشی که ضریب همبستگی پیرسون محاسبه می شود اما به جای ارزش آنها ، صفوف آنها را در نظر می گیرد. این اغلب با نامه یونانی Rho (ρ) مشخص می شود و به نام Rho Spearman نامیده می شود.

بگویید که شما دو n-tuples ، x و y دارید ، که در آن (x₁ ، y₁) ، (x₂ ، y₂) ، ... مشاهدات به عنوان جفت مقادیر مربوطه هستند. شما می توانید ضریب همبستگی Spearman را به همان روش ضریب پیرسون محاسبه کنید. شما به جای مقادیر واقعی از x و y از رده ها استفاده خواهید کرد.

در اینجا برخی از حقایق مهم در مورد ضریب همبستگی Spearman آورده شده است:

این می تواند یک مقدار واقعی در محدوده −1 ≤ ρ ≤ 1 باشد.

حداکثر مقدار آن ρ = 1 مربوط به مورد است که عملکرد یکنواخت بین x و y وجود دارد. به عبارت دیگر ، مقادیر بزرگتر X با مقادیر Y بزرگتر مطابقت دارد و بالعکس.

حداقل مقدار آن ρ = −1 با موردی مطابقت دارد که یک عملکرد یکنواخت بین x و y وجود داشته باشد. به عبارت دیگر ، مقادیر بزرگتر X با مقادیر Y کوچکتر مطابقت دارد و بالعکس.

شما می توانید Rho Spearman را در پایتون به روشی بسیار مشابه محاسبه کنید ، همانطور که می خواهید R Pearson.

ضریب همبستگی کندال

بیایید دوباره با در نظر گرفتن دو n-tuples ، x و y شروع کنیم. هر یک از جفت های X-Y (x₁ ، y₁) ، (x₂ ، y₂) ،… یک مشاهده واحد است. یک جفت مشاهدات (xᵢ ، yᵢ) و (xⱼ ، yⱼ) ، جایی که من

  • concordant if either (xᵢ> xⱼ and yᵢ>yⱼ) یا (xᵢ
  • اگر هر دو (xᵢyⱼ) or (xᵢ>xⱼ و yᵢ
  • نه اگر کراوات در x (xᵢ = xⱼ) یا کراوات در y (yᵢ = yⱼ) وجود داشته باشد

ضریب همبستگی کندال تعداد جفت های متناسب و متناقض داده ها را مقایسه می کند. این ضریب براساس تفاوت در تعداد جفت های متناسب و متناقض نسبت به تعداد جفت های X-Y استوار است. این اغلب با نامه یونانی تاو (τ) مشخص می شود و تاو کندال نامیده می شود.

طبق اسناد رسمی Scipy. Stats ، ضریب همبستگی کندال به صورت τ = (N⁺ - N⁻) / √ ((N⁺ + N⁻ + Nˣ) (N⁺ + N⁻ + Nʸ)) محاسبه می شود ، جایی که:

  • n⁺ تعداد جفت های متناسب است
  • n⁻ تعداد جفت های ناسازگار است
  • nˣ تعداد پیوندها فقط در x است
  • nʸ تعداد پیوندها فقط در y است

اگر یک کراوات در هر دو x و y رخ دهد ، پس از آن در Nˣ یا Nʸ گنجانده نشده است.

صفحه ویکی پدیا در ضریب همبستگی رتبه Kendall عبارت زیر را ارائه می دهد: τ = (2 / (n (n - 1))) σᵢⱼ (علامت (xᵢ - xⱼ) علامت (yᵢ - yⱼ)) برای i0. n (n-1) / 2 تعداد کل جفت های x-y است.

برخی از حقایق مهم در مورد ضریب همبستگی کندال به شرح زیر است:

این می تواند یک مقدار واقعی در محدوده −1 ≤ τ ≤ 1 باشد.

حداکثر مقدار آن τ = 1 مطابق با مواردی است که رده های مقادیر مربوطه در x و y یکسان هستند. به عبارت دیگر ، همه جفت ها متناسب هستند.

حداقل مقدار آن τ = - 1 مربوط به موردی است که رتبه بندی در x برعکس رتبه بندی در y است. به عبارت دیگر ، همه جفت ها متناقض هستند.

شما می توانید تاو کندال را در پایتون به طور مشابه با نحوه محاسبه R پیرسون محاسبه کنید.

رتبه: اجرای SCIPY

برای تعیین رتبه برای هر مقدار در یک آرایه می توانید از Scipy. stats استفاده کنید. ابتدا ، کتابخانه ها را وارد می کنید و آرایه های numpy را ایجاد می کنید:

اکنون که داده ها را تهیه کرده اید ، می توانید رتبه هر مقدار را در یک آرایه NUMPY با SCIPY. STATS. RANKDATA () تعیین کنید.

آرایه های X و Z یکنواخت هستند ، بنابراین صفوف آنها نیز یکنواخت است. کمترین مقدار در y 1 است و با رتبه 1 مطابقت دارد. دومین کوچکترین 2 است که مطابق با رتبه 2 است. بیشترین مقدار 96 است که با بزرگترین رتبه 10 مطابقت دارد زیرا 10 مورد در آرایه وجود دارد.

RankData () دارای روش پارامتر اختیاری است. این به پایتون می گوید اگر در آرایه پیوندهایی وجود داشته باشد (اگر دو یا چند مقدار برابر باشد) چه کاری باید انجام شود. به طور پیش فرض ، میانگین رده ها را به آنها اختصاص می دهد:

دو عنصر با ارزش 2 وجود دارد و آنها دارای رده های 2. 0 و 3. 0 هستند. مقدار 0 دارای رتبه 1. 0 و مقدار 8 رتبه 4. 0 است. سپس ، هر دو عنصر با مقدار 2 رتبه 2. 5 را به دست می آورند.

Rankdata () مقادیر نان را به گونه ای رفتار می کند که گویی بزرگ هستند:

در این حالت ، مقدار NP. NAN با بزرگترین رتبه 4. 0 مطابقت دارد. همچنین می توانید با np. argsort () رتبه بندی کنید:

argsort () شاخص هایی را که آرایه ها در آرایه مرتب شده دارند ، برمی گرداند. این شاخص ها مبتنی بر صفر هستند ، بنابراین شما باید به همه آنها 1 اضافه کنید.

همبستگی رتبه: اجرای Numpy و Scipy

شما می توانید ضریب همبستگی Spearman را با Scipy. Stats. Spearmanr () محاسبه کنید:

Spearmanr () شیئی را که حاوی مقدار ضریب همبستگی Spearman و مقدار P است ، برمی گرداند. همانطور که مشاهده می کنید ، می توانید به دو روش به مقادیر خاص دسترسی پیدا کنید:

  1. با استفاده از نماد نقطه (نتیجه. همبستگی و نتیجه. pValue)
  2. با استفاده از بسته بندی پایتون (Rho ، P = Scipy. Stats. Spearmanr (x ، y))

اگر آرایه دو بعدی XY را ارائه دهید که حاوی همان داده های X و Y به Spearmanr () است ، می توانید نتیجه مشابهی کسب کنید.

ردیف اول XY یکی از ویژگی ها است ، در حالی که ردیف دوم ویژگی دیگر است. می توانید این را اصلاح کنید. محور پارامتر اختیاری تعیین می کند که آیا ستون ها (محور = 0) یا ردیف (محور = 1) ویژگی ها را نشان می دهد. رفتار پیش فرض این است که ردیف ها مشاهدات هستند و ستون ها از ویژگی ها هستند.

پارامتر اختیاری یکی دیگر از NAN_POLICY نحوه رسیدگی به مقادیر NAN را تعریف می کند. این می تواند یکی از سه مقدار را بدست آورد:

  • اگر مقدار NAN در بین ورودی ها وجود داشته باشد ، "Propate" NAN را برمی گرداند. این رفتار به طور پیش فرض است.
  • اگر مقدار NAN در بین ورودی ها وجود داشته باشد ، "Raise" را افزایش می دهد.
  • "حذف" مشاهدات را با مقادیر نان نادیده می گیرد.

اگر یک آرایه دو بعدی با بیش از دو ویژگی ارائه دهید ، ماتریس همبستگی و ماتریس مقادیر p را دریافت خواهید کرد:

مقدا ر-1 در ماتریس همبستگی نشان می دهد که ویژگی های اول و سوم دارای همبستگی رتبه منفی کاملی هستند ، یعنی مقادیر بزرگتر در ردیف اول همیشه با مقادیر کوچکتر در سوم مطابقت دارد.

شما می توانید ضریب همبستگی کندال را با Kendalltau () بدست آورید:

Kendalltau () تقریباً مانند Spearmanr () کار می کند. این دو آرایه یک بعدی طول می کشد ، دارای پارامتر اختیاری nan_policy است و یک شی را با مقادیر ضریب همبستگی و مقدار p برمی گرداند.

با این حال ، اگر فقط یک آرایه دو بعدی را به عنوان یک استدلال ارائه دهید ، Kendalltau () یک نوع را بالا می برد. اگر دو آرایه چند بعدی با همان شکل را منتقل کنید ، قبل از محاسبه مسطح می شوند.

همبستگی رتبه: اجرای پاندا

می توانید ضرایب همبستگی Spearman و Kendall را با پاندا محاسبه کنید. درست مانند گذشته ، شما با وارد کردن پاندا و ایجاد برخی از سری ها و DataFrame نمونه ها شروع می کنید:

اکنون که این اشیاء پاندا را دارید ، می توانید از . corr () و . corrwith () استفاده کنید ، دقیقاً مانند زمانی که ضریب همبستگی پیرسون را محاسبه کردید. شما فقط باید ضریب همبستگی مورد نظر را با روش پارامتر اختیاری ، که پیش فرض "پیرسون" است ، مشخص کنید.

برای محاسبه Rho Spearman ، روش عبور = Spearman:

اگر می خواهید تاو کندال ، از روش = کندال استفاده می کنید:

همانطور که مشاهده می کنید ، بر خلاف SCIPY ، می توانید از یک ساختار داده دو بعدی (یک DataFrame) استفاده کنید.

تجسم همبستگی

تجسم داده ها در آمار و علوم داده بسیار مهم است. این می تواند به شما در درک بهتر داده های خود کمک کند و بینش بهتری در مورد روابط بین ویژگی ها به شما ارائه دهد. در این بخش ، شما می آموزید که چگونه بصری رابطه بین دو ویژگی را با یک طرح X-Y نشان دهید. همچنین برای تجسم یک ماتریس همبستگی از مپ های گرما استفاده خواهید کرد.

شما یاد می گیرید که چگونه داده ها را تهیه کنید و نمایش های تصویری خاصی بدست آورید ، اما توضیحات دیگری را پوشش نمی دهید. برای کسب اطلاعات بیشتر در مورد Matplotlib در عمق ، نقشه های پایتون را با Matplotlib (راهنما) بررسی کنید. همچنین می توانید به مستندات رسمی و آناتومی Matplotlib نگاهی بیندازید.

برای شروع ، اولین واردات matplotlib. pyplot:

در اینجا ، شما از plt. style. use ('ggplot') برای تنظیم سبک توطئه ها استفاده می کنید. در صورت تمایل ، می توانید از این خط پرش کنید.

از بخش های قبلی از آرایه های X ، Y ، Z و XYZ استفاده خواهید کرد. می توانید دوباره آنها را ایجاد کنید تا پیمایش را کاهش دهید:

اکنون که داده های خود را دریافت کرده اید ، آماده ترسیم هستید.

توطئه های X-Y با خط رگرسیون

ابتدا خواهید دید که چگونه می توانید یک طرح X-Y را با خط رگرسیون ، معادله آن و ضریب همبستگی پیرسون ایجاد کنید. شما می توانید شیب و رهگیری خط رگرسیون و همچنین ضریب همبستگی را با آسترگر () دریافت کنید:

اکنون تمام مقادیر مورد نیاز خود را دارید. همچنین می توانید رشته را با معادله خط رگرسیون و مقدار ضریب همبستگی دریافت کنید. رشته های F برای این منظور بسیار مناسب هستند:

اکنون ، طرح x-y را با . plot () ایجاد کنید:

خروجی شما باید به این شکل باشد:

mmst-py-corr-3

مربع های قرمز نمایانگر مشاهدات هستند ، در حالی که خط آبی خط رگرسیون است. معادله آن در افسانه همراه با ضریب همبستگی ذکر شده است.

نقشه های گرمای ماتریس همبستگی

ماتریس همبستگی وقتی ویژگی های زیادی دارید می تواند واقعاً بزرگ و گیج کننده باشد! خوشبختانه ، شما می توانید آن را به صورت بصری به عنوان یک نقشه گرما ارائه دهید که در آن هر زمینه رنگی دارد که مطابق با مقدار آن است. به ماتریس همبستگی نیاز دارید:

این می تواند برای شما راحت باشد که شماره های موجود در ماتریس همبستگی را با . round () دور کنید ، زیرا آنها نشان داده می شوند در نقشه گرما قرار دارند.

در آخر ، نقشه گرم خود را با . imshow () و ماتریس همبستگی به عنوان استدلال آن ایجاد کنید:

خروجی شما باید به این شکل باشد:

mmst-py-corr-4

نتیجه یک جدول با ضرایب است. به نظر می رسد مانند خروجی پاندا با پس زمینه های رنگی. رنگ ها به شما در تفسیر خروجی کمک می کنند. در این مثال ، رنگ زرد نشان دهنده شماره 1 است ، سبز با 0. 76 مطابقت دارد و از بنفش برای اعداد منفی استفاده می شود.

نتیجه

اکنون می دانید که ضرایب همبستگی آماری هستند که ارتباط بین متغیرها یا ویژگی های مجموعه داده ها را اندازه گیری می کنند. آنها در علم داده و یادگیری ماشین بسیار مهم هستند.

اکنون می توانید از پایتون برای محاسبه استفاده کنید:

  • ضریب همبستگی محصول پیرسون
  • ضریب همبستگی Spearman
  • ضریب همبستگی Kendall

اکنون می توانید از توابع و روشهای همبستگی NUMPY ، SCIPY و PANDAS استفاده کنید تا به طور مؤثر این آمار (و سایر) را محاسبه کنید ، حتی در هنگام کار با مجموعه داده های بزرگ. شما همچنین می دانید که چگونه داده ها ، خطوط رگرسیون و ماتریس همبستگی را با توطئه های Matplotlib و نقشه های گرمایی تجسم کنید.

اگر سوالی یا نظر دارید ، لطفاً آنها را در بخش نظرات زیر قرار دهید!

هر دو روز یک ترفند کوتاه و شیرین پایتون را به صندوق ورودی خود تحویل دهید. هیچ اسپم هرگزاشتراک هر زمان را لغو کنید. تحت نظارت تیم واقعی پایتون.

Python Tricks Dictionary Merge

درباره میرکو استوجیلجکوویچ

میرکو دکتری دارد. در مهندسی مکانیک و به عنوان استاد دانشگاه فعالیت می کند. او یک پایتونیستا است که بهینه سازی ترکیبی و روشهای یادگیری ماشین را برای حمایت از تصمیم گیری در بخش انرژی اعمال می کند.

هر آموزش در Real Python توسط تیمی از توسعه دهندگان ایجاد می شود تا مطابق با استانداردهای با کیفیت بالا ما باشد. اعضای تیم که در این آموزش کار کرده اند عبارتند از:

Aldren Santos

Bryan Weber

Geir Ae Hjelle

Jaya Zhané

استادمهارت های پایتون در دنیای واقعیبا دسترسی نامحدود به پایتون واقعی

به ما بپیوندید و به هزاران آموزش ، دوره های ویدیویی دستی و جامعه ای از Pythonistas متخصص دسترسی پیدا کنید:

استادمهارت های پایتون در دنیای واقعیبا دسترسی نامحدود به پایتون واقعی

به ما بپیوندید و به هزاران آموزش ، دوره های ویدیویی دستی و جامعه ای از Pythonistas متخصص دسترسی پیدا کنید:

شما چی فکر میکنید؟

غذای شماره 1 یا مورد علاقه شما چیست؟چگونه می خواهید مهارت های جدید خود را برای استفاده قرار دهید؟در زیر نظر خود را بگذارید و مارا آگاه کنید.

نکات اظهار نظر: مفیدترین نظرات مواردی است که با هدف یادگیری یا کمک به دانش آموزان دیگر نوشته شده است. نکاتی را برای پرسیدن سوالات خوب دریافت کنید و در پورتال پشتیبانی ما به سؤالات متداول پاسخ دهید. به دنبال یک مکالمه در زمان واقعی هستید؟از گپ واقعی جامعه پایتون دیدن کنید یا به جلسه پرسش و پاسخ زنده "ساعات اداری" بعدی بپیوندید. پایتونینگ مبارک!

استراتژی های مؤثر فارکس...
ما را در سایت استراتژی های مؤثر فارکس دنبال می کنید

برچسب : نویسنده : توران میرهادی بازدید : <-PostHit-> تاريخ : سه شنبه 26 ارديبهشت 1402 ساعت: 17:28