من صيغة إلى انحدار كامل
تلائم statsmodels.formula.api.ols('excess ~ mkt_rf + smb + hml', data=table).fit() انحدار المربعات الصغرى العادي من صيغة بسطر واحد: الاسم يسار ~ هو المراد تفسيره والأسماء يمينه هي المتغيرات المفسِّرة ويُضاف حد ثابت تلقائيًا (اكتب - 1 لإزالته). ويحمل كائن النتيجة كل شيء: params (المعاملات) وbse (أخطاؤها المعيارية) وtvalues وpvalues وrsquared وrsquared_adj وaic وresid وsummary() للتقرير المطبوع. ولأن كلًّا منها Series من pandas أو عدد فوضعها جنبًا إلى جنب في DataFrame يعطي جدولًا نظيفًا، وتطبق res.predict(new_frame) الصيغة المُلائمة على صفوف جديدة بأسماء الأعمدة نفسها. والانحدار العاملي لسهم هو الاستعمال المعتاد: excess عائد السهم فوق معدل الخالي من المخاطر وmkt_rf عائد السوق وsmb عامل الحجم وhml عامل القيمة.
تجعل مقارنتان الجدول مفيدًا. يستعمل CAPM السوق وحده excess ~ mkt_rf ويضيف نموذج العوامل الثلاثة smb وhml. إضافة متغيرات لا تخفض R² أبدًا فاستعمل R² المصحح أو AIC أو اختبار F: تعيد ff3.compare_f_test(capm) إحصائية F وقيمة p وعدد المتغيرات الإضافية، وقيمة p الصغيرة تعني أن العاملين الإضافيين يضيفان قدرة تفسيرية حقيقية. ونقطة روتينية ثانية هي الجدول نفسه. تأتي عائدات نهاية الشهر من آخر إغلاق في كل شهر تقويمي (prices.groupby(prices.index.to_period('M')).last() ثم pct_change()) ويجب ضمّها إلى جدول العوامل في الشهر نفسه: الانحدار على أشهر غير متوافقة انحدار على ضجيج.
- سطر واحد وانحدار واحد: تسمّي الصيغة المتغير التابع والمفسِّرة ويحمل كائن النتيجة كل إحصائية.
- قارن النماذج المتداخلة بالأداة الصحيحة: يرتفع R² دائمًا فاستعمل R² المصحح أو AIC أو اختبار F.
- حاذِ الأشهر أولًا: عائد نهاية الشهر يخص عوامل الشهر نفسه.
المختبر: ما الذي يُقيَّم
- جدول الانحدار الشهري15 نقطة
- ملاءمة CAPM10 نقطة
- ملاءمة العوامل الثلاثة10 نقطة
- جدول معاملات نظيف15 نقطة
- هل يستحق النموذج الأكبر؟15 نقطة
- تنبؤ10 نقطة
- الدراسة الكاملة25 نقطة