早在2018年,我开始对资本市场产生兴趣。理解资本市场的基本理论对财富积累至关重要。我开始阅读所有经典著作,如《聪明的投资者》和《证券分析》。在这一系列文章中,我想与读者分享在Python编程语言背景下理解金融理论的旅程。在文章的第一大部分,我们将专注于金融模型的线性方面,资本资产定价模型(CAPM)、套利定价理论(APT)和线性优化。后续章节将涵盖非线性模型。
线性是现实世界的简化版本。它在概念上容易理解,在计算上也是可处理的。这是理解金融理论的一个很好的起点。
什么是线性?
在数学中,线性是指满足两个关键属性的关系:
- 可加性: f(x + y) = f(x) + f(y)
- 齐次性: f(αx) = αf(x)
在金融中,线性关系表现为:
- 投资组合收益是个别资产收益的线性组合
- 风险因子以线性方式组合来解释资产收益
- 优化问题可以表述为线性或二次规划
1. 资本资产定价模型(CAPM)
理论基础
资本资产定价模型代表了金融学中最具影响力的理论之一。CAPM提供了资产预期收益与其系统性风险之间的线性关系。CAPM假设投资者是理性的,以及其他几个因素。
CAPM公式
证券市场线方程将预期收益表示为:
\[E[R_i] = R_f + \beta_i (E[R_m] - R_f)\]其中:
- $E[R_i]$ = 资产i的预期收益
- $R_f$ = 无风险利率(如国库券利率)
- $\beta_i$ = 资产i的贝塔(系统性风险度量)
- $E[R_m]$ = 预期市场收益
- $(E[R_m] - R_f)$ = 市场风险溢价
理解贝塔
贝塔衡量资产对市场变动的敏感性:
\[\beta_i = \frac{Cov(R_i, R_m)}{Var(R_m)} = \rho_{i,m} \frac{\sigma_i}{\sigma_m}\]解释:
- $\beta = 1$:资产与市场完全同步移动
- $\beta > 1$:资产比市场波动更大(激进型)
- $\beta < 1$:资产比市场波动更小(防御型)
- $\beta < 0$:资产与市场反向移动(罕见,如黄金)
经济直觉
CAPM的线性关系捕捉了一个基本权衡:
- 更高的系统性风险(贝塔)需要更高的预期收益
- 可分散风险不被补偿(可以被消除)
- 市场投资组合是均值-方差有效的
- 风险溢价与贝塔成正比
# Python实现
from scipy import stats
# 样本数据
stock_returns = [0.065, 0.0265, -0.0593, -0.001, 0.0346]
market_returns = [0.055, -0.09, -0.041, 0.045, 0.022]
# 执行线性回归
beta, alpha, r_value, p_value, std_err = stats.linregress(stock_returns, market_returns)
print(f"贝塔: {beta}, 阿尔法: {alpha}")
贝塔: 0.5077431878770808, 阿尔法: -0.008481900352462384
CAPM应用
1. 权益资本成本
- $r_e = R_f + \beta_e (R_m - R_f)$
- 用于DCF估值和WACC计算
2. 绩效评估
- 詹森阿尔法: $\alpha = R_p - [R_f + \beta_p(R_m - R_f)]$
- 正阿尔法表示超额绩效
3. 投资组合管理
- 贝塔目标设定以达到期望的风险水平
- 基于贝塔调整的市场择时策略
2. 套利定价理论(APT)
理论基础
套利定价理论通过承认多个因子驱动资产收益来扩展CAPM。APT基于一价定律并假设套利机会**被迅速消除,这意味着APT比CAPM限制更少。
APT假设
- 资产收益遵循线性因子模型
- 不存在套利机会
- 资本市场完全竞争
- 投资者偏好更多财富而非更少
多因子模型
APT将收益表示为多个因子的线性组合:
\[R_i = \alpha_i + \beta_{i,1}F_1 + \beta_{i,2}F_2 + \ldots + \beta_{i,k}F_k + \epsilon_i\]其中:
- $R_i$ = 资产i的收益
- $\alpha_i$ = 资产特定收益(在均衡中应为零)
- $F_j$ = 因子j(如GDP增长、通胀、利率)
- $\beta_{i,j}$ = 资产i对因子j的敏感性
- $\epsilon_i$ = 特质性误差项
经济直觉
APT的多因子方法认识到:
- 多个系统性风险来源影响资产收益
- 因子分散化可以降低投资组合风险
- 不同资产具有不同的因子暴露
- 不可分散因子存在风险溢价
# Python实现
import numpy as np
import statsmodels.api as sm
# 生成样本数据
num_periods = 9
all_values = np.array([np.random.random(8) for _ in range(num_periods)])
y_values = all_values[:, 0]
x_values = all_values[:, 1:]
x_values = sm.add_constant(x_values)
# 执行OLS回归
results = sm.OLS(y_values, x_values).fit()
print(results.summary())
OLS Regression Results
===============================================================================
Dep. Variable: y R-squared: 0.968
Model: OLS Adj. R-squared: 0.747
Method: Least Squares F-statistic: 4.377
Date: Sat, 31 May 2025 Prob (F-statistic): 0.353
Time: 15:50:56 Log-Likelihood: 14.758
No. Observations: 9 AIC: -13.52
Df Residuals: 1 BIC: -11.94
Df Model: 7
Covariance Type: nonrobust
===============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const -0.3433 0.213 -1.612 0.353 -3.049 2.362
x1 0.2754 0.201 1.371 0.401 -2.278 2.828
x2 0.5616 0.262 2.144 0.278 -2.767 3.890
x3 -0.2459 0.345 -0.713 0.606 -4.631 4.139
x4 0.4624 0.248 1.862 0.314 -2.693 3.618
x5 0.8224 0.349 2.357 0.255 -3.612 5.257
x6 -1.3773 0.413 -3.332 0.186 -6.629 3.875
x7 1.1494 0.337 3.411 0.182 -3.133 5.432
===============================================================================
Omnibus: 0.037 Durbin-Watson: 2.092
Prob(Omnibus): 0.982 Jarque-Bera (JB): 0.268
Skew: -0.022 Prob(JB): 0.875
Kurtosis: 2.156 Cond. No. 23.6
===============================================================================
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
APT与CAPM比较
方面 | CAPM | APT |
---|---|---|
因子 | 单一(市场) | 多个 |
假设 | 限制性强 | 更灵活 |
理论基础 | 均值-方差优化 | 套利论证 |
风险度量 | 仅贝塔 | 多个贝塔 |
应用 | 资本成本 | 风险管理、归因 |
实际应用
1. 风险管理
- 用于投资组合监控的多因子风险模型
- 跨不同经济情景的压力测试
- 针对特定风险因子的对冲策略
2. 绩效归因
- 按因子贡献分解收益
- 识别超额/低于表现的来源
- 投资策略的风格分析
3. 投资组合构建
- 基于因子的投资(智能贝塔策略)
- 跨多个维度的风险预算
- 基于因子观点的战术资产配置
数学上的优势
1. 叠加原理 线性模型满足可加性:多个因子的效应等于各个效应的总和。
2. 可扩展性 线性关系是尺度不变的:输入加倍,输出按比例加倍。
3. 计算效率 线性系统可以使用矩阵代数求解,使得:
- 实时投资组合优化
- 大规模风险计算
- 蒙特卡罗模拟
下一篇:金融中的线性优化 →