楼主: momingqimiao7
3684 35

[实证分析] 【推荐】Fama-French五因子模型数据和Stata代码(2000-2023年) [推广有奖]

11
momingqimiao7(未真实交易用户) 在职认证  学生认证  发表于 2024-4-18 20:14:48
miracle112233 发表于 2024-4-17 23:43
已买,请问所有的数据都是来自CSMAR的吗?如果我直接用CSMAR的五因子数据应该怎么替代您的代码?还有,您的 ...
您好,原始数据都是的,筛选12月31日的数据就是年度的

12
wudizhaoshi(真实交易用户) 发表于 2024-4-20 18:09:53
* 采用的是 A 股样本在 t 年 6 月的月平均市值来衡量
* 流通市值 = 流通股票数量*每股市价

use 月个股回报率.dta, clear
gen m = monthly(交易月份,"ym")
gen group_year=year(dofm(m+6))
gsort stkcd group_year -m
bys stkcd group_year: keep if _n==1

这段中,group-year 为什么要 dofm(m+6),最后再 keep if _n==1?
整体没看懂这段的意思?如果gsort stkcd group_year -m,m是按倒序排列的,那意味着排在第一位是12月份的数据, keep if _n==1取到的将是第12月数据,跟取t年6月数据不符,是不是搞错了,怎么理解?

13
wudizhaoshi(真实交易用户) 发表于 2024-4-20 18:13:51
*                 分25组收益率均值 Size-BM
*=======================================================================
use 收益率数据.dta, clear
merge m:1 stkcd group_year using 分组结果.dta, nogen keep(3)

* 计算流通市值加权组合收益率
bys ME_group5 BM_group5 交易月份: egen 市值比例=pc(市值), prop
gen 加权组合收益率=R_Rf*市值比例
collapse (sum) 加权组合收益率, by(ME_group5 BM_group5 交易月份)
save data1.dta, replace

* 计算每个组合各月平均收益率
collapse (mean) 加权组合收益率, by(ME_group5 BM_group5)

疑问:这里前面的* 计算流通市值加权组合收益率和后面的* 计算每个组合各月平均收益率 两者有什么区别啊?为什么要算两次?

14
wudizhaoshi(真实交易用户) 发表于 2024-4-20 18:22:32
* grstest2对数据格式有所要求: grstest2 requires data to be in wide format, i.e. portfolio returns in
> columns, time in rows.
* 对25个组合的数据进行转化成宽数据格式
forv i=1/5 {
  forv j=1/5 {
     gen temp=加权月超额收益率 if ME_group5==`i' & BM_group5==`j'
         bys 交易月份: egen R`i'`j'=mean(temp)
         drop temp
  }
}
这个循环能解释下吗?没看懂

15
momingqimiao7(未真实交易用户) 在职认证  学生认证  发表于 2024-4-20 20:07:59
wudizhaoshi 发表于 2024-4-20 18:09
* 采用的是 A 股样本在 t 年 6 月的月平均市值来衡量
* 流通市值 = 流通股票数量*每股市价
原本是月度的数据, 现在是要取6月份的数据作为年度的

16
momingqimiao7(未真实交易用户) 在职认证  学生认证  发表于 2024-4-20 20:09:10
wudizhaoshi 发表于 2024-4-20 18:13
*                 分25组收益率均值 Size-BM
*====================================================== ...
前面是每个月每个组合的加权组合收益率
后面是做描述性统计用的

17
momingqimiao7(未真实交易用户) 在职认证  学生认证  发表于 2024-4-20 20:09:25
wudizhaoshi 发表于 2024-4-20 18:22
* grstest2对数据格式有所要求: grstest2 requires data to be in wide format, i.e. portfolio returns  ...
这个是转为25个组合的收益率数据

18
wudizhaoshi(真实交易用户) 发表于 2024-4-21 10:42:00
Fama-French五因子分25组回归结果(Excel已设置好公式,只需要Stata生成的结果复制进去可以自动生成表格,标注星号,方便快捷)
帮忙看下附件的图,跟您最后生成的25组回归excel表不一样啊。这个是需要我手工再填写出来一张表吗?

微信截图_20240421104105.png (258.48 KB)

微信截图_20240421104105.png

19
wudizhaoshi(真实交易用户) 发表于 2024-4-21 16:19:00
* 滞后项根据 q=4*(288/100)^(2/9)计算
di 4*(288/100)^(2/9)

* 验证第五组与第一组差异,求newey t值
gen gap=加权组合收益率1-加权组合收益率5


forv i=1/5 {
  qui newey gap if BM_group5==`i', lag(5) force
  est store r1_`i'
}
esttab r1_* ,  nogap  replace keep(_cons) b(3) t(3)  star(* 0.1 ** 0.05 *** 0.01)  
esttab r1_* using $res_path/Newey-West_T检验-BM.rtf,   nogap  replace keep(_cons) b(3) t(3) star(* 0.1 ** 0.05 *** 0.01)   

想问一下:滞后项公式里,4*(288/100)^(2/9)  要如何根据实际情况修改?288是月份数?2/9是什么?

20
wudizhaoshi(真实交易用户) 发表于 2024-4-21 18:07:27
如何输出grs检验的结果到word里面,谢谢
grstest2 R11-R55, flist( SMB HML)   
grstest2 R11-R55, flist( RMWO CMA )   
grstest2 R11-R55, flist( MKT SMB HML)   
grstest2 R11-R55, flist( MKT SMB HML RMWO CMA)   

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-9 11:28