大数据人|大数据第一社区

 找回密码
 注册会员

扫一扫,访问微社区

查看: 22900|回复: 0

学术小渣 | Stata常用命令

[复制链接]
  • TA的每日心情
    奋斗
    2015-7-30 23:05
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    852

    主题

    972

    帖子

    4804

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    4804
    QQ
    发表于 2015-11-19 16:49:17 | 显示全部楼层 |阅读模式
    Stata常用命令

    大学期间觉得学的最有用的软件之一就是stata了,对stata基本是在血和泪的尝试中爬过,到了最后基本属于只要stata不出现红字错误命令就开心得不得了。顺便整理一下常用的stata命令如下,应该对付计量方向第一学期的入门问题不大(求stata大神不虐..),所以就只写了一部分常用的,有时间后面再补充吧。主要就是分为基本操作和回归统计两部分:

    1、基本操作

    import/use/insheet/merge:基本常用的导入文件就是这四个了,建议直接从stata的menu菜单中导入,导入xlsx和csv这种常见的格式时还有一些备用选项可以自己体验一下(比如string和把第一行视为变量名之类)。

    merge需要单独说一下,因为是将两个数据库合并为一个,原理也比较简单,两个数据库中根据一些相同的变量把其他数据“加”到原来的数据库中,也是建议直接菜单操作,不要用命令。在Data的Combine datasets的merge two datasets中,分为1:1、m:1、1:m各种形式,基本用两次就差不多能搞懂。

    help:一定第一个学的是这个!啥不会就help一下,不知道函数了就help function,不知道回归细节就help regress,多读help文件!

    gen/egen: 最常用的建立函数的命令,这两个不同之处在于gen一般是初等函数,egen的函数会复杂一些。常用的函数包括数学函数和其他函数,比如count/tag之类,建议直接到菜单里Data下Create data的create new variable或create new variable(extended)直接生成函数,会方便的多。

    mean/abs/sqrt/max/min/sum/sd:常用数学函数,分别是求均值、绝对值、方根、最大最小、求和、方差用的。

    keep if/drop if:这两个也是最常用的,在数据需要进行筛选的时候,两个命令的区别也很明显,keep是留下哪些,drop是去掉哪些。一般在if后面都会跟一些等式或不等式条件,比如drop if days<=15,这就是把days这个变量中小于等于15的obs都去掉。

    replace:就是代替,最常用的是在赋值的时候。比如我要建一个新函数,但是取值我还不确定,假设新函数叫f,那就是gen f=.,这个“=.”就意思是缺省值,等我确定了赋值之后再用replace就行。比如有另一个参数叫male,我让所有male=1的obs,它们的新函数f都要取10,那就是replace f=10 if male==1。

    sort:对某一个或者某几个变量进行从小到大的排序。常用的做法就是对日期排序,这个命令也可以排序多个变量,写在前面的先排序。比如sort year month day就是对年月日的顺序排序。如果需要从大到小的话就是gsort就行。

    bysort:这个命令简直是用的最多的没有之一!在此之前先讲一下by,by就是在某个组内执行后面的命令。比如by year: gen return=mean(dayreturn),意思就是在每一年的数据里,gen一个return变量,将这一年内所有的dayreturn(日收益率)求平均后赋值给return即当年平均日收益率。而bysort就相当于先sort 再by。

    [_n]:这个要单独讲一下,因为我个人觉得很好用。[_n]是一个计数变量,比如gen n=[_n]就是建立了一个自然数列,用到这个变量是因为在经济统计的时候,尤其是统计周数据、月数据、年数据时,由于我们的数据是日数据得到的,因此在每一组(比如计算月平均收益率blabla)时统计完之后,会发现在每一个组内有很多个相同的数据,因此用一个dropif monthreturn[_n]==monthreturn[_n-1]就可以只保留每一组的第一个数据,之后的处理会节省时间。(补充一句,如果你还需要原来的data的话一定记得另外保存)

    drop:处理数据的过程中,一些过程变量就可以drop掉节省时间了。

    save:记得写完了一定要保存!!

    2、回归统计

    sum:对统计量的最基本统计性质报告,直接敲sum加空格加某个变量就行。会报告均值、最大最小、标准差等最基本的信息。

    tab:按照百分比对这个变量的取值统计。(就是相当于饼状图的表格)

    reg:最简单的回归命令。直接敲reg y x1 x2就相当于y对x1x2的回归,回归结果会报告的比较详细,包括coefficient、constant、t值、p值、F值、SSR等等。

    以下的xtreg/ivreg2/tsset分别针对的面板数据、两阶段最小二乘、时间序列,写起来太多,如果有小伙伴想看的话,可以再单独写一章。

    • xtset/xtreg:面板数据处理的命令,需要先进行xtset才能用xtreg的命令。
    • tsset:时间序列数据处理的命令。
    • ivreg2:两阶段最小二乘的命令。(不过在使用之前需要先install一下安装包才可以用,也是先help ivreg2然后找到安装包就可以用)


    3、我最喜欢用的命令…

    count与tag:
    count顾名思义,就是数个数,这个有时候在数据里非常好用,尤其是在分组的情况下。举一个实际情况中遇到的栗子,比如我要统计某只股票在每个月内有多少个交易日,那我在月的分组下,用下count函数,就能数出来某个组内的个数。

    Tag是另一个函数,我个人理解的与count区别在于:count是数有几个,tag是数有几类。举个栗子,比如在某个组内,有1个10,2个20,那么用count数出来就是3,因为一共有3个数据;用tag数出来就是2,因为只有10和20这两个数值。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条


    id="mn_portal" >首页Portalid="mn_P18" onmouseover="navShow('P18')">应用id="mn_P15" onmouseover="navShow('P15')">技术id="mn_P37" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">前沿id="mn_P36" onmouseover="navShow('P36')">宝箱id="mn_P61" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">专栏id="mn_P65" >企业id="mn_Nd633" >导航 折叠导航 关注微信 关注微博 关注我们

    QQ|广告服务|关于我们|Archiver|手机版|小黑屋|大数据人 ( 鄂ICP备14012176号-2  

    GMT+8, 2024-3-19 13:22 , Processed in 0.249882 second(s), 31 queries .

    Powered by 小雄! X3.2

    © 2014-2020 bigdataer Inc.

    快速回复 返回顶部 返回列表