تست فرضیه برای بررسی معنی داری آماری در Pandas و scikit-learn
در تجزیه و تحلیل داده، تست فرضیه ابزاری قدرتمند برای تعیین اینکه آیا شواهد کافی برای رد یک فرضیه خاص (فرضیه صفر) در مورد جمعیت وجود دارد یا خیر، است. Pandas و scikit-learn به عنوان کتابخانه های قدرتمند در پایتون، ابزارهای مختلفی را برای انجام انواع مختلف تست های فرضیه به طور کارآمد و دقیق ارائه می دهند.
۱. تست های t:
- تست t تک نمونه ای: برای مقایسه میانگین یک نمونه با یک مقدار ثابت استفاده می شود.
Python
import pandas as pd
from scipy import stats
data = pd.DataFrame({"X": [۱۰, ۱۲, ۱۴, ۱۵, ۱۶]})
mu = ۱۳ # مقدار ثابت
t_statistic, p_value = stats.ttest_1samp(data["X"], mu)
if p_value < ۰.۰۵:
print(f"میانگین نمونه به طور معنی داری با {mu} متفاوت است (p-value = {p_value:.۳f})")
else:
print(f"تفاوت معنی داری بین میانگین نمونه و {mu} وجود ندارد (p-value = {p_value:.۳f})")
- تست t دو نمونه ای: برای مقایسه میانگین دو نمونه مستقل استفاده می شود.
Python
data1 = pd.DataFrame({"X": [۱۰, ۱۲, ۱۴, ۱۵]})
data2 = pd.DataFrame({"X": [۱۱, ۱۳, ۱۵, ۱۶]})
t_statistic, p_value = stats.ttest_ind(data1["X"], data2["X"])
if p_value < ۰.۰۵:
print("میانگین دو نمونه به طور معنی داری متفاوت است (p-value = {p_value:.3f})")
else:
print("تفاوت معنی داری بین میانگین دو نمونه وجود ندارد (p-value = {p_value:.3f})")
۲. آزمون های ANOVA:
- ANOVA تک عاملی: برای مقایسه میانگین های بیش از دو گروه نمونه استفاده می شود.
Python
import statsmodels.api as sm
data = pd.DataFrame({"گروه": ["A", "A", "A", "B", "B", "B", "C", "C"], "X": [۱۰, ۱۲, ۱۴, ۱۱, ۱۳, ۱۵, ۱۶, ۱۷]})
model = sm.ols("X ~ گروه", data=data).fit()
anova = model.anova()
print(anova)
- ANOVA چند عاملی: برای مقایسه میانگین ها در متغیر وابسته بر اساس چندین متغیر مستقل استفاده می شود.
۳. تست های کای دو:
- آزمون کای دو استقلال: برای بررسی اینکه آیا دو متغیر طبقه بندی شده مستقل از یکدیگر هستند یا خیر استفاده می شود.
Python
import pandas as pd
from scipy import stats
data = pd.DataFrame({"رنگ_مو": ["قهوه ای", "قهوه ای", "بلوند", "بلوند", "مشکی", "مشکی"], "رنگ_چشم": ["قهوه ای", "آبی", "قهوه ای", "آبی", "قهوه ای", "آبی"]})
chi2_statistic, p_value = stats.chi2_contingency(data["رنگ_مو"].value_counts().reset_index(name="تعداد")["تعداد"], data["رنگ_چشم"].value_counts().reset_index(name="تعداد")["تعداد"])
if p_value < ۰.۰۵:
print("رنگ مو و رنگ چشم مستقل نیستند (p-value = {p_value:.3f})")
else:
print("رنگ مو و رنگ چشم مستقل هستند (p-value = {p_value:.3f})")
۴. نکات:
- فرضیه های مناسب را قبل از انجام هر تست فرضیه ای مشخص کنید.
- سطح معنی داری (α) را انتخاب کنید.
- به p-value توجه کنید و آن را با سطح معنی داری مقایسه کنید.
- نتیجه تست فرضیه را تفسیر کنید.
**با تسلط بر تست فرضیه در Pandas و scikit-learn، می توانید شواهد آماری را برای حمایت