The Capital Asset Pricing Model

Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน

Dakota Wixom

Quantitative Analyst | QuantCourse.com

ต้นกำเนิดของโมเดลการกำหนดราคาสินทรัพย์

CAPM

The Capital Asset Pricing Model คือรากฐานสำคัญของโมเดลการกำหนดราคาสินทรัพย์และโมเดลปัจจัยอื่น ๆ อีกมากมายในด้านการเงิน

Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน

ผลตอบแทนส่วนเกิน

การคำนวณผลตอบแทนส่วนเกิน ให้นำผลตอบแทนรวมลบด้วยอัตราผลตอบแทนปราศจากความเสี่ยง:

$$ \text{Excess Return} = \text{Return} - \text{Risk Free Return} $$

ตัวอย่าง:

ลงทุนในบราซิล:

10% Portfolio Return - 15% Risk Free Rate = -5% Excess Return

ลงทุนในสหรัฐฯ:

10% Portfolio Return - 3% Risk Free Rate = 7% Excess Return

Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน

The Capital Asset Pricing Model

$$ E(R_{P}) - RF = \beta_{{P}}(E(R_{M})-RF)\ $$

  • $E(R_{P}) - RF$: ผลตอบแทนส่วนเกินที่คาดหวังของหุ้นหรือพอร์ตโฟลิโอ P
  • $E(R_{M}) - RF$: ผลตอบแทนส่วนเกินที่คาดหวังของพอร์ตโฟลิโอตลาดในวงกว้าง B
  • $RF$: อัตราผลตอบแทนปราศจากความเสี่ยงในภูมิภาค
  • $\beta_{{P}}$: เบต้าของพอร์ตโฟลิโอ หรือการรับความเสี่ยงต่อพอร์ตโฟลิโอตลาด B
Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน

การคำนวณเบต้าด้วยความแปรปรวนร่วม

การคำนวณเบต้าย้อนหลังโดยใช้ความแปรปรวนร่วม:

$$ \beta_P = \frac{Cov(R_P, R_B)}{Var(R_B)} $$

  • $\beta_P$: เบต้าของพอร์ตโฟลิโอ
  • $Cov(R_P, R_B)$: ความแปรปรวนร่วมระหว่างพอร์ตโฟลิโอ (P) และดัชนีตลาดอ้างอิง (B)
  • $Var(R_B)$: ความแปรปรวนของดัชนีตลาดอ้างอิง
Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน

การคำนวณเบต้าด้วยความแปรปรวนร่วมใน Python

สมมติว่ามีผลตอบแทนส่วนเกินของพอร์ตโฟลิโอและตลาดอยู่ในออบเจกต์ Data แล้ว:

covariance_matrix = Data[["Port_Excess","Mkt_Excess"]].cov()
covariance_coefficient = covariance_matrix.iloc[0, 1]
benchmark_variance = Data["Mkt_Excess"].var()
portfolio_beta = covariance_coefficient / benchmark_variance
portfolio_beta
0.93
Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน

การถดถอยเชิงเส้น

ตัวอย่างการถดถอยเชิงเส้น:

สูตรการถดถอยในรูปแบบเมทริกซ์:

Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน

การคำนวณเบต้าด้วยการถดถอยเชิงเส้น

สมมติว่ามีผลตอบแทนส่วนเกินของพอร์ตโฟลิโอและตลาดอยู่ในออบเจกต์ Data แล้ว:

import statsmodels.formula.api as smf
model = smf.ols(formula='Port_Excess ~ Mkt_Excess', data=Data)
fit = model.fit()
beta = fit.params["Mkt_Excess"]
beta
0.93
Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน

R-Squared vs Adjusted R-Squared

การดึงค่า adjusted r-squared และ r-squared:

import statsmodels.formula.api as smf
model = smf.ols(formula='Port_Excess ~ Mkt_Excess', data=Data)
fit = model.fit()
r_squared = fit.rsquared
r_squared
0.70
adjusted_r_squared = fit.rsquared_adj
0.65
Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน

มาฝึกกันเถอะ!

Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน

Preparing Video For Download...