利用STATA对双等级变量组合进行分组计算每月均值
(2016-12-21 11:28:31)use
"C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\月度收益率.dta"
encode cusip , gen (ip);将CUSIP转换成数值型的地区IP码。
save
"C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\月度收益率.dta",
replace
use
"C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\月度数据.dta",
clear
encode cusip , gen (ip)
save
"C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\AB.dta",
replace
drop if time==.
use
"C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\收益率.dta",
clear
gen year=year(date)
gen month=month(date)
save
"C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\收益率.dta",
replace
gen time=ym(year,month)
format time %tm
tsset ip time
use
"C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\AB.dta",
clear
duplicates examples ip time ;查重
duplicates drop ip time ,force ;删重
drop if ip==.
use
"C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\收益率.dta",
clear
cd
C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\
merge 1:1 ip time using AB
drop _merge
drop if A==.
drop if B==.
save
"C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\data.dta",
replace
drop ticker
drop permno date
drop if ret==.
save
"C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\data.dta",
replace
tsset ip time
save
"C:\Users\Administrator.WIN7-1604131334\Desktop\月度数据\月度数据\data.dta",
replace
use "C:\Users\Administrator\Desktop\月度数据\月度数据\data.dta",
clear
forvalues i = 1(1)12 {
xtile B_grp`i'=B if month==`i',nq(5) ;计算每个等级每月均值
}
forvalues i = 2(1)12 {
replace B_grp1= B_grp`i' if B_grp1==.
}
drop B_grp2 B_grp3 B_grp4 B_grp5 B_grp6 B_grp7 B_grp8 B_grp9
B_grp10 B_grp11 B_grp12
forvalues i = 1(1)12 {
forvalues i = 1(1)12 {
xtile A_grp`i'=A if month==`i',nq(5)
}
forvalues i = 2(1)12 {
replace A_grp1= A_grp`i' if A_grp1==.
}
drop A_grp2 A_grp3 A_grp4 A_grp5 A_grp6 A_grp7 A_grp8 A_grp9
A_grp10 A_grp11 A_grp12
gen a=1
gen group=.
forvalues i=1/5{
forvalues j=1/5{
replace group=a if A_grp1==`i' & B_grp1==`j'
;根据5*5进行分组,共25组
replace a=a+1
}
}
tab group
bys month group : egen mean_month_group=mean( ret
);根据25组生成每个月的均值
tabulate month group , summarize( ret ) means
;根据25组显示每月的均值
前一篇:应用stata时间异方差检验