从一个公式到完整回归
statsmodels.formula.api.ols('excess ~ mkt_rf + smb + hml', data=table).fit() 用一行公式拟合普通最小二乘回归:~ 左边是被解释量,右边是回归变量,截距会自动加入(写 - 1 可去掉)。结果对象包含一切:params(系数)、bse(标准误)、tvalues、pvalues、rsquared、rsquared_adj、aic、resid,以及用于打印报告的 summary()。因为它们都是 pandas Series 或数字,并排放进 DataFrame 就得到整洁的表,res.predict(新表格) 把拟合的公式应用到列名相同的新行上。股票的因子回归是标准用法:excess 是股票超过无风险利率的收益,mkt_rf 是市场的,smb 是规模因子,hml 是价值因子。
两个比较使这张表有用。CAPM 只用市场,excess ~ mkt_rf;三因子模型再加 smb 和 hml。增加回归变量永远不会降低 R²,所以要用调整后的 R²、AIC 或 F 检验:ff3.compare_f_test(capm) 返回 F 统计量、它的 p 值和新增回归变量的个数,p 值小说明两个新增因子确有解释力。另一个常规要点是表本身。月末收益取自每个日历月最后一个收盘价(prices.groupby(prices.index.to_period('M')).last() 再 pct_change()),并且必须按同一个月与因子表连接:月份错位的回归就是对噪声的回归。
真实数据的信息Apple 在 2000 年 2 月到 2026 年 8 月之间有 319 个月度收益。CAPM 给出市场贝塔 1.31(t=11.7)、月度 alpha 1.5%、R²=0.30。加入规模和价值后,R² 升到 0.355,价值因子载荷为 -0.72(t=-4.98:Apple 表现得像成长股),规模载荷小且不显著,alpha 为每月 1.7%。两个新增因子的 F 检验 p 值为 2.7×10⁻⁶。CAPM 预测市场比现金高出 5% 的月份里,Apple 的超额收益为 8.07%。
- 一行一个回归:公式指明因变量和回归变量,结果对象包含每个统计量。
- 用对工具比较嵌套模型:R² 总会上升,所以用调整后的 R²、AIC 或 F 检验。
- 先对齐月份:月末收益要与同一个月的因子配对。
实验:评分内容
- 月度回归表15 分
- CAPM 拟合10 分
- 三因子拟合10 分
- 整洁的系数表15 分
- 更大的模型值得吗?15 分
- 预测10 分
- 完整研究25 分