资源描述
display 命令
display “1+1” 输出为1+1
display 1+1 输出为2
set mem设置内存
set mem 500m,perm 设置内存为500m
set matsize 500 设置matsize为500
query memory 查看内存设置
保留和删除变量 keep & drop
drop crcd repttype 删除crcd repttype
keep stkcd stknme nindcd nnindcd 保留stkcd stknme nindcd nindcd (注意命令的大小写)
save保存stata格式的数据
save “D:\Teach课件\STATA\data\CG_Co.dta “ 新建文件名
save “D:\Teach课件\STATA\data\CG_Co.dta ”,replace 重置已有文件
use&insheet using
use 打开dta文件,insheet using打开csv文件
gen生成的新的变量
gen tdate=date(accper,"YMD") 产生一个tdate变量用来存放从accper变量中提取的年月日
format tdate %d 设置tdate为整数型变量
gen year=year(tdate) 提取tdate里面的年份存为year变量
gen month=month(tdate) 提取tdate里面的月份存为month变量
if条件句&tab离散变量的频率
keep if month==12 如保留变量month等于12的数据(注意双等号)
tab year 画出变量year的离散频率
纵向添加数据 append
use TRD_Year2011.dta,clear 打开2011的数据文件
append using TRD_Year2012.dta 向2011的数据文件中纵向加入2012的数据文件 *注意2012内的文件变数量与变数名必须相同,若不同,用keep或drop 保留或删除
merge文件合并
use TRD_Year2011_2012.dta,clear 打开该数据文件
sort stkcd year 排列一下要合并文件内的数据顺序stkcd和year均为变量名
save TRD_Year2011_2012.dta,replace 排列后重新储存该数据文件
use FS_Combas.dta,clear 打开要合并的数据文件
sort stkcd year 同样排列一下要合并的数据顺序
merge 1:1 stkcd year using TRD_Year2011_2012.dta 合并该文件(FS_Combas)和上一文件(TRD_Year2011_2012)内的stkcd和year两个变量
save bas_TRD,replace 排列后要记得储存
do文件用法(这个练习一下,别考试的时候慌了,没保存考试成绩就没了哦)
将字符型转换成数字型或相反 destring & tostring
tostring year, gen(yearstr) 新建一个变量yearstr用来储存转换为字符形的 year
destring yearstr, gen(yearnum) 新建一个变量yearnum用来储存转换为字符形的 year
br yearstr yearnum 用列表形式查看变量yearstr和yearnum
压缩数据空间 compress
gen new=1 新建一个等于1的变量new
des new 查看变量new的数据类型(为double双精度型长度为8bytes)
compress new 压缩变量new
des new 再次查看new的数据类型(为byte字符型长度为1bytes)
存储类型
• %9.0g:一般格式
– 共占九位(右起),不指定小数点位。
• %-9.0g:一般格式
– 共占九位(左起),,不指定小数点位。
• %9.2f:固定格式
– 共占九位,指定小数点后面保留两位。
• %10.7e
– 科学计数法,共10位,E后面占7位。
list a001000000 in 1/8 列出 a001000000里的个数据
format a001000000 %20.0g 取a001000000中所有数据的后20位数
format a001000000 %-20.2f 取a001000000中所有数据的20位数其中小数点要取后两位
确定样本期间
keep if year>=2006 取已打开文件内的的所有变量year大于等于2006的样本
生成哑变量
gen duality=0 建立变量duality并且等于0
replace duality=1 if y1001b==1 若变量y1001b等于1则duality等于1(这样变量duality不等于1 便等于0,因此它是哑变量)
保存命令的结果 return
sum top1,d 建立top1的概括统计量(d的意思是详细的显示出来)
return list 建立的统计量会保存在r()里,这个语句可查看所有的统计量
gen top1_d2=0 建立哑变量top1_d2并设为0
replace top1_d2=1 if top1>r(p50) & top1!=. 如果top1大于s统计量的50百分位并且top1不为空的话,将top1_d2置1
tab top1_d2 显示top1_d2的离散频率
从字符变量里提取信息 substr:
ex)生成行业变量: capture drop indu 删除变量indu(capture是为了让dofile继续执行,没有特殊含义)
gen indu=substr(nindcd,2,4) 从nindcd字符串的第二位开始提取4位字符,将提取的字符存在名为indu的变量内
replace indu=substr(nindcd,1,2) if indu=="C" 如果indu等于大写的C那么indu的值为nindcd里面的第1位到第2位
tab nindcd 查看nindcd
tab indu 查看indu
egen为gen的拓展
by year,sort: egen topmedian=median(top1) 建立一个变量名为topmedian的变量用来存放top1的中值并按year排序
生成分类变量 autocode & xtile:
gen topone_categ1=autocode(top1,10,0,1) 从top1里面取大于0小于1的10个数据,存在topone_categ1里面
xtile topone_categ2=top1, nquantiles(10) 将top1里面的数据按个数分为10组,并存在 topone_categ2里
排序变量 sort & gsort:
sort yclsprc 从小到大排序yclsprc
sort year yclsprc 从小到大排序year和yclsprc
gsort +yclsprc 从小到大排序 yclsprc
gsort +year –yclsprc 从小到大排序 year 从大到小排序 yclsprc
gsort year indu –ROA 排序
by year indu ,sort:gen indu_num1=_n 建立变量indu_num1来存放每组indu的序号(这里year和indu的顺序换一下的话,indu_num1就变成了每组year的序号)
by year indu ,sort:gen indu_num2=_N 建立变量indu_num2来存放每组indu的总个数
br year indu ROA indu_num1 indu_num2 用列表显示 year indu ROA indu_num1 indu_num2
删除重复值:
sort stkcd year 排序
drop if stkcd==stkcd[_n-1] & year==year[_n-1] 如果stkcd并且year有重复的话删除
计算业绩波动
sort stkcd year 排序
gen roa_l1=ROA[_n-1] if stkcd==stkcd[_n-1] 如果stkcd的值与上一个栏相同,那么将该上一栏重复值对应的ROA值存入新建变量roa_|1
gen roa_l2=ROA[_n-2] if stkcd==stkcd[_n-2] 如果stkcd的值与上两栏相同,那么将该上两栏重复值对应的ROA值存入新建变量roa_|1
egen roasd=rowsd(roa_l1 roa_l2 ROA 将 (roa_l1)( roa_l2)( ROA)的方差存在roasd里面
检查数据是否有异常 sum
sum ROA ROE EPS TOPINQ MB top1 sep inddir lev duality size state
sum ROA ROE EPS TOPINQ MB top1 sep inddir lev duality size state,d
处理异常值
winsor ROA, gen(ROA1) h(10) 新建一个ROA1来储存处理后的ROA
winsor ROA, gen(ROA2) p(0.01)
winsor ROA, gen(ROA3) p(0.01) highonly
sum ROA1 ROA2 ROA3,d
这是help对p(),h()一类的描述,注意gen()是必须的,并且p()内的值必须在0到0.5之间,h()内的值必须大于1但要小于检测到错误值数量的一半,也就是之前sum检测到的错误值数量。
筛选样本、交待选择过程
gen n=0 新建变量n等于0
replace n=1 if indu=="I" 将所有indu内部等于大写I的值对应的n都设为1
egen dum=rmiss(ROA ROE EPS TOPINQ MB top1 sep inddir lev duality size state) dum表示以上这些变量的同一行中缺失值的个数
replace n=2 if dum!=0 如果缺失值不为0那么将n置2
tab year n 按年份显示n的值
tab indu n 按indu来显示n的值
贴标签
label data "股权结构与公司业绩" 就是在变量后面附上说明
label var ROA "资产收益率"
log 文件开启,关闭,储存
描述统计
sum top1 top1的统计量
sum top1,d top1统计量的详细显示
sum top1 state top1和state的统计量
summarize _all 已打开文件内所有数据的统计量
sum top1 if year==2010 2010年的top1的统计量
by year,sort: sum top1 按year的顺序排练top1的统计量
by state,sort: sum top1 按state的顺序排列top1的统计量
&表示且,and;|表示或,or;==代示恒等于,!=代示不等于
离散变量的频率统计
tab state 显示state的离散表格
tab state if year==2010 显示year为2012的state的离散表格
by year, sort: tab state 按year的顺序显示state的离散表格
tab state top1_d,col 显示top1和state的离散表格并显示纵列的频率
tab state top1_d,row 显示top1和state的离散表格并显示横排的频率
报告分位数及其置信区间 centile
centile 显示已打开文件内部所有变量的置信空间和百分位
centile top1 显示top1的置信空间和百分位
centile top1, centile(5 50 95) 显示top1第5个百分位,第50个百分位和第95个百分位的置信空间
centile top1, centile(20(10)90) 显示top1第20个,第30个,第40个。。。。第90个百分位的置信空间。(中间的10表示间隔,第一个表示从第几个开始,第三个数表示到第几个百分位结束)
分组描述统计 tabstat
tabstat top1 size lev 制作关于top1,size,lev的平均值统计
tabstat top1 size lev, by(state) 制作针对state的top1,size,lev的平均值统计
tabstat top1 size lev, by(state) stat(mean sd min) 制作针对state的top1,size,lev的平均值,标准偏差,以及最小值的统计
tabstat top1 size lev, by(state) stat(mean sd min max) nototal 除去总统计值
table year, c(mean top1) 按照年份列出top1的均
table year, c(n top1 mean top1 median top1) 按照年份列出top1的样本的非丢失数量,均值和中值
table year, c(n top1 mean top1 median size) 按照年份列出top1的样本的非丢失数量,均值和size的中值
table year, c(mean top1) format(%9.2f) 按照年份列出top1的样本均值格式为:九位数其中保留小数点后两位
tabstat top1 size lev, format(%9.2f) 制作针对state的top1,size,lev的平均值,标准偏差,以及最小值的统
均值比较 ttest
ttest top1=40
ttest top1,by(state)
ttest ROA1== ROA2
ttesti 24 62.6 15.8 75
中位数比较
median top1,by(state)
ranksum top1,by(state)
signrank ROA1 = ROA2
多个变量的两组均值或中值比较
ttable3 ROA_w ROE_w EPS_w, by(state)
ttable3 ROA_w ROE_w EPS_w, by(state) median
ttable3 ROA_w ROE_w EPS_w if topone_categ2==1| topone_categ2==2, by(topon e_categ2)
报告相关系数 cor pwcorr
cor ROA_w sep top1 state
pwcorr ROA_w sep top1 state
pwcorr ROA_w sep top1 state, obs sig
pwcorr ROA_w sep top1 state, obs sig star(0.01) print(0.01)
连续或离散数据的直方图
histogram ROE_w
histogram ROE_w,width(0.02) 精确度设为0.02
histogram ROE_w, percent 按百分比画图
histogram ROE_w, normal 标准精度
散点图
scatter ROE_w top1
scatter ROE_w top1,by(state) 关于state的散点图
twoway (scatter ROE_w top1) (lfit ROE_w top1) 画出ROE_w和top1的散点图和直线图
scatter ROE_w top1 if indu=="C2" 画出当indu为C2时的散点图
twoway (scatter ROE_w top1) (lfit ROE_w top1) if indu=="C2" 画出当indu为C2时 OE_w和top1的散点条线图(柱状图) 图和直线图
graph bar (mean) top1, over(year) 画出top1均值的年分布条线图
graph bar (median) top1, over(year) 画出top1中值的年分布条线图
graph bar (median) top1, over(year) over(state) 画出top1中值按年和状态分布的条线图
graph hbar (median) top1, over(year) over(state) hbr为竖向的
展开阅读全文