stata12毕设速成手册

更新时间:2023-11-23 14:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

随便网上一搜就好多Stata使用说明,但大家估计都不想细细看,所以我按自己使用Stata的经验按一般的操作顺序写了速成手册。声明:本帖只适合为了毕设才刚接触Stata的人,任何入过门的走过路过请错过!福利帖,废话不多说。我使用的是Stata 12绿色版,不需安装,直接点击Stata SE.exe即可使用。本手册简单,更详细内容可参见“stata使用手册.pdf”。 1、打开界面,导入数据

数据处理包含两层结构,一个是操作界面,如下所示。

另一个是数据表,见下图,有两种方式打开:1. Command命令框中输入bro或者edit,这两个命令的区别在于前者打开后处于浏览模式,不能进行数据更改,而后者可以随意更改。2. 点击操作界面的图标(如上所示),直接进入编辑模式。

2. 如何输入数据并保存

正常大家下载的数据都是excel格式的,导入数据有很多方法,最直接也是我用的最多的就是复制-粘贴。Excel中复制,到数据表界面右击最左上一格选粘贴。这时候会提醒“treat first

row as data”还是“treat first row as variable names”,选后者即可。粘贴后的例子如下所示:

这时候我们就发现右边Variables中显示出了当前表中的所有变量了。这里注意两点:1. 变量名必须是英文的;2. 变量表不能是二维的,在上述表中,一个日期对应一条记录,这是一维的。如果是一个日期、一个地点对应一条记录,那表只能采用如下格式:

日期 地点 内容 2012.1 北京 。。。 2011.2 江苏 。。。 而不能是如下格式

北京 江苏 2012.1 。。。 。。。 2011.2 。。。 。。。 可以在原来粘贴的基础上继续粘贴,就跟excel里面粘贴一样。

之后关闭程序,就提醒你保存了,或者在command里面输入:save 英文文件名,然后回车。 3. 操作命令

在操作命令的命令框中,可以输入指令结合相应变量名,然后按回车进行操作,最简单的就是上述的bro和edit。所有的命令当你不知道怎么书写格式时,在command中输入:help 命令,就可以查看操作方式了。操作是需要注意变量类型:在变量表中,红色代表文本类型,黑色代表数值类型,只有数值是可以算术运算的,有些数字会是文本类型无法计算,这时候可以用real(变量名)命令将数字由文本类型变成数值类型。 (1) 运算

算术运算:加+,减-,乘*,除以/,幂^,运算结果还是数值 逻辑运算:或|,与&,非!,大于>,大于等于>=,等于==,小于等于<=,小于<,不等于!=,运算结果是True和False,常结合if命令使用 (2) 生成新变量

我们常常需要在已有变量基础上生成新的变量,在Command命令框中输入

gen新变量名=生成命令

新变量名只要由英文、数字和下划线_构成,且不能以数字开头,不能有空格,经常使用的方法如BeginDate, price_lag,便于记忆。 =是赋值,Stata会先计算等式右边的值然后赋值给左边。注意==才是判断两边是否相等。 生成命令例如:amount+1,balance+amount。这里介绍如何从文本的日期得出数值的年月日。我们发现年份是date的前四位,所以可以使用如何命令: gen year=real(substr(date,1,4))

(3) (4) (5)

(6)

(7)

substr(date,1,4)表示从date的左边第1位开始取连续的4位,这时候取出的还是文本型,real()将文本型转换成了数值型。 更改变量值

replace 原有变量名=赋值命令

下面用varlist表示一列变量名,如date amount balance

删除:drop varlist,保留:keep varlist,排序:sort varlist(递增),gsort -varlist(递减) 暂存、恢复

有时候我们希望试探的操作一下,然后能撤销到哪一步,或者因为操作失误要撤销,这时候,先在希望保留的时候输入preserve,然后在希望撤销的时候输入restore,就可以回到preserve时候的状态了。 不同行之间的处理

一般的命令都是同一行之间进行的,例如amount+balance,那就是分行计算每行的amount和balance的直接,但很多时候我们要进行不同行之间的计算,例如balance之间的差,这时候可以采取以下措施:变量名后面加[_n+/-x],如balance[_n-1]表示上一行的balance值,balance[_n+2]表示下面第二行的值,以此类推,从而balance-balance[_n-1]就表示balance的增量了。这种操作一定要注意先排序。 合并

很多时候我们要将两个表合并,比如把wind下载的公司信息与公司所在省份的GDP信息合并,比如

这时候需要使用merge命令。分如下几步实现:

Step 1:首先假设这两个表都已经保存成后缀.dta了,分别叫roa.dta和gdp.dta,假设你保存在桌面上,这时候打开第一个数据表。当Stata提取已经打开的数据表以外的表格时,需要有一个搜找的路径,这时候首先告诉Stata查找的路径:在command里面输入: cd 路径,例如桌面就是: cd C:\\Users\\scott_thu\\Desktop Step 2: 观察上面两个表,第一个表每一行需要与第二个表中和它具有相同province、year的行合并,在第二个表中province加上year可以唯一确定一行,但在第一个表中即使同一个province、同一年,也还有可能是不同的公司(例子数据没给全),所以不能完全确定。这时候命令就是:merge m:1 province year using gdp。m:1表示province和year在第一个表中不能唯一确定(所以是multiple缩写m),在第二个表中唯一确定(所以是1)。 Step 3:这时候你会看到合并以后的数据,其中会生成一个新的变量_merge,其取值为1、2、3表示合并情况,3表示合并成功,1表示数据只来自当前数据表,2表示数据只来自使用数据表。重要:再下次merge之前,一定要先删掉这次merge的_merge,即命令 drop _merge。有时候merge不成功还因为变量类型不一样,例如year在一个表中是文本,另一个表中是数值,这时候可以用real()命令先处理一下。 (8) if 命令

有时候我们只要对满足特定条件的观测进行操作,这时候通过加条件实现。例如:

replace gdp=gdp+1 if year==2004

这个命令就只对year等于2004的观测,把gdp替换成原值加1。 (9) by 命令

很多命令语句之后都可以加上by varname,表示按照varname分类进行操作,特别是在统计分析的时候。 (10) 日期

在excel里面的日期粘贴进Stata之后就都变成文本了,而我们很多时候需要它是日期类型,特别是做时间序列的时候要告诉stata用哪个变量做时间变量。

比如在excel里面,date=1991/02/14 #我的生日,记住了吧哈哈^_^ 粘贴到Stata之后,在command里面依次输入: gen year=real(substr(date,1,4)) gen month=real(substr(date,6,2)) gen day=real(substr(date,9,2))

replace date=mdy(month,day,year)

这时候的date就是日期类型了,如果进行实际设定可以用:tsset date 4. 统计分析

最常用的有sum varname[,detail] codebook varname,就是查看单个变量情况的。 如果要看样本关于某个变量的频率分布,可以用tabulate varname。

Tabstat也是非常强大的命令,可以多个变量的情况,详情请help tabstat。 5. 画图

柱状图:histogram varname

点状图:graph twoway scatter varname1 varname2 线状图:graph twoway line varname1 varname2 多变量散点图:graph matrix varlist

Y统计量按x分类的柱状图:graph bar (stat) y, over x #stat可以是mean,median, p25。这个命令我用的最多,比如看每年的各省gdp均值啊,每个省公司的平均roa啊,等等。 6. 回归 #这块比较复杂,要更全的命令可以自己百度,相信到这儿你百度也可以自己看

得懂了。

(1) 截面数据线性回归:reg varname(被解释变量) varlist(解释变量) [,options]

[ ]表示里面的东西可有可无,help reg你将看到各种回归方法,如何加权重啊,如何处理随机项啊,等等。

(2) 时间序列或面板:回归命令格式是一样的,但之前你要先告诉Stata哪个是时间变量。比如我想用year来表示时间,就输入:tsset year。注意此时的year一定要是数值型的(日期变量也是数值型的,1960/1/1在Stata里面赋值为0,1960/1/2赋值为1,以此类推)。日期的年、月、季等变化很复杂,知道上文的日期操作应该就够了。

如果要看拟合值,可以用命令:predict varname #将拟合值赋值给了这个varname Predict errorname1 #将误差赋值给了这个errorname1 (3) T test:直接使用: test varname1=varname2 test varname1=100

本文来源:https://www.bwwdw.com/article/3mct.html

Top