您好,欢迎访问三七文档
Stata常用命令大学期间觉得学的最有用的软件之一就是stata了,对stata基本是在血和泪的尝试中爬过,到了最后基本属于只要stata不出现红字错误命令就开心得不得了。顺便整理一下常用的stata命令如下,应该对付计量方向第一学期的入门问题不大(求stata大神不虐..),所以就只写了一部分常用的,有时间后面再补充吧。主要就是分为基本操作和回归统计两部分:1、基本操作import/use/insheet/merge:基本常用的导入文件就是这四个了,建议直接从stata的menu菜单中导入,导入xlsx和csv这种常见的格式时还有一些备用选项可以自己体验一下(比如string和把第一行视为变量名之类)。merge需要单独说一下,因为是将两个数据库合并为一个,原理也比较简单,两个数据库中根据一些相同的变量把其他数据“加”到原来的数据库中,也是建议直接菜单操作,不要用命令。在Data的Combinedatasets的mergetwodatasets中,分为1:1、m:1、1:m各种形式,基本用两次就差不多能搞懂。help:一定第一个学的是这个!啥不会就help一下,不知道函数了就helpfunction,不知道回归细节就helpregress,多读help文件!gen/egen:最常用的建立函数的命令,这两个不同之处在于gen一般是初等函数,egen的函数会复杂一些。常用的函数包括数学函数和其他函数,比如count/tag之类,建议直接到菜单里Data下Createdata的createnewvariable或createnewvariable(extended)直接生成函数,会方便的多。mean/abs/sqrt/max/min/sum/sd:常用数学函数,分别是求均值、绝对值、方根、最大最小、求和、方差用的。keepif/dropif:这两个也是最常用的,在数据需要进行筛选的时候,两个命令的区别也很明显,keep是留下哪些,drop是去掉哪些。一般在if后面都会跟一些等式或不等式条件,比如dropifdays=15,这就是把days这个变量中小于等于15的obs都去掉。replace:就是代替,最常用的是在赋值的时候。比如我要建一个新函数,但是取值我还不确定,假设新函数叫f,那就是genf=.,这个“=.”就意思是缺省值,等我确定了赋值之后再用replace就行。比如有另一个参数叫male,我让所有male=1的obs,它们的新函数f都要取10,那就是replacef=10ifmale==1。sort:对某一个或者某几个变量进行从小到大的排序。常用的做法就是对日期排序,这个命令也可以排序多个变量,写在前面的先排序。比如sortyearmonthday就是对年月日的顺序排序。如果需要从大到小的话就是gsort就行。bysort:这个命令简直是用的最多的没有之一!在此之前先讲一下by,by就是在某个组内执行后面的命令。比如byyear:genreturn=mean(dayreturn),意思就是在每一年的数据里,gen一个return变量,将这一年内所有的dayreturn(日收益率)求平均后赋值给return即当年平均日收益率。而bysort就相当于先sort再by。[_n]:这个要单独讲一下,因为我个人觉得很好用。[_n]是一个计数变量,比如genn=[_n]就是建立了一个自然数列,用到这个变量是因为在经济统计的时候,尤其是统计周数据、月数据、年数据时,由于我们的数据是日数据得到的,因此在每一组(比如计算月平均收益率blabla)时统计完之后,会发现在每一个组内有很多个相同的数据,因此用一个dropifmonthreturn[_n]==monthreturn[_n-1]就可以只保留每一组的第一个数据,之后的处理会节省时间。(补充一句,如果你还需要原来的data的话一定记得另外保存)drop:处理数据的过程中,一些过程变量就可以drop掉节省时间了。save:记得写完了一定要保存!!2、回归统计sum:对统计量的最基本统计性质报告,直接敲sum加空格加某个变量就行。会报告均值、最大最小、标准差等最基本的信息。tab:按照百分比对这个变量的取值统计。(就是相当于饼状图的表格)reg:最简单的回归命令。直接敲regyx1x2就相当于y对x1x2的回归,回归结果会报告的比较详细,包括coefficient、constant、t值、p值、F值、SSR等等。以下的xtreg/ivreg2/tsset分别针对的面板数据、两阶段最小二乘、时间序列,写起来太多,如果有小伙伴想看的话,可以再单独写一章。xtset/xtreg:面板数据处理的命令,需要先进行xtset才能用xtreg的命令。tsset:时间序列数据处理的命令。ivreg2:两阶段最小二乘的命令。(不过在使用之前需要先install一下安装包才可以用,也是先helpivreg2然后找到安装包就可以用)3、我最喜欢用的命令…count与tag:count顾名思义,就是数个数,这个有时候在数据里非常好用,尤其是在分组的情况下。举一个实际情况中遇到的栗子,比如我要统计某只股票在每个月内有多少个交易日,那我在月的分组下,用下count函数,就能数出来某个组内的个数。Tag是另一个函数,我个人理解的与count区别在于:count是数有几个,tag是数有几类。举个栗子,比如在某个组内,有1个10,2个20,那么用count数出来就是3,因为一共有3个数据;用tag数出来就是2,因为只有10和20这两个数值。(转自人大论坛)调整变量格式:formatx1%10.3f——将x1的列宽固定为10,小数点后取三位formatx1%10.3g——将x1的列宽固定为10,有效数字取三位formatx1%10.3e——将x1的列宽固定为10,采用科学计数法formatx1%10.3fc——将x1的列宽固定为10,小数点后取三位,加入千分位分隔符formatx1%10.3gc——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符formatx1%-10.3gc——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符,加入“-”表示左对齐合并数据:useC:\DocumentsandSettings\xks\桌面\2006.dta,clearmergeusingC:\DocumentsandSettings\xks\桌面\1999.dta——将1999和2006的数据按照样本(observation)排列的自然顺序合并起来useC:\DocumentsandSettings\xks\桌面\2006.dta,clearmergeidusingC:\DocumentsandSettings\xks\桌面\1999.dta,uniquesort——将1999和2006的数据按照唯一的(unique)变量id来合并,在合并时对id进行排序(sort)建议采用第一种方法。对样本进行随机筛选:sample50在观测案例中随机选取50%的样本,其余删除sample50,count在观测案例中随机选取50个样本,其余删除查看与编辑数据:browsex1x2ifx33(按所列变量与条件打开数据查看器)editx1x2ifx33(按所列变量与条件打开数据编辑器)数据合并(merge)与扩展(append)merge表示样本量不变,但增加了一些新变量;append表示样本总量增加了,但变量数目不变。one-to-onemerge:数据源自statatutorial中的exampw1和exampw2第一步:将exampw1按v001~v003这三个编码排序,并建立临时数据库tempw1clearuset:\statatut\exampw1.dtasu——summarize的简写sortv001v002v003savetempw1第二步:对exampw2做同样的处理clearuset:\statatut\exampw2.dtasusortv001v002v003savetempw2第三步:使用tempw1数据库,将其与tempw2合并:clearusetempw1mergev001v002v003usingtempw2第四步:查看合并后的数据状况:ta_merge——tabulate_merge的简写su第五步:清理临时数据库,并删除_merge,以免日后合并新变量时出错erasetempw1.dtaerasetempw2.dtadrop_merge数据扩展append:数据源自statatutorial中的fac19和newfacclearuset:\statatut\fac19.dtataregionappendusingt:\statatut\newfactaregion合并后样本量增加,但变量数不变茎叶图:stemx1,line(2)(做x1的茎叶图,每一个十分位的树茎都被拆分成两段来显示,前半段为0~4,后半段为5~9)stemx1,width(2)(做x1的茎叶图,每一个十分位的树茎都被拆分成五段来显示,每个小树茎的组距为2)stemx1,round(100)(将x1除以100后再做x1的茎叶图)直方图采用auto数据库histogrammpg,discretefrequencynormalxlabel(1(1)5)(discrete表示变量不连续,frequency表示显示频数,normal加入正太分布曲线,xlabel设定x轴,1和5为极端值,(1)为单位)histogramprice,fractionnorm(fraction表示y轴显示小数,除了frequency和fraction这两个选择之外,该命令可替换为“percent”百分比,和“density”密度;未加上discrete就表示将price当作连续变量来绘图)histogramprice,percentby(foreign)(按照变量“foreign”的分类,将不同类样本的“price”绘制出来,两个图分左右排布)histogrammpg,discreteby(foreign,col(1))(按照变量“foreign”的分类,将不同类样本的“mpg”绘制出来,两个图分上下排布)histogrammpg,discretepercentby(foreign,total)norm(按照变量“foreign”的分类,将不同类样本的“mpg”绘制出来,同时绘出样本整体的“总”直方图)二变量图:graphtwowaylfitpriceweight||scatterpriceweight(作出price和weight的回归线图——“lfit”,然后与price和weight的散点图相叠加)twowayscatterpriceweight,mlabel(make)(做price和weight的散点图,并在每个点上标注“make”,即厂商的取值)twowayscatterpriceweight||lfitpriceweight,by(foreign)(按照变量foreign的分类,分别对不同类样本的price和weight做散点图和回归线图的叠加,两图呈左右分布)twowayscatterpriceweight||lfitpriceweight,by(foreign,col(1))(按照变量foreign的分类,分别对不同类样本的price和weight做散点图和回归线图的叠加,两图呈上下分布)twowayscatterpriceweight[fweight=displacement],msymbol(oh)(画出price和weight的散点图,“msybol(oh)”表示每个点均为中空的圆圈,[fweight=displacement]表示每个点的大小与displacement的取值大小成比例)twowayconnectedy1time,yaxis(1)||y2time,yaxis(2)(画出y1和y2这两个变量的时间点线图,并
本文标题:Stata常用命令
链接地址:https://www.777doc.com/doc-1792617 .html