توزیع کای دو (Chi Square Distribution)
در این صفحه با توزیع کای دو در NumPy آشنا می شوی. توزیع کای دو (Chi Square Distribution) یکی از توزیع های مهم آمار است و برای بررسی درست بودن یک فرضیه (Hypothesis) درباره داده ها استفاده می شود.
توزیع کای دو در NumPy چیست؟
طبق متن منبع، توزیع کای دو پایه ای برای بررسی فرضیه هاست. فرضیه یعنی حدسی منظم درباره داده ها؛ مثلاً این که «دانش آموزها همه روزه به طور مساوی تکلیف می نویسند یا نه». با توزیع کای دو می توانیم ببینیم داده های واقعی چقدر با این حدس هماهنگ است.
در NumPy این توزیع با تابع random.chisquare() ساخته می شود. این تابع مقادیر تصادفی ای می دهد که از توزیع کای دو پیروی می کنند.
پارامترهای توزیع کای دو در NumPy
تابع random.chisquare() دو پارامتر اصلی دارد:
- df: درجه آزادی (Degree of Freedom) است.
- size: شکل آرایه خروجی را مشخص می کند.
درجه آزادی را فعلاً مثل یک عدد تنظیم کننده شکل توزیع ببین. عدد df هرچه عوض شود، شکل منحنی توزیع کای دو هم عوض می شود؛ شبیه این که سختی یک امتحان را بالا و پایین ببری.
برای دیدن توزیع دیگری که روی زمان تمرکز دارد، می توانی بعداً صفحه توزیع نمایی در NumPy را هم ببینی.
نمونه گیری از توزیع کای دو در NumPy
در مثال منبع، یک نمونه از توزیع کای دو با درجه آزادی 2 ساخته می شود. شکل آرایه خروجی 2x3 است؛ یعنی دو سطر و سه ستون.
گام ها:
- کتابخانه
randomرا از NumPy ایمپورت کن. - تابع
random.chisquare()را باdfوsizeفراخوانی کن. - خروجی را با
print()چاپ کن و عددها را ببین.
from numpy import random
x = random.chisquare(df=2, size=(2, 3))
print(x)
نکته: با تغییر df می توانی ببینی عددهای خروجی چطور عوض می شوند. این کمک می کند حس بهتری از شکل توزیع کای دو در NumPy بگیری.
نمایش توزیع کای دو روی نمودار
دیدن شکل توزیع کای دو روی نمودار درک آن را راحت می کند. در مثال دوم با matplotlib و seaborn نمودار چگالی می کشیم.
matplotlib یک کتابخانه رسم نمودار در پایتون است. seaborn هم کتابخانه ای برای کشیدن نمودارهای آماری خوش فرم روی داده ها است.
در کد زیر، با درجه آزادی 1، هزار نمونه از توزیع کای دو در NumPy می سازیم و نمودار چگالی آن را رسم می کنیم.
from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns
data = random.chisquare(df=1, size=1000)
sns.displot(data, kind="kde")
plt.show()
نکته: شکل منحنی برای dfهای مختلف کمی فرق می کند. با تغییر df می توانی تاثیر درجه آزادی را روی توزیع کای دو در NumPy ببینی.
جمع بندی سریع توزیع کای دو
اگر خواستی مرور کنی، این صفحه توزیع کای دو در NumPy برایت خلاصه خوبی است.
- توزیع کای دو پایه ای برای آزمون فرضیه های آماری است.
- در NumPy با
random.chisquare()به این توزیع دسترسی داری. - پارامتر
dfدرجه آزادی و شکل توزیع را کنترل می کند. sizeفقط شکل آرایه خروجی را تعیین می کند.- با رسم نمودار، درک توزیع کای دو در NumPy بسیار ساده تر می شود.