Fama-French三因子模型
● 更新至2021年
● 代码优化
● 结果输出更方便整理
数据说明
- 数据区间:2000-2021年(原始数据区间1990-2021年)
- 数据格式:dta(Stata14版及以上版本)
- 无风险利率采用一年期定期存款利率
- 市值指标选择流通市值(根据需要可以修改)
- 市场回报率采用流通市值加权平均法计算,考虑现金红利再投资的综合月度市场回报率(数据里有几种可供选择)
- 月个股回报率使用考虑现金红利再投资的月个股回报率
数据处理说明
- 规范信息披露制度下上市公司年度财务报表一般在次年3、4月份公布,且在一季度财务报表公布之前披露,即4月底为年报披露截止期。财务报表信息披露的滞后性造成金融数据库中财务数据与市场数据的时间不一致,即t年末的财务数据因年报公布的滞后性在t+1年4月份披露财务报表时才得到更新。因此选取t年5月至t+1年4月作为组合构建周期。
- 市场类型选择:全部A股,包括沪深主板、中小板和创业板
- 剔除IPO后前六个月的数据(包括上市月) (以下筛选条件根据自己需求修改)
- 剔除ST(特别处理)、*ST(退市风险警示)、PT(特别转让)股票
- 剔除金融行业股票
- 剔除账面价值为负的股票
- * 中国A股市场所有股票, 包括沪深主板、中小板和创业板 科创板
- * 市场类型数值含义: 1=上海A,2=上海B,4=深圳A,8=深圳B, 16=创业板, 32=科创板。
- keep if inlist(市场类型, 1, 4, 16, 32)
- * 选择2000-2021年数据
- keep if year>=2000 & year<=2021
- * 剔除IPO后前6个月的数据(包括上市月)
- gen month_gap=m-上市月份
- drop if month_gap<6
- * 剔除ST、*ST、PT
- drop if 是否ST或PT==1
- * 剔除金融类股票
- drop if regexm(行业代码C, "J")
- 中国股市中市值最小的 30% 的上市公司会受到壳价值污染的严重影响,所以剔除市值最小的30%(Liu et al. (2018))
因子构建
- 规模的分组点为中位数,前50%为小规模组(S,Small),后50%为大规模组(B,Big)
- 账面市值比的分组点都为第30个和第70个百分位数,前30%为低账面市值比组(L,Low),中间40%为中账面市值比组(N,neural),后30%为高账面市值比组(H,High)
- SMB=(SH+SN+SL)/3-(BH+BN+BL)/3
- HML=(SH+BH)/2-(SL+BL)/2
- 分25组回归的时候计算组合收益率采用流通市值加权平均法计算的组合收益率
表格展示
25组投资组合收益率,并用Newey-West t统计量检验最高组和最低组的差异
分25组回归结果(Excel已设置好公式,只需要Stata生成的结果复制进去可以自动生成表格,标注星号,方便快捷)
Stata生成25个分组结果表
附件下载
- 三因子模型更新.do
- 结果整理.xlsx
经管之家:momingiqmiao7
欢迎关注,分享更多实用的数据,独家发布,请勿私自转卖
【关注】【帖子索引】【使用常见问题】【点击查看更多帖子】
【Stata软件下载】【Stata免费学习资料】
补充内容 (2023-2-15 23:00):
【推荐】Fama-French三因子模型数据和Stata代码(2000-2022年)
https://bbs.pinggu.org/thread-11385630-1-1.html