1.对调入融券标的的股票进行PSM匹配,匹配变量包括Return_q Cap_q Fluct_q Turnover_q
2.但是我分别在每一个季度内部对该季度调入的股票进行匹配
3.由于要做did,所以匹配完后还要将该季度的前两个季度设置为before(变量T=0),后两个季度设置为after(变量T=1)
4.控制组(变量G=1)和对照组变量(变量G=0)也要扩展到前后两个季度
5.该季度如果没有一只股票加入,就进入下一季度。
我写了几个循环,但是好像不行,请大家帮忙指点下;
- gen M=. //当季度是否调入标的虚拟变量
- gen tmp=.
- gen T=. //政策时点虚拟变量
- gen G=. //对照组与控制组
- forvalue i=214/231{
- replace M=1 if Quarter==`i'&Statu_f==1
- replace M=0 if Quarter==`i'&M==.
- bys Quarter:egen count=count(M) if M==1&Quarter==`i'
- if count==0 {
- drop count
- `i'=`i'+1
- }
- else
- {
- drop count
- winsor2 Return_q Cap_q Fluct_q Turnover_q ,replace
-
- replace tmp = runiform() if Quarter==`i'
- sort tmp
- replace T=1 if Quarter>=`i'&Quarter<=`i'+2
- replace T=0 if Quarter<`i'&Quarter>=`i'-2
- psmatch2 M Turnover_q Cap_q Fluct_q if Quarter==`i' ,n(2)
- replace G=1 if M==1&Quarter==`i'&Statu_f==1
- replace G=0 if _weight!=.&_n1==.&Subject!=1&Quarter==`i'
- xtset Code Quarter
- replace G=0 if l.G==0&Quarter<=`i'+2 &G==. //如果前一期是对照组,那么本期就是对照组
- replace G=1 if l.G==1&Quarter<=`i'+2&G==. //如果前一期是处理组,那么本期就是处理组
- replace G=0 if f.G==0&Quarter>=`i'-2&G==.
- replace G=0 if f.G==0&Quarter>=`i'-2&G==.
- replace G=1 if f.G==0&Quarter>=`i'-2&G==.
- replace G=1 if f.G==0&Quarter>=`i'-2&G==.
- }
- }


雷达卡




京公网安备 11010802022788号







