40 گام به سوی آینده‌ای هوشمند - مجموعه وبینارهای رایگان در حوزه هوش مصنوعی
Filter by دسته‌ها
chatGTP
آموزش هوش مصنوعی و انواع آن
آموزش‌های پایه‌ای هوش مصنوعی
اصول هوش مصنوعی
پایتون و ابزارهای یادگیری عمیق
کتابخانه‌ های یادگیری عمیق
یادگیری با نظارت
یادگیری بدون نظارت
یادگیری تقویتی
یادگیری عمیق
یادگیری نیمه نظارتی
آموزش‌های پیشرفته هوش مصنوعی
بینایی ماشین
پردازش زبان طبیعی
پردازش گفتار
چالش‌های عملیاتی
داده کاوی و بیگ دیتا
رایانش ابری و HPC
سیستم‌‌های امبدد
علوم شناختی
دیتاست
اخبار
تیتر یک
رسانه‌ها
آموزش پردازش زبان طبیعی
آموزش علوم داده
اینفوگرافیک
پادکست
ویدیو
رویدادها
کاربردهای هوش مصنوعی
کسب‌و‌کار
تحلیل بازارهای هوش مصنوعی
کارآفرینی
هوش مصنوعی در ایران
هوش مصنوعی در جهان
 پرکاربردترین آزمون‌های آماری در علوم داده ؛ فهرستی مفید برای متخصصان علوم داده

پرکاربردترین آزمون‌های آماری در علوم داده ؛ فهرستی مفید برای متخصصان علوم داده

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

شاید بتوان متخصصان علوم داده را به دو دسته‌ کلی تقسیم کرد: گروه اول به جزئیات الگوریتم‌ها و مدل‌ها توجه می‌کنند و همیشه سعی دارند زیربنای ریاضیاتی و آماری این مباحث را درک کنند. این گروه علاقه دارند بر مبنای نظری راهکارها کاملاً مسلط بوده و کنترل داشته باشند. گروه دوم کسانی هستند که به جزئیات نظری توجه چندانی نداشته و بیشتر به نتیجه‌ نهایی علاقه دارند. پیاده‌سازی مدل‌های جدید و پیشرفته برای این افراد امری بسیار جالب و هیجان‌انگیز است. این گروه به جای تمرکز بر مبنای نظری راهکارها، ترجیح می‌دهند مسئله‌ای را که در دست دارند، حل کنند.

هر دو گروه، دلایل خود را برای رویکردی که در پیش گرفته‌اند، دارند و ما هم به انتخاب آن‌ها احترام می‌گذاریم.

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

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

میلتون فریدمن، اقتصاددان و آماردان آمریکایی، می‌گوید: «تنها آزمونی که می‌تواند اعتبار یک فرضیه را مورد ارزیابی قرار دهد، مقایسه‌ پیش‌بینی‌های آن فرضیه با تجارب واقعی است.»

فهرست مقاله پنهان

آیا متخصصان علوم داده باید با آزمون فرضیه آشنا باشند؟

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

۱. تحلیل اکتشافی داده یا EDA

۲. رگرسیون یا رده‌بندی

۳. پیش‌بینی

۴. گروه‌بندی داده‌ها

در همه‌ این حوزه‌ها، مقداری آزمون آماری وجود دارد.

آزمون‌های آماری

تحلیل اکتشافی داده یا EDA

این فرایند جزئی جدانشدنی از علوم داده است و همه‌ متخصصان این حوزه وقت قابل‌توجهی را صرف آن می‌کنند. EDA اساس و بنیان ساخت مدل‌های یادگیری ماشینی و آماری است. در این قسمت، چند مسئله‌ پرکاربرد EDA را که از آزمون‌های آماری استفاده می‌کنند، با هم مرور می‌کنیم:

۱. آزمون نرمال بودن

۲. آزمون مقادیر پرت

۳. آزمون همبستگی

۴. آزمون همگن بودن

۵. آزمون برابری توزیع

آزمون‌های آماری

چطور می‌توان نرمال بودن داده‌ها را آزمود؟

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

در تجزیه و تحلیل واریانس (ANOVA) فرض را بر نرمال بودن داده‌ها می‌گذاریم. هنگام اجرای رگرسیون نیز انتظار داریم باقیمانده، توزیع نرمال داشته باشد.

برای بررسی نرمال بودن داده‌ها می‌توانیم از آزمون شاپیرو-ویلک استفاده کنیم. فرض صفر این آزمون این است که توزیع نمونه‌ها، نرمال است.

پیاده‌سازی در پایتون:

import numpy as np
from scipy import stats
data = stats.norm.rvs(loc=2.5, scale=2, size=100)
shapiro_test = stats.shapiro(data)
print(shapiro_test)

چطور می‌توان پرت بودن داده‌ها را به آزمون درآورد؟

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

اگر مقدار یک نمونه‌ به طرز معناداری از سایر نمونه‌ها انحراف داشته باشد، به آن نمونه «مقدار پرت سراسری» گفته می‌شود. اما در صورتی که تنها در یک بافت خاص با سایر نمونه‌ها تفاوت داشته باشد، به آن «مقدار پرت بافتی» (یا شرطی) گفته می‌شود. علاوه بر این‌ها، اگر یک مجموعه نمونه از سایر نقطه‌داده‌ها متفاوت باشد نیز «پرت» در نظر گرفته می‌شود.

آزمون تیتژن-مور برای تعیین چندین داده‌ پرت به کار می‌رود. فرض صفر این آزمون این است که هیچ مقدار پرتی در دیتاست وجود ندارد.

پیاده‌سازی در پایتون:

import scikit_posthocs
x = np.array([-1.40, -0.44, -0.30, -0.24, -0.22, -0.13, -0.05, 0.06, 0.10, 0.18, 0.20, 0.39, 0.48, 0.63, 1.01])
scikit_posthocs.outliers_tietjen(x, 2)

چطور می‌توان میزان معناداری ضریب همبستگی بین دو متغیر را آزمود؟

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

هنگام محاسبه‌ همبستگی بین دو متغیر، باید به  قابل توجه بودن این همبستگی توجه کنیم. بدین منظور می‌توانیم از آزمون t استفاده کنیم. فرض صفر آزمون t این است که همبستگی بین متغیرها  قابل توجه نیست.

پیاده‌سازی در پایتون:

from scipy.stats import pearsonr
data1 = stats.norm.rvs(loc=3, scale=1.5, size=20)
data2 = stats.norm.rvs(loc=-5, scale=0.5, size=20)
stat, p = pearsonr(data1, data2)
print(stat, p)

چطور می‌توان همگنی یک متغیر رده‌ای را در دو دیتاست آزمود؟

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

فرض صفر این آزمون این است که دو گروه همگن هستند.

پیاده‌سازی در پایتون:

import scipy
import scipy.stats
from scipy.stats import chisquare
data1 = stats.norm.rvs(loc=3, scale=1.5, size=20)
data2 = stats.norm.rvs(loc=-5, scale=0.5, size=20)
chisquare(data1, data2)

چطور می‌توان بررسی کرد که دیتاست از یک توزیع خاص پیروی می‌کند یا خیر؟

در فرایند تحلیل داده، گاهی باید به سؤالاتی از این دست پاسخ داد: آیا داده‌ها از توزیع خاصی پیروی می‌کنند؟ آیا دو دیتاست متفاوت توزیع مشابهی دارند؟ در چنین شرایطی از آزمون کولموگروف-اسمیرنف یا KS استفاده می‌کنیم. از آزمون KS اغلب برای بررسی کیفیت برازش مدل‌های رگرسیون استفاده می‌شود.

این آزمون توابع توزیع تجمی تجربی یا ECDF را با توابع توزیع نظری مقایسه می‌کند. فرض صفر این آزمون این است که داده‌ها، از توزیع مشخص‌شده پیروی می‌کنند.

پیاده‌سازی در پایتون:

from scipy import stats
x = np.linspace(-25, 17, 6)
stats.kstest(x, ‘norm’)

رگرسیون و رده‌بندی

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

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

برخی از آزمون‌های آماری که در مسائل رگرسیون و رده‌بندی به کار می‌روند عبارت‌اند از:

۱. آزمون ناهمگنی واریانس

۲. آزمون هم‌خطی چندگانه

۳. آزمون معناداری ضرایب رگرسیون

۴. ANOVA برای مدل رگرسیون یا رده‌بندی

چطور می‌توان ناهمگنی واریانس را آزمود؟

به بیان ساده، منظور از ناهمگنی واریانس همان نابرابری واریانس است. برای درک بهتر به این مثال توجه کنید؛ فرض کنید داده‌های مربوط به درآمد افراد را از شهرهای مختلف جمع‌آوری کرده و مشاهده می‌کنید واریانس درآمد شهرها با هم تفاوت دارند.

ناهمگنی واریانس به میزان زیادی روی برآورد ضرایب رگرسیون تأثیر می‌گذارد و باعث می‌شود ضرایب رگرسیون دقت کمتری داشته باشند. بدین ترتیب تفاوت بین مقدار برآوردشده و مقادیر واقعی بیشتر خواهد شد.

برای بررسی ناهمگنی واریانس در داده‌ها، می‌توان از آزمون وایت استفاده کرد. فرض صفر آزمون وایت این است که واریانس در میان داده‌ها ثابت است.

پیاده‌سازی در پایتون:

from statsmodels.stats.diagnostic import het_white
from statsmodels.compat import lzip
expr = ‘y_var ~ x_var’
y, X = dmatrices(expr, df, return_type=’dataframe’)
keys = [‘LM stat’, ‘LM test p-value’, ‘F-stat’, ‘F-test p-value’]
results = het_white(olsr_results.resid, X)
lzip(keys, results)

 

چطور می‌توان هم‌خطی چندگانه بین متغیرها را آزمود؟

مسائل علوم داده اغلب شامل چندین متغیر توصیفی(ویژگی) می‌شوند؛ برخی اوقات، این متغیرها به خاطر ذات و منشأشان با یکدیگر همبستگی پیدا می‌کنند. علاوه بر این، گاهی ممکن است از یک واقعیت مبنا، بیشتر از یک متغیر توصیفی تولید کنیم. در این شرایط، همبستگی بین متغیرها افزایش می‌یابد؛ به این مسئله هم‌خطی چندگانه گفته می‌شود.

وجود هم‌خطی چندگانه باعث می‌شود خطای استاندارد ضرایب مدل‌های رگرسیون و رده‌بندی بیشتر شده و برخی از متغیرهای مهم مدل غیرمعنادار شوند.

آزمون فارر-گابلر را می‌توان برای آزمایش وجود هم‌خطی چندگانه در داده‌ها به کار برد.

چطور می‌توان معناداری ضرایب مدل را به آزمون درآورد؟

در مدل‌های رده‌بندی یا رگرسیون، باید متغیرهای مهمی را که تأثیر پررنگی روی متغیر هدف می‌گذارند، شناسایی کنیم. مدل‌ها با اجرای چندین آزمون می‌توانند میزان معناداری این متغیرها را نشان دهند.

آزمون t در مدل‌ها به‌منظور بررسی معناداری متغیرها به کار می‌رود. فرض صفر این آزمون این است که همبستگی وجود ندارد. سپس با بررسی مقادیر p می‌توان دریافت ضرایب معنادار هستند یا خیر.

پیاده‌سازی در پایتون:

from scipy import stats
rvs1 = stats.norm.rvs(loc=5,scale=10,size=500)
stats.ttest_1samp(rvs1, 7)

چطور می‌توان معناداری آماری یک مدل را آزمود؟

هنگام ساخت یک مدل رده‌بندی یا رگرسیون، تجزیه و تحلیل واریانس یا ANOVA اجرا می‌کنیم، تا اعتبار ضرایب رگرسیون را مورد بررسی قرار دهیم. ANOVA  تغییرات(واریانس) ناشی از مدل را با   تغییرات(واریانس) ناشی از خطا مقایسه می‌کند. اگر واریانس ناشی از مدل با واریانس ناشی از خطا تفاوت معناداری داشته باشد، تأثیر متغیر از نظر آماری معنادار است.

برای تصمیم‌گیری در این مورد از آزمون F استفاده می‌شود. فرض صفر آزمون F این است که ضریب رگرسیون برابر با صفر است.

پیاده‌سازی در پایتون:

import scipy.stats as stats
data1 = stats.norm.rvs(loc=3, scale=1.5, size=20)
data2 = stats.norm.rvs(loc=-5, scale=0.5, size=20)
stats.f_oneway(data1,data2)

پیش‌بینی

در علوم داده با دو نوع داده سروکار داریم: مقطعی و سری‌زمانی. پروفایل مشتریان یک وب‌سایت فروش اینترنتی از نوع داده‌های مقطعی است؛ اما داده‌های مربوط به فروش روزانه‌ یک محصول در طول یک سال، در دسته‌ سری زمانی جای می‌گیرند.

برای داده‌های سری زمانی، اغلب از مدل‌های پیش‌بینی استفاده می‌کنیم، تا میزان فروش یا سود در آینده را برآورد کنیم؛ اما قبل از هر چیز باید با انجام بررسی‌های لازم، الگوهای موجود در داده‌ها را درک کرده و مطمئن شویم برای مسئله‌ پیش‌بینی مناسب هستند.

متخصصان علوم داده معمولاً این آزمون‌ها را روی داده‌های سری‌زمانی اجرا می‌کنند:

۱. آزمون روند

۲. آزمون ایستایی

۳. آزمون خودهمبستگی

۴. آزمون علّی

۵. آزمون روابط زمانی

چطور می‌توان ترند در داده‌های سریزمانی را آزمود؟

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

برای پیش‌بینی این مسیر لازم است مؤلفه‌ روند را برآورد یا حذف کرد. برای تشخیص معناداری روند می‌توان از آزمون‌های آماری استفاده کرد.

آزمون من-کندال برای بررسی وجود یا عدم وجود روند به کار می‌رود. فرض صفر این آزمون این است که هیچ روندی وجود ندارد.

پیاده‌سازی در پایتون:

pip install pymannkendall
import numpy as np
import pymannkendall as mk
data = np.random.rand(250,1)
test_result = mk.original_test(data)
print(test_result)

چطور می‌توان ایستایی داده‌های سریزمانی را به آزمون درآورد؟

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

ADF یا آزمون دیکی-فولر برای بررسی ناایستایی به کار می‌رود. فرض صفر ADF این است که سری‌های زمانی ناایستا هستند. در شرایطی که سطح اطمینان آزمون ۵ درصد است، اگر مقدار p کمتر از ۵۰ درصد باشد، فرض صفر را رد می‌کنیم.

پیاده‌سازی در پایتون:

from statsmodels.tsa.stattools import adfuller
X = [15, 20, 21, 20, 21, 30, 33, 45, 56]
result = adfuller(X)
print(result)

چطور می‌توان خودهمبستگی بین مقادیر یک سریزمانی را آزمود؟

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

برای اینکه بفهمیم خودهمبستگی به اندازه‌ کافی قوی هست یا خیر، می‌توانیم از آزمون‌های آماری استفاده کنیم. آزمون آماری دوربین-واتسون میزان خودهمبستگی را مشخص می‌کند. فرض صفر این آزمون مبنی بر این است که هیچ خودهمبستگی بین مقادیر وجود ندارد.

پیاده‌سازی در پایتون:

from statsmodels.stats.stattools import durbin_watson
X = [15, 20, 21, 20, 21, 30, 33, 45, 56]
result = durbin_watson(X)
print(result)

چطور می‌توان رابطه‌ علّی بین دو متغیر را به آزمون درآورد؟

دو متغیرمتغیرا سری زمانی می‌توانند رابطه‌ علّی با یکدیگر داشته باشند. اگر با مشتقات مالی، ابزاری مالی که بر اساس سهام پایه تعریف می‌شود، آشنایی داشته باشید، می‌دانید که مقادیر حال و آینده روابط علّی دارند. این مقادیر، بسته به موقعیت، روی یکدیگر تأثیر می‌گذارند.

رابطه‌ علّی بین دو متغیر را می‌توان از طریق آزمون علّیت گرنجر آزمود. این آزمون، علیت را بر اساس رگرسیون محاسبه می‌کند. مقدار فعلی یک متغیر از طریق مقادیر وقفه‌دار خود آن متغیر و متغیر دیگر مشخص می‌شود. فرض صفر آزمون گرنجر می‌گوید آزمون F هیچ رابطه‌ علّی شناسایی نکرده است.

پیاده‌سازی در پایتون:

import statsmodels.api as sm
from statsmodels.tsa.stattools import grangercausalitytests
import numpy as np
data = sm.datasets.macrodata.load_pandas()
data = data.data[[“realgdp”, “realcons”]].pct_change().dropna()
gc_res = grangercausalitytests(data, 4)

چطور می‌توان رابطه‌ زمانی بین دو متغیر را آزمود؟

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

این حرکت مشترک را می‌توان از طریق یک ویژگی به نام هم‌انباشتگی بررسی کرد. هم‌انباشتگی را می‌توان از طریق آزمون جوهانسون مورد آزمایش قرار داد. فرض صفر این آزمون این است که هیچ هم‌انباشتگی بین متغیرها وجود ندارد.

پیاده‌سازی در پایتون:

from statsmodels.tsa.vector_ar.vecm import coint_johansen
data = sm.datasets.macrodata.load_pandas()
data = data.data[[“realgdp”, “realcons”]].pct_change().dropna()
#x = getx() # dataframe of n series for cointegration analysis
jres = coint_johansen(data, det_order=0, k_ar_diff=1
print(jres.max_eig_stat)
print(jres.max_eig_stat_crit_vals)

گروه‌بندی داده‌ها

در موقعیت‌های دنیای واقعی، بسیاری از اوقات پیش می‌آید که سعی داریم شباهت بین نقطه‌داده‌ها را پیدا کنیم. به همین دلیل آن‌ها را گروه‌بندی کرده و به دقت مورد مطالعه قرار می‌دهیم، تا بفهمیم این گروه‌ها چقدر با هم تفاوت/شباهت دارند.

همین کار را با متغیرها نیز می‌توان انجام داد. بدین طریق می‌توان متغیرهای نهان را که از تعدادی متغیر قابل‌مشاهده تشکیل شده‌اند، تشخیص داد.

به‌عنوان مثال، شاید یک فروشگاه بخواهد مشتریانش را گروه‌بندی کرده و در دسته‌های هزینه-محور، برند-محور، خریداران عمده و… تفکیک کند. بدین منظور، باید مشتریان را بر اساس ویژگی‌هایی همچون تراکنش‌ها، ویژگی‌های جمعیت‌شناختی، ویژگی‌های روان‌شناختی و عواملی از این دست، در گروه‌های مختلف قرار داد.

در مبحث گروه‌بندی داده‌ها اغلب از این آزمون‌ها استفاده می‌شود:

۱. آزمون کرویت

۲. آزمون کفایت نمونه

۳. آزمون گرایش خوشه‌بندی

چطور می‌توان کرویت متغیرها را آزمود؟

مدل‌های رگرسیون در شرایطی که تعداد متغیرهای موجود در دیتاست خیلی زیاد باشد، عملکرد خوبی از خود نشان نمی‌دهند. در چنین شرایطی، تشخیص متغیرهای مهم نیز چالش‌برانگیز خواهد شد. بنابراین باید تعداد متغیرها را کاهش داد.

تحلیل مؤلفه‌ اصلی یا PCA روشی است برای کاهش تعداد متغیرها و تشخیص عوامل اصلی. به کمک این عوامل، می‌توان یک مدل رگرسیونی با ابعاد کم ساخت و ویژگی‌های کلیدی شیء یا رویداد موردنظر را نیز تشخیص داد.

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

پیاده‌سازی در پایتون:

from scipy.stats import bartlett
a = [8.88, 9.12, 9.04, 8.98, 9.00, 9.08, 9.01, 8.85, 9.06, 8.99]
b = [8.88, 8.95, 9.29, 9.44, 9.15, 9.58, 8.36, 9.18, 8.67, 9.05]
c = [8.95, 9.12, 8.95, 8.85, 9.03, 8.84, 9.07, 8.98, 8.86, 8.98]
stat, p = bartlett(a, b, c)
print(p, stat)

چطور می‌توان کفایت نمونه‌گیری متغیرها آزمود؟

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

آزمون کیزر-میر-الکین یا KMO کفایت نمونه‌گیری کل دیتاست را می‌سنجد. نتیجه‌ این آزمون، بخشی از واریانس متغیرها را که می‌تواند ناشی از عوامل زیربنایی باشد، نشان می‌دهد.

پیاده‌سازی در پایتون:

import pandas as pd
from factor_analyzer.factor_analyzer import calculate_kmo
a = [8.88, 9.12, 9.04, 8.98, 9.00, 9.08, 9.01, 8.85, 9.06, 8.99]
b = [8.88, 8.95, 9.29, 9.44, 9.15, 9.58, 8.36, 9.18, 8.67, 9.05]
c = [8.95, 9.12, 8.95, 8.85, 9.03, 8.84, 9.07, 8.98, 8.86, 8.98]
df= pd.DataFrame({‘x’:a,’y’:b,’z’:c})
kmo_all,kmo_model=calculate_kmo(df)
print(kmo_all,kmo_model)

چطور می‌توان گرایش به خوشه‌بندی یک دیتاست را آزمود؟

به‌منظور گروه‌بندی داده‌ها در دسته‌های مختلف، از تکنیک‌های خوشه‌بندی استفاده می‌کنیم. اما قبل از خوشه‌بندی باید ببینیم آیا داده‌ها گرایش به خوشه‌بندی دارند یا خیر. اگر توزیع داده‌ها  یکنواخت باشد، برای خوشه‌بندی مناسب نخواهند بود.

آزمون هاپکینز، تصادفی بودن فضایی متغیرها را مورد بررسی قرار می‌دهد. فرض صفر این آزمون می‌گوید توزیع داده‌ها غیرتصادفی و  یکنواخت است.

پیاده‌سازی در پایتون:

from sklearn import datasets
from pyclustertend import hopkins
from sklearn.preprocessing import scale
X = scale(datasets.load_iris().data)
hopkins(X,150)

 

در این نوشتار، برخی از پرکاربردترین آزمون‌های آماری در حوزه‌ علوم داده را با هم مرور کردیم. آزمون‌های فراوان دیگری هم وجود دارند که ما به آن‌ها اشاره‌ای نکردیم.

جدیدترین اخبار هوش مصنوعی ایران و جهان را با هوشیو دنبال کنید

میانگین امتیاز / ۵. تعداد ارا :

مطالب پیشنهادی مرتبط

اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
[wpforms id="48325"]