对「是或否」建模
有些结果不是数字而是事件:市场收涨还是收跌,某只股票是否在前一半,某家公司是否违约。直线无法为概率建模,因为它可能超出 0 到 1 的范围。Logit 和 probit 把线性得分 z=α+βx 通过一条 S 形曲线。Logit 用 p=1/(1+e−z),所以得分就是对数几率 ln1−pp。Probit 用正态分布函数 p=Φ(z)。两者给出的概率几乎相同,probit 系数约为 logit 系数的 1/1.6。在 statsmodels 中写 smf.logit('up ~ lag', data).fit(),模型用极大似然而不是最小二乘估计:选取使观测到的涨跌最可能出现的系数。
p=1+e−z1,ln1−pp=α+βx,∂x∂p=p(1−p)β,ℓ=i∑[yilnpi+(1−yi)ln(1−pi)],RMcF2=1−ℓ0ℓ(1) 手算读懂 logit得分
z=0.2 给出
p=1/(1+e−0.2)=1/1.8187=0.55。斜率
β=−0.054 表示
x 每增加一个单位,几率乘以
e−0.054=0.947。对概率本身的影响取决于所处位置:在
p=0.55 处是
p(1−p)β=0.55⋅0.45⋅(−0.054)=−0.0134,即边际效应。似然把已发生事件的对数概率相加:预测上涨概率
0.8,0.3,0.6、结果
1,0,1 时,对数似然为
ln0.8+ln0.7+ln0.6=−1.09。麦克法登伪 R 方与只含截距的模型比较:若该模型
ℓ0=−69.3,你的模型
ℓ=−60,则
1−60/69.3=0.134。
真实数据让这个教训保持诚实。2005 年以来 SPY 的 5,403 个交易日中,54.86% 的日子收涨。用当日收益(百分数)对次日涨跌方向做 logit,得 α^=0.198、β^=−0.054,z=−2.34(p=0.019):下跌 2% 之后次日上涨的概率为 57.6%,平盘之后为 54.9%,上涨 2% 之后为 52.2%。边际效应为 −0.0134,probit 结果一致(β^=−0.034,边际效应 −0.0134,对数似然同为 −3716.76)。然而麦克法登 R2 只有 0.0007,概率超过一半就预测上涨,命中 54.97% 的日子,而一直说上涨是 54.86%。系数可以在统计上显著,却仍对交易没有用。
- 概率需要曲线:logit 和 probit 把拟合概率保持在 0 到 1 之间,且结果非常接近。
- 系数是对数几率:取指数得到几率比,乘以 p(1−p) 得到对概率的影响。
实验:评分内容
- 从得分到概率15 分
- 几率比10 分
- 边际效应15 分
- 对数似然20 分
- 伪 R 方15 分
- 配对术语10 分
- 显著但无用15 分