مقدمة عن Statsmodels
Statsmodels هي مكتبة Python قوية مصممة لإجراء التحليل الإحصائي للبيانات. توفر أدوات لبناء نماذج الانحدار، تقدير المعاملات، اختبار الفرضيات الإحصائية، وتحليل السلاسل الزمنية. تُستخدم Statsmodels على نطاق واسع في الاقتصاد القياسي، الإحصاء الحيوي، والعلوم الاجتماعية، مع تقديم تفسير إحصائي عميق للنتائج.
الميزات الرئيسية لمكتبة Statsmodels
تحليل الانحدار
توفر Statsmodels إمكانيات واسعة لتحليل الانحدار، بما في ذلك المربعات الصغرى العادية (OLS)، النماذج الخطية المعممة (GLM)، الانحدار القوي، ونماذج البيانات اللوحية. تدعم المكتبة طرق التقدير البارامترية واللابارامترية.
تحليل السلاسل الزمنية
تشمل وحدة السلاسل الزمنية نماذج ARIMA، SARIMA، التمهيد الأسي، الانحدار الذاتي المتجه (VAR)، وغيرها الكثير. تتوفر دوال لاختبار الثباتية، تحليل المكونات، والتنبؤ.
اختبار الفرضيات الإحصائية
تحتوي المكتبة على مجموعة واسعة من الاختبارات الإحصائية: اختبارات t، اختبارات F، اختبارات التوزيع الطبيعي، اختبارات تساوي التباينات، اختبارات الارتباط الذاتي، وغيرها.
تحليل التباين (ANOVA)
تدعم المكتبة نماذج ANOVA أحادية ومتعددة العوامل، ANCOVA، القياسات المتكررة، والتأثيرات المختلطة.
الطرق اللابارامترية
تشمل طرق تقدير الكثافة بالنواة، الانحدار اللابارامتري، والاختبارات المعتمدة على الرتب.
تثبيت واستيراد Statsmodels
تثبيت المكتبة
يتم تثبيت المكتبة باستخدام الأمر القياسي:
pip install statsmodels
للحصول على وظائف إضافية، يمكن التثبيت مع جميع التبعيات:
pip install statsmodels[complete]
استيراد المكونات الأساسية
import statsmodels.api as sm
import statsmodels.formula.api as smf
import statsmodels.tsa.api as tsa
import statsmodels.stats.api as sms
هيكل المكتبة والوحدات الرئيسية
واجهات API الرئيسية
statsmodels.api — الواجهة التقليدية مع تحديد مصفوفات البيانات مباشرة
statsmodels.formula.api — واجهة تعتمد على الصيغ، مشابهة للغة R
statsmodels.tsa — وحدة تحليل السلاسل الزمنية
statsmodels.stats — الاختبارات الإحصائية والتشخيص
statsmodels.graphics — تصور النتائج
العمل مع البيانات وإعدادها
تعمل Statsmodels بشكل مثالي مع pandas.DataFrame:
import pandas as pd
import numpy as np
# تحميل البيانات
data = pd.read_csv("dataset.csv")
# التحقق من القيم المفقودة
print(data.isnull().sum())
# الإحصائيات الأساسية
print(data.describe())
الانحدار الخطي (OLS)
الواجهة التقليدية
import statsmodels.api as sm
# إعداد البيانات
X = data[["x1", "x2", "x3"]]
X = sm.add_constant(X) # إضافة الثابت
y = data["y"]
# بناء النموذج
model = sm.OLS(y, X).fit()
print(model.summary())
# استخراج المعاملات
print("المعاملات:", model.params)
print("قيم P:", model.pvalues)
print("R-squared:", model.rsquared)
الواجهة القائمة على الصيغ
import statsmodels.formula.api as smf
# استخدام الصيغ
model = smf.ols("y ~ x1 + x2 + x3", data=data).fit()
print(model.summary())
# التفاعل بين المتغيرات
model_interaction = smf.ols("y ~ x1 * x2 + x3", data=data).fit()
# المتغيرات الفئوية
model_cat = smf.ols("y ~ C(category) + x1", data=data).fit()