第一次自己一个人做论文,虽然失败了。。。但是整个过程还是值得好好复盘。
希望能给以后的同学提供一些借鉴,也希望大佬们能够多多指出问题!
首先,根据自己研究的方向查阅文献,找到自己的被解释变量、解释变量、需要的控制变量。
(此处,老师的建议是先把基础的财务报表上的数据都下下来,然后再进行变量的生成,这样更加方便,也有助于后期突发的其他变量的需要,一个一个数据集的合并真的很麻烦(本人本着怀疑的态度又按照这种方法试了一遍))
国泰安的数据查找
打开国泰安数据库,点上面的数据中心即可找到各种数据集,有些数据有直接的数据,但有些数据仍然需要自己想办法生成。
一些数据所在的数据集
- 公司所在地:公司研究——首次公开发行(A股)里有公司注册地、公司拟上市地,但地区数据有些混乱,例如只写深圳市不写广东省,导致省份数据不能直接substr,需要先用excel筛选功能进行初步的处理。
- 高管数据:大部分在 公司研究——治理结构里。
- 国企、非国企:在公司研究——股权性质里。
国泰安上数据的下载
我一般选这种格式,不知道其他的有什么区别。
下载之后,解压到相应的文件夹(一定要解压!)
CSV数据到stata数据
insheet using 数据文件的所在地址
从国泰安数据库里下载下来的数据集还包括一个DES文件
这里直接给数据贴标签有更简单的方法了
直接下载Excel格式(参考连享会文章)
ssc install nrow, replace
ssc install labone, replacelabone, nrow(1)
将其复制到excel表里再善用分列功能
利用lower()等功能处理成
再将其复制到do文件,再点击执行就可以将下载的数据集里label进行重新命名
这样就拿到了一份比较基础的stata数据集,如果还需要新的变量采用merge
#在merge之前往往需要提取出year年度变量,国泰安的年份数据是以会计截止日期显示的
gen year = substr(accper,1,4)
#将年度数据从字符串转化成数值类型
destring year, replace
#正式merge
merge 1:1 stkcd year using 合并的数据集
keep if _merge==3
drop _merge
当然keep if _merge==3也不能乱用,需要进行一个大致的分析,判断是不是之前的数据有缺漏、两个数据集存在差异等问题导致不是所有的数据都能完全合并上。
在merge的过程中可能会出现存在重复值的可能,注意报错的英文
此时采用duplicates
先用 duplicates list var看看是哪些数据重复了,这些数据是否能够直接删掉。
如果可以即可采用duplicates drop var,force
对数据进行初步的统计与清理
得到数据后,往往不能直接使用,因为存在异常值
首先sum var 看看最大值最小值是否异常
也可画图观察
#直方图
hist var
#箱型图
graph box var
#小提琴图,需要先下载vioplot
vioplot var
分别长(出图会有点慢)
发现有异常值后
再进行缩尾截尾等处理(可见我之前写的另一篇文章关于异常值处理的)
#缩尾
winsor2 var,cut(1 99)
#截尾
winsor2 var,cut(1 99) trim
如果想直接用缩尾、结尾数据替代原有变量,则在cut前加上replace。但尽量都别动原有数据,不然不利于后续的改动。
除此之外
还有一些常见的数据处理,会随着积累慢慢增加上来
#剔除金融行业数据
drop if substr(行业名称,1,1)="I"
还有一个建议
建议大家打开数据集的时候,尽量不要重新打开,而是用clear,这样会更利于用之前用过的数据处理代码,对于每个数据集需要打开关闭的时间节点考虑得更清晰,而不是随便重新打开,关闭的时候也不知道自己处理到那个步骤了,能不能replace原有数据。
希望大家都能跑出理想的结果!(再次心疼一下自己)