5 آزمون آماری که باید در علم داده بشناسید (بخش دوم)

در بخش اول این موضوع به دو آزمون t-test و ANOVA پرداختیم. در این بخش قصد داریم سه آزمون پرکاربرد دیگر در حوزه علم داده و یادگیری ماشین را بررسی کنیم.
3- آزمون کای اسکوئر (Chi-squared test):
آزمون کای اسکوئر در یادگیری ماشین از اهمیت ویژهای برخودار است. انتخاب ویژگی یا همان Feature selection یکی از موضوعات مهم در یادگیری ماشین است، زیرا معمولاً با ویژگیهای متعددی روبرو هستید و باید بهترینها را برای ساخت مدل انتخاب کنید. بررسی رابطه بین عناصر، آزمون کای اسکوئر را به ابزاری مفید برای حل مشکلات انتخاب ویژگی تبدیل میکند. در این آموزش، با انواع آزمون کای اسکوئر، نحوه انجام این آزمونها، ویژگیها، کاربردها و موارد دیگر آشنا خواهید شد. بیایید شروع کنیم!
کای اسکوئر چیست؟
آزمون کای اسکوئر یک روش آماری است که برای تعیین تفاوت بین دادههای مشاهدهشده و دادههای مورد انتظار استفاده میشود. این آزمون همچنین میتواند برای بررسی این موضوع به کار رود که آیا متغیرهای طبقهبندی شده (کیفی) دادهها با یکدیگر مرتبط هستند یا خیر. این روش کمک میکند تا مشخص شود که تفاوت بین دو متغیر کیفی ناشی از شانس است یا نتیجهی یک رابطه واقعی بین آنها.
همچنین برای آزمودن یک فرضیه درباره توزیع یک متغیر دستهبندی، به آزمون کای اسکوئر یا یک آزمون غیرپارامتری مشابه نیاز است. متغیرهای دستهبندی که نشاندهنده دستههایی مانند حیوانات یا کشورها هستند، میتوانند اسمی (nominal) یا ترتیبی (ordinal) باشند. این متغیرها نمیتوانند توزیع نرمال داشته باشند، زیرا تنها شامل تعداد محدودی مقدار خاص هستند.
به طور کلی رابطه کای اسکوئر به صورت زیر است:
که در آن:
- : فراوانی مشاهدهشده (Observed Frequency)
- : فراوانی مورد انتظار (Expected Frequency)
انواع آزمون کای اسکوئر
آزمون کای اسکوئر به دو نوع اصلی تقسیم میشود:
- آزمون استقلال (Independence)
این آزمون برای بررسی رابطه بین دو متغیر کیفی استفاده میشود. هدف آن تعیین این است که آیا دو متغیر مستقل از یکدیگر هستند یا خیر. - آزمون نیکویی برازش (Goodness-of-Fit)
این آزمون برای بررسی میزان تطابق دادههای مشاهدهشده با یک توزیع مورد انتظار استفاده میشود. هدف آن این است که مشخص کند آیا دادهها با الگوی پیشبینیشده مطابقت دارند یا خیر.
استقلال (Independence)
آزمون کای اسکوئر استقلال، یک آزمون آماری استنباطی است که بررسی میکند آیا دو مجموعه متغیر به احتمال زیاد با یکدیگر مرتبط هستند یا خیر. این آزمون زمانی استفاده میشود که دادهها شامل شمارش مقادیر برای دو متغیر اسمی یا دستهای باشند و بهعنوان یک آزمون ناپارامتری در نظر گرفته میشود. برای انجام این آزمون، معیارهای زیر لازم است:
- اندازه نمونه نسبتاً بزرگ
- استقلال مشاهدات
مثال:
در یک سینما، فهرستی از ژانرهای فیلم تهیه میکنیم (این متغیر اول است). متغیر دوم این است که آیا افرادی که این ژانرها را تماشا کردهاند، میانوعده خریداری کردهاند یا خیر. فرضیه صفر این است که ژانر فیلم و خرید میانوعده به یکدیگر مرتبط نیستند. اگر این فرض درست باشد، ژانر فیلم تأثیری بر فروش میانوعدهها نخواهد داشت.
نیکویی برازش (Goodness-of-Fit)
در آزمون فرضیه آماری، آزمون نیکویی برازش کای اسکوئر بررسی میکند که آیا یک متغیر به احتمال زیاد از یک توزیع مشخص آمده است یا خیر. برای این آزمون، باید مجموعهای از مقادیر داده و ایدهای از توزیع دادهها داشته باشیم. این آزمون زمانی استفاده میشود که شمارش مقادیر برای متغیرهای دستهای در دسترس باشد. آزمون نیکویی برازش نشان میدهد که آیا دادهها به اندازه کافی با ایده ما هماهنگ هستند یا نمایندهای مناسب از کل جمعیت هستند.
مثال:
فرض کنید کیسههایی از توپها داریم که هر کیسه شامل پنج رنگ مختلف توپ است. شرط مشخص این است که تعداد توپهای هر رنگ در کیسه برابر باشد. ایدهای که میخواهیم آزمایش کنیم این است که نسبت پنج رنگ توپها در هر کیسه باید دقیقاً برابر باشد.
پیادهسازی در پایتون
import scipy.stats as stats # Sample data in a contingency table observed = [[20, 30, 25], [15, 25, 20]] # Perform the Chi-Square test chi2_stat, p_value, dof, expected = stats.chi2_contingency(observed) print(f"Chi-Square statistic: {chi2_stat}, P-value: {p_value}")
تفسیر نتایج کای اسکوئر
بعد از انجام آزمون کای اسکوئر، مهم است که نتایج بهدقت تفسیر شوند:
- سطح معناداری (α\alpha):
- معمولاً سطح معناداری 0.05 در نظر گرفته میشود.
- اگر مقدار p-value کمتر از 0.05 باشد، شواهد کافی برای رد فرض صفر (H0) وجود دارد. این به این معنی است که متغیرها احتمالاً با یکدیگر مرتبط هستند.
- اگر p-value بیشتر از 0.05 باشد، فرض صفر رد نمیشود، و نمیتوان رابطهای معنادار بین متغیرها نتیجهگیری کرد.
- اندازه اثر (Cramér’s V):
- اندازه اثر Cramér’s V نشان میدهد که شدت رابطه بین متغیرها چقدر است.
- این معیار، فراتر از معناداری آماری، اطلاعات بیشتری در مورد قدرت رابطه ارائه میدهد.
- مقدار Cramér’s V از 0 (هیچ رابطهای) تا 1 (رابطه کامل) متغیر است:
- 0 تا 0.1: رابطه ضعیف
- 0.1 تا 0.3: رابطه متوسط
- بزرگتر از 0.3: رابطه قوی
در حالی که سطح معناداری (p-value) نشان میدهد که رابطهای وجود دارد یا نه، Cramér’s V به شما کمک میکند تا بفهمید این رابطه چقدر قوی است. این دو معیار باید با هم در نظر گرفته شوند تا نتیجهگیری جامعتری انجام شود.
4- ضریب همبستگی پیرسون (Pearson’s Correlation Coefficient):
ضریب همبستگی پیرسون رابطه بین دو متغیر را نشان میدهد. این ضریب مشخص میکند که آیا افزایش مقدار یک متغیر به افزایش یا کاهش مقدار متغیر دیگر منجر میشود. بهعبارتی، این شاخص بررسی میکند که آیا تغییری در یک متغیر باعث تغییر در متغیر دیگر میشود یا خیر؟
برای مثال، میتوانید تصور کنید که آیا مصرف قهوه در صبح بر بهرهوری شما در طول روز تأثیر دارد یا خیر. مقدار این ضریب بین -1 تا +1 قرار دارد و قدرت و جهت رابطه را توصیف میکند:
- +1: رابطهای کاملاً مثبت (افزایش یک متغیر با افزایش دیگری همراه است).
- -1: رابطهای کاملاً منفی (افزایش یک متغیر با کاهش دیگری همراه است).
- 0: هیچ رابطه خطی بین دو متغیر وجود ندارد.
رابطه ضریب همبستگی پیرسون به صورت زیر است:
که در آن و yمقادیر مربوط به دادههای دو متغیر X و Y هستند.
چه زمانی استفاده کنیم؟
ضریب همبستگی پیرسون زمانی استفاده میشود که بخواهید رابطه خطی بین دو متغیر پیوسته را تعیین کنید. اگر با یک رابطه غیرخطی مواجه هستید یا دادهها الزامات نرمال بودن را رعایت نمیکنند، بهتر است از معیارهای دیگر همبستگی مانند رتبه همبستگی اسپیرمن (Spearman’s Rank Correlation) استفاده کنید.
-
هر دو متغیر باید پیوسته و بهصورت نرمال توزیع شده باشند.
-
بین متغیرها باید رابطهای خطی وجود داشته باشد.
-
دادههای پرت (Outliers) باید حداقل باشند، زیرا میتوانند به شدت نتایج را منحرف کنند.
در بحث انتخاب ویژگیها (Feature Selection) در حوزه یادگیری ماشین این روش میتواند بسیار پرکاربرد باشد.
پیادهسازی در پایتون
import scipy.stats as stats # Sample data x = [43, 21, 25, 42, 57, 59] y = [99, 65, 79, 75, 87, 81] # Calculate Pearson's correlation coefficient correlation, p_value = stats.pearsonr(x, y) print(f"Pearson's Correlation Coefficient: {correlation}, P-value: {p_value}")
5- تحلیل رگرسیون (Regression Analysis)
تحلیل رگرسیون شبیه به یک گوی پیشبینی در دنیای علم داده است. این روش به شما امکان میدهد مقدار یک متغیر وابسته (Dependent Variable) را بر اساس یک یا چند متغیر مستقل (Independent Variables) پیشبینی کنید. تحلیل رگرسیون یکی از ابزارهای اصلی برای درک روندها و انجام پیشبینیهای آینده بر اساس دادههای گذشته است. این روش برای پیشبینی مواردی مانند فروش یا رفتار مشتریان بسیار کاربرد دارد.
رابطه رگرسیون به شکل زیر است:
که در آن:
- (متغیر وابسته):
متغیری که قصد دارید مقدار آن را پیشبینی کنید یا توضیح دهید. - x (متغیر مستقل):
متغیری که برای پیشبینی yy استفاده میشود. - β0 (عرض از مبدأ):
مقدار y وقتی x=0 است. این مقدار نشاندهنده نقطهای است که خط رگرسیون، محور y را قطع میکند. - β1 (شیب خط):
میزان تغییر در y به ازای یک واحد تغییر در x.- اگر : رابطه مثبت است (با افزایش x متغیر y نیز افزایش مییابد).
- اگر : رابطه منفی است (با افزایش x مقدار y کاهش مییابد).
- ϵ (جمله خطا):
تفاوت بین مقدار واقعی و مقدار پیشبینیشده y توسط مدل. این جمله نشاندهنده نوسانات یا عوامل ناشناختهای است که بر مقدار تأثیر میگذارند.
چه زمانی استفاده کنیم؟
تحلیل رگرسیون زمانی استفاده میشود که بخواهید مقدار یک متغیر وابسته را با استفاده از یک یا چند متغیر مستقل پیشبینی کنید.
- برای روابط ساده و خطی، از رگرسیون خطی ساده استفاده میشود.
- برای روابط پیچیدهتر، ممکن است نیاز به رگرسیون چندگانه یا رگرسیون چندجملهای (پلینومیک) (multiple or polynomial regression) داشته باشید.
تحلیل رگرسیون دارای مجموعهای از پیشفرضها است که باید رعایت شوند تا نتایج مدل معتبر و دقیق باشند. این پیشفرضها شامل موارد زیر میشوند:
الف) خطی بودن (Linearity):
رابطه بین متغیر وابسته (y) و متغیر(های) مستقل () باید خطی باشد. برای بررسی میتوانید از نمودار پراکندگی (scatter plot) یا نمودار باقیماندهها (Residual Plot) برای ارزیابی این رابطه استفاده کنید. اگر نقاط بهصورت تصادفی توزیع نشده باشند، ممکن است رابطه خطی برقرار نباشد. اگر این پیشفرض نقض شود، ممکن است مدلهای غیرخطی (مانند رگرسیون چندجملهای) مورد نیاز باشند.
ب) استقلال مشاهدات (Independence):
مشاهدات در مجموعه داده باید از یکدیگر مستقل باشند. در واقع مقدار یک داده نباید بر دیگری تأثیر بگذارد. به منظور بررسی میتوانید از آزمون دوربین-واتسون (Durbin-Watson Test) برای بررسی استقلال خطاها استفاده کنید. در صورت نقض این پیشفرض (مانند دادههای زمانی)، باید از مدلهای مناسب مانند رگرسیون سریهای زمانی (Time Series Regression) استفاده شود.
ج) همسانی واریانس (Homoscedasticity):
پراکندگی خطاها (Residuals) در تمام مقادیر متغیر مستقل باید ثابت باشد. بدین معنا که مقدار پیشبینیشده نباید واریانس متفاوتی در نقاط مختلف داشته باشد. از نمودار باقیماندهها استفاده کنید. اگر پراکندگی نقاط یکنواخت نباشد (مثلاً الگوی قیفی شکل داشته باشد)، این پیشفرض نقض شده است. در این حالت میتوان از تبدیل دادهها (مانند لگاریتم) یا رگرسیون مقاوم (Robust Regression) استفاده کرد.
د) نرمال بودن (Normality):
باقیماندههای (Residuals) مدل باید به صورت نرمال توزیع شده باشند. انحرافات بین مقادیر واقعی و مقادیر پیشبینیشده باید از توزیع نرمال پیروی کنند. برای این منظور میتوانید از آزمون کولموگروف-اسمیرنوف (K-S Test) یا نمودار Q-Q Plot برای ارزیابی نرمال بودن استفاده کنید. اگر نرمال بودن نقض شود، ممکن است استفاده از مدلهای غیرپارامتریک یا تبدیل دادهها ضروری باشد.
پیادهسازی در پایتون
from sklearn.linear_model import LinearRegression import numpy as np # Sample data X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1) y = np.array([3, 4, 2, 5, 6]) # Create a linear regression model model = LinearRegression() model.fit(X, y) # Predict values predicted = model.predict(X) print(f"Intercept: {model.intercept_}, Slope: {model.coef_[0]}")