2.2 线性方程组
解方程是量化里最常见的操作——因子分析、回归、资产定价,最终都归结为解一个线性系统。
一、形式
方程组
可以写成矩阵形式:
如果 可逆,解就是 。
二、手算
方法一:代入法
由第二式得 ,代入第一式:
代入得 。
方法二:矩阵求逆
两种方法结果一样:, ✅
三、无解和无穷多解
不是所有方程组都有唯一解。
| 情况 | 例子 | 含义 |
|---|---|---|
| 唯一解 | 上面的 | 两条直线相交于一点 |
| 无解 | 平行线,不相交 | |
| 无穷多解 | 两直线重合 |
Quant Link:线性回归就是解一个"数据点多于变量数"的方程组,这种情况通常无解(数据点不可能全落在一条直线上)。退而求其次,我们找最接近的解——最小化 ,这就是最小二乘法,解为 。
四、Python 实践
python
import numpy as np
# 解线性方程组
A = np.array([[2, 3], [4, -1]])
b = np.array([7, 7])
x = np.linalg.solve(A, b)
print(f"解: x={x[0]}, y={x[1]}") # x=2, y=1
# 最小二乘(线性回归)
# 假设 4 个数据点 (x, y): (1, 2.1), (2, 3.9), (3, 6.0), (4, 8.2)
X = np.array([[1, 1], [1, 2], [1, 3], [1, 4]]) # 第一列截距
y = np.array([2.1, 3.9, 6.0, 8.2])
beta, residuals, rank, s = np.linalg.lstsq(X, y, rcond=None)
print(f"回归系数 (截距, 斜率): {beta}")
print(f"预测值: {X @ beta}")
print(f"真实值: {y}")\n> 下一步:继续学习 2.3 正定矩阵与二次型