资本资产定价模型

本文展示了如何用Python计算科技股的CAPM预期收益率,通过历史数据估计beta系数。结果表明CAPM在预测单只及多只股票的表现上效果不佳,可能因单一风险因子和线性假设限制了其预测能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类似的方法也可以应用于 CAPM 的实际测试。假设前面所讲的数据驱动型投资者希望应用 CAPM 来获得之前的 4 只科技股的预期收益率。下面的 Python 代码会首先求出给定年份 的每只股票的 beta 系数,然后根据该股票的 beta 系数和市场投资组合的表现,计算其明年104 | 第 4 章 的预期收益率。市场投资组合由标准普尔 500 指数近似计算。 In [83]: r = 0.005 ➊ In [84]: market = '.SPX' ➋ In [85]: rets = np.log(raw / raw.shift(1)).dropna() In [86]: res = pd.DataFrame() In [87]: for sym in rets.columns[:4]: print('\n' + sym) print(54 * '=') for year in range(2010, 2019): rets_ = rets.loc[f'{year}-01-01':f'{year}-12-31'] muM = rets_[market].mean() * 252 cov = rets_.cov().loc[sym, market] ➌ var = rets_[market].var() ➌ beta = cov / var ➌ rets_ = rets.loc[f'{year + 1}-01-01':f'{year + 1}-12-31'] muM = rets_[market].mean() * 252 mu_capm = r + beta * (muM - r) ➍ mu_real = rets_[sym].mean() * 252 ➎ res = res.append(pd.DataFrame({'symbol': sym, 'mu_capm': mu_capm, 'mu_real': mu_real}, index=[year + 1]), sort=True) ➏ print('{} | beta: {:.3f} | mu_capm: {:6.3f} | mu_real: {:6.3f}' .format(year + 1, beta, mu_capm, mu_real)) ➏ ➊ 指定无风险短期利率。 ➋ 定义市场投资组合。 ➌ 求出股票的 beta 系数。 ➍ 根据上一年的 beta 系数和当年的市场投资组合表现计算预期收益率。 ➎ 计算当年股票的实际业绩。 ➏ 汇集并打印所有结果。 以上代码的输出如下。 AAPL.O ====================================================== 2011 | beta: 1.052 | mu_capm: -0.000 | mu_real: 0.228 2012 | beta: 0.764 | mu_capm: 0.098 | mu_real: 0.275 2013 | beta: 1.266 | mu_capm: 0.327 | mu_real: 0.053 2014 | beta: 0.630 | mu_capm: 0.070 | mu_real: 0.320 2015 | beta: 0.833 | mu_capm: -0.005 | mu_real: -0.047 2016 | beta: 1.144 | mu_capm: 0.103 | mu_real: 0.096 2017 | beta: 1.009 | mu_capm: 0.180 | mu_real: 0.381 2018 | beta: 1.379 | mu_capm: -0.091 | mu_real: -0.071 2019 | beta: 1.252 | mu_capm: 0.316 | mu_real: 0.621数据驱动的金融学 | 105 MSFT.O ====================================================== 2011 | beta: 0.890 | mu_capm: 0.001 | mu_real: -0.072 2012 | beta: 0.816 | mu_capm: 0.104 | mu_real: 0.029 2013 | beta: 1.109 | mu_capm: 0.287 | mu_real: 0.337 2014 | beta: 0.876 | mu_capm: 0.095 | mu_real: 0.216 2015 | beta: 0.955 | mu_capm: -0.007 | mu_real: 0.178 2016 | beta: 1.249 | mu_capm: 0.113 | mu_real: 0.113 2017 | beta: 1.224 | mu_capm: 0.217 | mu_real: 0.321 2018 | beta: 1.303 | mu_capm: -0.086 | mu_real: 0.172 2019 | beta: 1.442 | mu_capm: 0.364 | mu_real: 0.440 INTC.O ====================================================== 2011 | beta: 1.081 | mu_capm: -0.000 | mu_real: 0.142 2012 | beta: 0.842 | mu_capm: 0.108 | mu_real: -0.163 2013 | beta: 1.081 | mu_capm: 0.280 | mu_real: 0.230 2014 | beta: 0.883 | mu_capm: 0.096 | mu_real: 0.335 2015 | beta: 1.055 | mu_capm: -0.008 | mu_real: -0.052 2016 | beta: 1.009 | mu_capm: 0.092 | mu_real: 0.051 2017 | beta: 1.261 | mu_capm: 0.223 | mu_real: 0.242 2018 | beta: 1.163 | mu_capm: -0.076 | mu_real: 0.017 2019 | beta: 1.376 | mu_capm: 0.347 | mu_real: 0.243 AMZN.O ====================================================== 2011 | beta: 1.102 | mu_capm: -0.001 | mu_real: -0.039 2012 | beta: 0.958 | mu_capm: 0.122 | mu_real: 0.374 2013 | beta: 1.116 | mu_capm: 0.289 | mu_real: 0.464 2014 | beta: 1.262 | mu_capm: 0.135 | mu_real: -0.251 2015 | beta: 1.473 | mu_capm: -0.013 | mu_real: 0.778 2016 | beta: 1.122 | mu_capm: 0.102 | mu_real: 0.104 2017 | beta: 1.118 | mu_capm: 0.199 | mu_real: 0.446 2018 | beta: 1.300 | mu_capm: -0.086 | mu_real: 0.251 2019 | beta: 1.619 | mu_capm: 0.408 | mu_real: 0.207 图 4-9 比较了在考虑到上一年的 beta 系数和当年的市场投资组合表现时,单只股票的预期 (期望)收益率与该股票本年的实际收益率。显然,CAPM 的原始形式在仅基于 beta 系数 预测股票表现时并没有真正发挥作用。 In [88]: sym = 'AMZN.O' In [89]: res[res['symbol'] == sym].corr() Out[89]: mu_capm mu_real mu_capm 1.000000 -0.004826 mu_real -0.004826 1.000000 In [90]: res[res['symbol'] == sym].plot(kind='bar', figsize=(10, 6), title=sym);106 | 第 4 章 2011年 2012年 2013年 2014年 2015年 2016年 2017年 2018年 2019年 图 4-9:单只股票的 CAPM 预期收益率与实际股票收益率 图 4-10 比较了 CAPM 预期股票收益率的平均值与实际收益率的平均值。在这里,CAPM 同样表现不佳。 平均价值 AAPL.O AMZN.O INTC.O MSFT.O 图 4-10:多只股票的 CAPM 预期平均收益率与实际股票平均收益率 很容易看到,CAPM 对所分析股票的预期平均收益率影响不大,在 12.2% 和 14.4% 之间。 然而,股票的实际平均收益率表现出了很高的变异性,这一比例在 9.4% 和 29.2% 之间。 仅凭市场投资组合表现和 beta 系数的关系显然不能解释(科技)股票已观察到的收益率。数据驱动的金融学 | 107 In [91]: grouped = res.groupby('symbol').mean() grouped Out[91]: mu_capm mu_real symbol AAPL.O 0.110855 0.206158 AMZN.O 0.128223 0.259395 INTC.O 0.117929 0.116180 MSFT.O 0.120844 0.192655 In [92]: grouped.plot(kind='bar', figsize=(10, 6), title='Average Values'); CAPM 的预测能力 相对于市场投资组合而言,CAPM 对股票未来表现的预测能力非常低,甚至 对某些股票不具备预测能力。其中一个原因可能是 CAPM 基于与 MVP 理论 相同的核心假设,即投资者只关心投资组合和 / 或股票的(预期)收益率和 (预期)波动率。从建模的角度来看,一个假设性的问题是,单个风险因子 是否足以解释股票收益率的变化?或者股票收益率和市场投资组合表现之间 是否可能存在非线性关系?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值