Quant
Linear Regression
1.1 什么是Linear Regression
假设因变量y和自变量x之间是线性关系,用数据找到最优参数(The parameters are estimated by minimizing the sum of squared residuals)
Model: \(y = X\beta + \varepsilon\)
- $X$: 特征矩阵(行是样本,列是特征)
- $y$: 目标变量
- $\beta$: 真实的参数(上帝知道,你不知道)
- $\hat{\beta}$: OLS估计出来的参数
- $X\beta$: 模型能解释的部分(特征 x 系数)。
- $\varepsilon$: 模型解释不了的部分(装修,运气,风水….不是函数的一部分,是承认模型不完美)。
- $\hat{y} = X\hat{\beta}$: 预测值(拟合的函数,不包括$\varepsilon$)。
- $y - \hat{y}$: $y - \hat{y} = (X\beta +\varepsilon) - X\hat{\beta} = X(\beta - \hat{\beta}) + \varepsilon$. 只有当$\hat{\beta} = \beta$ (估计完美等于真实值)时,$y - \hat{y} = \varepsilon$。但是现实中$\hat{\beta} \neq \beta$,只是近似。所以准确的说法是: 残差$(y - \hat{y})$是$\varepsilon$的估计,不是$\varepsilon$本身(约等于)。
- $\beta_0$: 截距, 完整的模型是$y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \varepsilon$,矩阵形式中X的第一列全是
1对应$\beta_0$
四个假设:
- 线性: $y$和$x$之间是线性关系 -> 否则coefficient本身就是错的(模型结构不对)
- 样本独立: 样本之间相互独立,一个不影响另一个
- 如果样本重复
- coefficient不变: 数据形状没有变,最优直线还是同一条
- $R^2$不变: 分子分母同比翻倍,比值不变
- t-statistic变大:真实独立样本少于$n$ -> 计算出的SE偏小 -> t-statistic会偏大 -> 虚假显著
- 如果样本重复
-
正态: 残差服从正态分布 -> t-statistic的判断没有依据($ t > 2$就显著这个规则来自正态分布) - 等方差: 残差方差恒定,不随x变化 -> SE计算不准(用一个统一的$\sigma^2$)来代表所有样本,大锅炖会失真
- Heteroscedasticity(异方差): 残差方差不恒定。比如便宜的房子残差小,贵的房子残差大
- OLS用一个统一的$\sigma^2$来代表所有样本,实际上不同样本方差不同 -> $SE$算错 -> t-statistic不可靠
线形保证模型没有建错,独立和等方差保证SE没有算错,正态保证判断标准没有用错
1.2 什么是OLS
Ordinary Least Squares: 普通最小二乘法。最小化残差平方和来找到最优参数
- $X’y$: 每个特征和y的原始关系($X’$的每一行是一个特征,和$y$做内积)
- $X’X$: 特征之间的关系(量级 + 重叠,对角线是各自的量级,非对角线是相关程度)
- $(X’X)^{-1}$: 校准量级 + 拆分重叠(逆矩阵 = 矩阵的’除法’)
- $(X’X)^{-1}X’y$: 每个特征对y的独立贡献
$\hat{\beta} = $ 特征和y的原始关系,校准量级和拆分重叠后的结果
Holding everything else constant, a one unit increase in x is associated with a $\beta$-unit change in $y$
公式推导:
-
最小化残差平方和,求导得 $\hat{\beta} = (X’X)^{-1}X’y$
-
最小化 $L = \sum{(y - X\beta)^2}$, 矩阵写法 = $(y - X\beta)’(y - X\beta)$
-
展开: $L = (y’ - (X\beta)’)(y - X\beta) = (y’ - \beta’X’)(y - X\beta) = y’y - 2\beta’X’y + \beta’X’X\beta$ 其中$y’X\beta$和$\beta’X’y$都是标量,标量转置等于自身,所以合并为$2\beta’X’y$
- 对$\beta$求导然后令其为零: $\frac{\partial L}{\partial \beta} = -2X’y + 2X’X\beta = 0$ 设 $\beta$ 是 $k \times 1$ 的向量,$a$ 是与 $\beta$ 无关的 $k \times 1$ 常向量,$A$ 是与 $\beta$ 无关的 $k \times k$ 对称矩阵,则: \(\frac{\partial (\beta' a)}{\partial \beta} = a\) \(\frac{\partial (\beta' A \beta)}{\partial \beta} = 2A\beta\)
- 解方程, 两边同时左乘$(X’X)^{-1}$
-
-
$y$在特征空间上的投影,残差和特征空间垂直 -> 残差和X的每个列向量内积为零: $X’(y - X\hat{\beta}) = 0$
-
X是特征矩阵(数据) -
X'是X的转置(计算工具) - 特征空间 =
X的列向量能组合出来的所有可能的\hat{y}(一个抽象平面) -
X出现在公式X'(y - X\beta) = 0,不是因为X'是特征空间,而是因为算内积需要转置。残差和特征空间垂直 = 残差和X的每一个列向量的内积为0。算内积要把列向量横过来,所有列一起横过来就是X'
-
Ordinary:
-
Ordinary Least Squares (OLS): 最基本的,所有样本一视同仁 -
Weighted Least Squares (WLS): 给不同样本不同权重(解决Heteroscedasticity) -
Generalized Least Squares (GLS): 更通用,处理残差相关和异方差
平方:
- 避免正负残差相互抵消
- 平方函数:
- 光滑可求导
- 另导数为零就可解出精确公式
- 绝对值函数:
- 在零点有尖角不可导
- 没有精确公式,只能用迭代算法慢慢逼近
- 平方函数:
1.3 $R^2$ (R-squared)
模型解释了多少比例的数据波动 \(R^2 = 1 - \frac{\sum(y - \hat{y})^2}{\sum(y - \bar{y})^2}\)
- ${\sum(y - \hat{y})^2}$: 残差平方和 = 模型没解释的波动
- ${\sum(y - \bar{y})^2}$: 总平方和 = 数据本身的波动
- $R^2 = 1$: 完美预测
- $R^2 = 0$: 和猜均值一样差
- $R^2 = 0.8$: 模型解释了80%的波动 R-squared measures the proportion of variance in $y$ explained by the model. An $R^2$ of 0.8 means the model explains 80% of the variation in $y$.
1.4 Standard Error (SE, 标准误)
均值的标准差 = 均值估计的波动幅度 \(SE = \frac{\sigma}{\sqrt{n}}\)
- $\sigma$: 标准差: 个体数据的波动
- $SE$: 标准误: 均值估计的波动
- n越大,SE越小,估计越稳定
1.5 t-statistic
coefficient除以SE。衡量这个特征是否真的有用还是碰巧 \(t = \frac{coefficient}{SE}\)
-
$ t > 2$: 特征显著(真的有用) - $|t| < 2$: 不显著(可能碰巧) 本质上是信号除以噪音。信号远大于噪音就是显著
1.6 Omitted Variable Bias (OVB, 遗漏变量偏差)
遗漏一个和自变量,因变量都相关的变量,导致coefficient偏高或偏低
1.7 Multicollinearity (多重共线性)
两个特征高度相关,模型分不清各自的贡献。$X’X$里重叠很大,方程组几乎一样,解不稳定。比如$X’X = [[100, 99], [99, 100]]$
- 对角线是每个特征自己的量级,非对角线是两个特征的相关程度。
- 左上100: 面积x面积 - 面积自己的量级
- 右下100: 卧室x卧室 - 卧室自己的量级
- 99: 面积x卧室 - 面积和卧室的相关程度
- 99接近100,说明面积和卧室几乎完全相关
- 两个特征完全不相关: $X’X = [[100, 0], [0, 100]]$
影响
- coefficient不稳定(换一批数据就会变很多)
- $SE$会变大 -> $t-statistic$会变小 -> 两个特征都不显著
- coefficient本身不偏(无偏但是不稳定)
解决办法:
| 删掉一个 | Ridge (L2正则化) | Lasso (L1正则化) |
删掉一个:
类似的信息,就留一个就行
正则化
Ridge (L2正则化) 把所有的coefficient往零压,但不会压到零:
从矩阵角度: 在$X’X$的对角线上加一个$\lambda$。原来是$X’X\beta = X’y$, Ridge: \((X'X + \lambda I)\beta = X'y\) \(\hat{\beta}_{ridge} = (X'X + \lambda I)^{-1}X'y\) 加入了$\lambda I$后,即使两个特征高度相关,方程也不会几乎一样,解便稳定了。
- 直觉: 两个方程本来就几乎重合,加入了$\lambda$后被拉开了一点距离,就能解了。
- 优点: 保留了所有特征,coefficient更稳定
- 缺点: coefficient有偏(往零压了一点), $\lambda$需要调
- 假设两个特征高度相关,
从导数角度: 最小化$\sum(y - X\beta)^2 + \lambda\sum\beta^2$
Ridge的惩罚是$\lambda\beta^2$, 对$\beta$求导是$2\beta$,当$\beta = 0.01$(很小),导数$2\lambda * 0.01 = $很小的力 ,越接近零,拉力越弱,所以永远到不了零,只能无限接近。
对 Ridge 的目标函数求导令其为零:
$\frac{dL}{d\beta} = -2X’y + 2X’X\beta + 2\lambda\beta = 0$
$(-2X’y) + (2X’X + 2\lambda I)\beta = 0$
$(X’X + \lambda I)\beta = X’y$
$\hat{\beta}_{ridge} = (X’X + \lambda I)^{-1}X’y$
对比 OLS: $\hat{\beta} = (X’X)^{-1}X’y$
Lasso(L1正则化) 会把一些coefficient直接压到零 = 自动选择特征:
Lasso 的目标: 最小化 $\sum(y - X\beta)^2 + \lambda\sum|\beta|$
从导数角度: Lasso的惩罚是$\lambda | \beta | $,对$\beta$求导$=\lambda$(常数,和$\beta$无关)。当$\beta = 0.01$(很小),导数 $= \lambda = $ 和$\beta = 100$时一样大。不管$\beta$多小,拉力都一样大,所以当特征对预测的贡献小于$\lambda$时,直接被拉到零 |
比如面积和卧室数高度相关,Lasso可能会吧卧室数的coefficient压倒零,只留面积。相当于自动帮你做了方法1(删除特征),但是不需要手动决定删除哪一个 - 优点: 自动选择特征,结果可解释 - 缺点: 如果两个特征都有用,可能随机删除一个
1.8 测量误差 (Measurement Error)
自变量x带噪声时,coefficient往零偏 = attenuation bias(衰减偏差) — 噪声稀释了$x$和$y$之间的关系,让关系看起来更弱
1.9 相关系数范围
\(\text{corr}(X, Z) = ab \pm \sqrt{(1 - a^2)(1 - b^2)}\) 其中$a = \text{corr}(X, Y), b = \text{corr}(Y, Z)$
为什么有范围限制?
如果$X$和$Y$高度正相关,$Y$和$Z$也高度正相关,那么$X$和$Z$不可能负相关
- 身高和体重正相关(a = 0.8)
- 体重和腰围正相关(b = 0.9)
- 身高和腰围不可能是-0.9(身高越高腰围越小是不合理的) 怎么来的?
相关系数矩阵必须是半正定的(PSD),行列式 >= 0:
\(\begin{array}{c|ccc} & X & Y & Z \\ \hline X & 1 & a & c \\ Y & a & 1 & b \\ Z & c & b & 1 \end{array}\)
- $a = \text{corr}(X, Y)$
- $b = \text{corr}(Y, Z)$
- $c = \text{corr}(X, Z)$ ← 要求的
展开行列式:
$1 - a^2 - b^2 - c^2 + 2abc \geq 0$
把这个关于 c 的不等式解出来(就是一元二次不等式),得到:
$ab - \sqrt{(1-a^2)(1-b^2)} \leq c \leq ab + \sqrt{(1-a^2)(1-b^2)}$
几个特殊情况:
| $a$ | $b$ | 范围 | 直觉 |
|---|---|---|---|
| $1$ | $1$ | $[1, 1]$ | $X = Y = Z$,只能完全正相关 |
| $0$ | $0$ | $[-1, 1]$ | $X$ 和 $Y$ 无关,$Y$ 和 $Z$ 无关,$X$ 和 $Z$ 什么都可能 |
| $0.8$ | $0.6$ | $[0, 0.96]$ | 两个都正相关,第三个不可能是负的 |
| $0.8$ | $-0.6$ | $[-0.96, 0]$ | 一正一负,第三个不可能是正的 |
1.10 Sharpe Ratio
\(Sharpe = \frac{平均收益}{标准差} = 每承担一单位风险赚多少\) 年化: $\text{daily sharpe} * \sqrt{252}$
正自相关(Positive Autocorrelation): 直接乘$\sqrt{252}$会高估Sharpe。因为正自相关 -> 涨跌连续 -> 真实年化波动更大 -> 风险被低估 -> Sharpe被高估
1.11 协方差矩阵
covariance matrix = 所有特征两两之间的协方差,放在一个表格里
比如有面积和卧室两个特征 比如你有面积和卧室两个特征:
| 面积 | 卧室 | |
|---|---|---|
| 面积 | 面积的方差 | 面积和卧室的协方差 |
| 卧室 | 卧室和面积的协方差 | 卧室的方差 |
数字就是 $C = [[4, 2], [2, 9]]$
- 4是面积的方差(面积自己波动多大)
- 9是卧室的方差(卧室自己波动多大)
- 2是面积和卧室的协方差(他们一起变动的程度)
协方差如何算: $cov(X, Y) = mean((x_i - \bar{x})(y_i - \bar{y})$
- cov(X, Y) > 0: 面积大时卧室也多(同涨同跌)
- cov(X, Y) < 0: 面积大时卧室少(反着动)
- cov(X, Y) = 0: 没有关系
协方差矩阵和$X’X$的关系: $C = X’X/n$。 所以covariance matrix就是$X’X$的n倍
半正定: 任何方向上的方差都不能是负数
有两个特征(面积,卧室),他们的covariance matrix是: $C = [[4, 2], [2, 9]]$ 现在想看某个方向上的方差
- $v = [1, 0]$: 只看第一个特征(面积)的方向: v’Cv = [1, 0] x [[4, 2], [2, 9]] x [1, 0]’ = 4(>=0)(不可以为负,方差一定>=0)
- $v = [0, 1]$: 只看第二个特征(卧室)的方向: v’Cv = [0, 1] x [[4, 2], [2, 9]] x [0, 1]’ = 9(>=0)(不可以为负,方差一定>=0)
- $v = [1, 1]$: 同时看面积和卧室的方向: v’Cv = [1, 1] x [[4, 2], [2, 9]] x [1, 1]’ = 17(>=0) (可以为负,即两个特征负相关)
- 半正定 = 这个矩阵作为covariance matrix是合法的 = 任何方向上的方差都>= 0
判断: 所有eigenvalue >= 0就是半正定:
\[Av = \lambda v\]一个矩阵A乘以向量v,如果结果只是v伸缩了(方向没有变),那么$\lambda$就是eigenvalue(数据沿某个方向的方差大小)
- $v$: 特征向量(被A乘完方向不变)
- $\lambda$: 特征值(伸缩倍数)
- eigenvector: 数据变异最大的方向
- eigenvalue: 这个方向上变异有多大
- Principle Component Analysis (PCA,主成分分析): 找到数据变化最大的方向,然后用少数几个方向替代原来的很多特征
- 有100个特征,其中很多是相关的(面积大的房子卧室多,浴室多,车库多), PCA说,这些特征虽然有100个,但是真正独立的方向可能只有10个
- 算covariance matrix
- 找到eigenvalue和eigenvector
- eigenvalue最大的eigenvector = 数据变化最大的方向 = 第一主成分
- eigenvalue 第二大的 = 第二主成分
- 有100个特征,其中很多是相关的(面积大的房子卧室多,浴室多,车库多), PCA说,这些特征虽然有100个,但是真正独立的方向可能只有10个
\(C = [[5, 1], [1, 3]]\) \(Cv = \lambda v\) \((C - \lambda I)v = 0\) \(det(C - \lambda I) = 0\) \(\lambda^2 - 8\lambda + 14 = 0\) \(\lambda_1 = 5.41, \lambda_2 = 2.59\) 都大于零,半正定
注意:对角线是 5 和 3,eigenvalue 是 5.41 和 2.59。不一样,但和相等(这是线性代数的一个性质:矩阵的 trace(迹)= eigenvalue 之和。Trace = 对角线元素之和)
PCA完整例子
4个学生,2个特征:数学和物理成绩
| 学生 | 数学 | 物理 |
|---|---|---|
| A | 90 | 85 |
| B | 70 | 65 |
| C | 80 | 78 |
| D | 60 | 52 |
第一步:去均值
数学均值 = $(90+70+80+60)/4 = 75$,物理均值 = $(85+65+78+52)/4 = 70$
| 学生 | 数学 - 75 | 物理 - 70 |
|---|---|---|
| A | 15 | 15 |
| B | -5 | -5 |
| C | 5 | 8 |
| D | -15 | -18 |
第二步:算covariance matrix
\(cov(数学,数学) = (15^2 + (-5)^2 + 5^2 + (-15)^2) / 4 = 125\) \(cov(物理,物理) = (15^2 + (-5)^2 + 8^2 + (-18)^2) / 4 = 159.5\) \(cov(数学,物理) = (15 \times 15 + (-5) \times (-5) + 5 \times 8 + (-15) \times (-18)) / 4 = 140\)
\[C = [[125, 140], [140, 159.5]]\]协方差140很大(接近对角线),说明数学和物理高度正相关。
第三步:算eigenvalue
\(det(C - \lambda I) = 0\) \((125 - \lambda)(159.5 - \lambda) - 140^2 = 0\) \(\lambda^2 - 284.5\lambda + 337.5 = 0\) \(\lambda_1 = 283.3, \quad \lambda_2 = 1.2\)
第四步:解读
| 主成分 | Eigenvalue | 占比 | 含义 |
|---|---|---|---|
| 第一主成分 | 283.3 | 99.6% | 整体学习能力(数学物理一起高或一起低) |
| 第二主成分 | 1.2 | 0.4% | 微小差异(数学好但物理差,或反过来) |
第一主成分解释了99.6%的变异,说明数学和物理几乎完全同步。原来2个特征,用1个主成分就够了,这1个主成分就是”整体学习能力”。
4个点几乎在一条斜线上,这条斜线就是第一主成分的方向(eigenvector)。数据沿着这条线的变异 = 283.3(很大),垂直于这条线的变异 = 1.2(很小)。
Statistic
2.1 贝叶斯定理:
\(P(A|B) = \frac{P(B|A) P(A)}{P(B)}\) 当$P(A|B)$难算,用容易知道的$P(B|A)$反推
2.2 期望
\(E[X] = 每个值\text{ X }概率, 全部加起来\) 掷骰子的期望 = $1\times\frac{1}{6} + 2\times\frac{1}{6} + 3\times\frac{1}{6} + 4\times\frac{1}{6} + 5\times\frac{1}{6} + 6\times\frac{1}{6} = 3.5$
2.3 标准差和方差
方差: 偏离均值的平方的期望 = 波动有多大 \(Var(X) = E[(X - \mu)^2]\)
标准差 = $\sqrt{Var(X)}$, 单位和原始数据一样
- 方差可加: 独立随机变量的方差可以直接相加
- 标准差不可以加: 要先加方差再开根号
- n次独立随机试验: 总标准差 = $\sigma \times \sqrt{n}$
2.4 常见分布
| 分布 | 含义 | 期望 | 方差 |
|---|---|---|---|
| Bernoulli | 做一次,成功或失败 | $p$ | $p(1-p)$ |
| Binomial | 做 $n$ 次,数成功几次 | $np$ | $np(1-p)$ |
| Geometric | 一直做到第一次成功 | $1/p$ | $(1-p)/p^2$ |
| Uniform$(0,1)$ | $0$ 到 $1$ 等概率 | $0.5$ | $1/12$ |
| Normal | 钟形曲线 | $\mu$ | $\sigma^2$ |
关系: Bernoulli做一次 -> Binomial做n次; Bernoulli做一次 -> Geometric一直做到成功
Bernoulli:做一次,成功或失败
- 掷一次硬币($p=0.5$):期望 $= 0.5$,意味着掷很多很多次,平均一半是正面。方差 $= 0.5 \times 0.5 = 0.25$,标准差 $= 0.5$,意味着每次结果(0或1)平均偏离均值0.5大约0.5,不确定性最大(因为正反各一半,完全不知道会出什么)。
- 投一次篮($p=0.4$):期望 $= 0.4$,意味着投很多次,平均40%会进。方差 $= 0.4 \times 0.6 = 0.24$,比掷硬币小一点,因为不进的概率更大,结果稍微更可预测(大概率不进)。
- 一个用户点不点广告($p=0.02$):期望 $= 0.02$,意味着100个人看广告,平均2个人会点。方差 $= 0.02 \times 0.98 = 0.0196$,非常小,因为几乎可以确定不会点,不确定性很低。
- 一只股票今天涨不涨($p=0.5$):期望 $= 0.5$,意味着长期来看大约一半的天是涨的。方差 $= 0.25$,和掷硬币一样,完全不确定。
Binomial:做 n 次 Bernoulli,数成功几次
- 掷100次硬币($p=0.5$),正面几次?期望 $= 50$,意味着平均50次正面。标准差 $= 5$,意味着大部分情况正面次数在$50 \pm 5$,即45到55之间(68%)。如果出现60次正面,$z = (60-50)/5 = 2$,比较异常。
- 投20次篮($p=0.4$),进几个?期望 $= 8$,意味着平均进8个。标准差 $\approx 2.2$,意味着大部分情况进球数在$8 \pm 2.2$,即6到10个之间。
- 10000个用户看广告($p=0.02$),几人点了?期望 $= 200$,意味着平均200人点击。标准差 $= 14$,意味着正常波动范围是$200 \pm 14$,即186到214人。如果只有150人点了,$z = (150-200)/14 = -3.6$,非常异常,可能广告出了问题。
- 252个交易日($p=0.5$),几天涨?期望 $= 126$,意味着平均126天涨。标准差 $\approx 7.9$,意味着正常范围是$126 \pm 8$,即118到134天。
Geometric:一直做到第一次成功
- 一直掷骰子直到出6($p=1/6$):期望 $= 6$次,意味着平均要掷6次才能第一次掷到6。
- 一直投篮直到第一次进($p=0.4$):期望 $= 2.5$次,意味着平均投2到3次就能进第一个球。
- 一直面试直到拿到第一个offer($p=0.1$):期望 $= 10$家,意味着平均要面10家公司才能拿到第一个offer。
- 一直交易直到第一次盈利($p=0.6$):期望 $\approx 1.67$次,意味着平均不到2次交易就能盈利一次。
Uniform(0,1):每个值概率相等
- 随机生成一个0到1的数:期望 $= 0.5$,意味着生成很多次,平均值趋向0.5。方差 $= 1/12 \approx 0.083$,标准差 $\approx 0.289$,意味着每次结果平均偏离0.5大约0.29。
- 5个人各取一个,最大值期望 $= 5/6 \approx 0.833$,意味着5个人里最大的那个数平均在0.833附近。
- 100个人各取一个,最大值期望 $= 100/101 \approx 0.99$,意味着人越多,最大值越接近1。
Normal:中间多两边少(68-95-99.7规则)
- 全班考试($\mu=70, \sigma=10$):68%在$[60, 80]$意味着大部分人考60到80分。95%在$[50, 90]$意味着几乎所有人在50到90之间。考了90分 $\to z = 2$,意味着你超过了大约95%的人。
- 身高($\mu=170cm, \sigma=6cm$):68%在$[164, 176]$意味着大部分人身高在这个范围。190cm $\to z = 3.3$,意味着极其罕见,大约1000人里只有1个。
- 股票日收益($\mu=0.05\%, \sigma=2\%$):68%在$[-1.95\%, 2.05\%]$意味着大部分天变化不超过2%。某天跌5% $\to z = 2.5$,意味着这种跌幅大约100天才出现1次,值得关注。
- 零件尺寸($\mu=10cm, \sigma=0.1cm$):95%在$[9.8, 10.2]$意味着合格范围。10.3cm $\to z = 3$,意味着偏差超过3个标准差,应该退回。
Enjoy Reading This Article?
Here are some more articles you might like to read next: