تفسير عائد بعائد آخر
نادرًا ما يتحرك السهم وحده: حين يرتفع السوق يرتفع عادةً معه. يُقدِّر الانحدار الخطي هذه الصلة بملاءمة خط مستقيم y = alpha + beta * x عبر أزواج العوائد (x: السوق وy: السهم). وتختار المربعات الصغرى العادية (OLS) الخط الذي يجعل مجموع مربعات الفجوات الرأسية، أي البواقي، أصغر ما يمكن. وللنتيجة صيغة مغلقة: الميل beta هو التغاير بين x وy مقسومًا على تباين x، ويجعل الحد الثابت alpha الخط يمر بنقطة المتوسطات.
import numpy as np
market = np.array([0.010, -0.005, 0.004, 0.012, -0.008, 0.003, -0.002, 0.007, 0.001, -0.004])
asset = np.array([0.013, -0.004, 0.007, 0.016, -0.011, 0.004, -0.001, 0.011, 0.002, -0.007])
dx = market - market.mean() # deviations of x from its mean
beta = (dx * (asset - asset.mean())).sum() / (dx ** 2).sum()
alpha = asset.mean() - beta * market.mean()
print(round(beta, 4), round(alpha, 5)) # 1.3271 0.00061 the asset moves 1.33 times as much as the marketالبواقي وR التربيعي
الباقي هو ما يعجز الخط عن تفسيره في ملاحظة واحدة: y - (alpha + beta * x). وبواقي OLS تجمع دائمًا إلى الصفر وغير مرتبطة بـ x، وهذا فحص مفيد لشيفرتك. ويبيّن R التربيعي أي جزء من تباين y يفسّره الخط: 1 - sum(البواقي²) / sum((y - mean_y)²). يمتد من 0 (الخط لا يتفوق على المتوسط) إلى 1 (كل النقاط على الخط)، وفي الانحدار البسيط يساوي مربع الارتباط بين x وy.
residuals = asset - (alpha + beta * market)
print(abs(residuals.sum()) < 1e-12, abs((residuals * market).sum()) < 1e-12) # True True the OLS fingerprints
ss_res = (residuals ** 2).sum()
ss_tot = ((asset - asset.mean()) ** 2).sum()
print(round(1 - ss_res / ss_tot, 4)) # 0.9785
print(round(np.corrcoef(market, asset)[0, 1] ** 2, 4)) # 0.9785 the squared correlationCAPM: بيتا وألفا
في التمويل لهذا الانحدار اسم. بيتا هي الحساسية للسوق: بيتا 1.3 تعني أن السهم يميل إلى التحرك 30% أكثر من السوق صعودًا وهبوطًا. وألفا هو متوسط العائد المتبقي بعد احتساب هذا التعرّض للسوق، وهو ما يدّعيه المدير مهارة. ولإبعاد معدل الخالي من المخاطر يستخدم انحدار CAPM العوائد الزائدة: العائد ناقص معدل الخالي من المخاطر، للأصل وللسوق معًا. واستراتيجية ألفا فيها قريبة من الصفر ليست سوى تعرّض للسوق متنكّر.
risk_free = 0.0001 # risk-free return of one day
x = market - risk_free # excess returns of the market
y = asset - risk_free # excess returns of the asset
beta = ((x - x.mean()) * (y - y.mean())).sum() / ((x - x.mean()) ** 2).sum()
alpha = y.mean() - beta * x.mean()
print(round(beta, 4), round(alpha, 6)) # 1.3271 0.000644 a daily alpha of 0.064%, on 10 days of data# Points exactly on y = 1 + 2x: the fit recovers the line
x = np.array([1.0, 2.0, 3.0, 4.0])
y = 1 + 2 * x
dx = x - x.mean()
slope = (dx * (y - y.mean())).sum() / (dx ** 2).sum()
print(y.mean() - slope * x.mean(), slope) # 1.0 2.0- تُصغّر OLS مربعات البواقي:
beta = cov(x, y) / var(x)(مجاميع حواصل مركزة) وalpha = mean_y - beta * mean_x. - البواقي
y - (alpha + beta * x)تجمع إلى صفر؛ وR التربيعي1 - ss_res / ss_totهو حصة التباين المفسَّرة. - CAPM: انحدر العوائد الزائدة للأصل على العوائد الزائدة للسوق؛ بيتا هي التعرّض للسوق وألفا ما تبقى.
التالي: التقلب، قياس مقدار تذبذب العوائد والتنبؤ به.
المختبر: ما الذي يُقيَّم
- ارسم الخط الأنسب عبر النقاط باستخدام
ols_fit25 نقطة - قِس ما يفوت الخط باستخدام
residuals25 نقطة - قيّم جودة الملاءمة باستخدام
r_squared25 نقطة - افصل الأصل إلى تعرّض للسوق ومهارة باستخدام
capm_alpha_beta25 نقطة