加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

利用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组显示每月的均值

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有