Stata学习资料
更新时间:2024-04-03 22:57:01 阅读量: 综合文库 文档下载
- stata学生版价格推荐度:
- 相关推荐
第1章 Stata入门简介 .............................................. 3 1.1 Stata简介 ..................................................... 3 1.2 Stata的界面 ................................................... 4
1.2.1 Stata的菜单 ............................................. 4 1.2.2 Stata的工具栏 ........................................... 5 Stata菜单下方的如图1-3............................................. 5
1.2.1 Stata的窗口 ............................................. 6 第2章 Stata的基本操作 ............................................ 8 2.1 Stata数据的导入 ............................................... 8
2.1.1 创建新的数据库........................................... 8 2.1.2 从Excel或TXT等文档复制数据............................ 12 2.1.3 标准的方式读入数据...................................... 12 2.1.4 .dta格式的数据读入 ..................................... 17 2.2 删除变量和观测值.............................................. 19
2.2.1 删除变量................................................. 19 2.2.2 删除观测值.............................................. 21 2.3 变量类型的转换................................................ 23
2.3.1 变量的描述.............................................. 23 .des v1 v2......................................................... 24 Contains data from 股票交易.dta.................................... 25 .des............................................................... 26
2.3.2 将字符型变量转换成数值型................................ 26 . list v2 in 1/5................................................... 27 2.4 生成日期...................................................... 30 2.5 给变量添加标签................................................ 31 2.6 修改变量名称.................................................. 32 2.7 变量和观测值的排序............................................ 34
2.7.1 变量的排序.............................................. 34 2.7.2 观测值的排序............................................ 37 .sort gpdm year.................................................... 38 2.8 合并数据...................................................... 38
2.8.1 横向合并................................................ 38 .sort gpdm year.................................................... 39
2.8.2 纵向合并................................................ 44 第 3 章 Stata的常用命令 .......................................... 47 3.1 检验数据..................................................... 47
3.1.1 inspect(描述变量的取值特征)........................... 47 3.1.2 检查和删除重复值........................................ 49 3.2 创建变量...................................................... 54
3.2.1 生成新变量.............................................. 54 3.2.2 生成虚拟变量............................................ 58 3.3 描述性统计.................................................... 61
3.3.1 修整非缺失值............................................ 61 3.3.2 描述性统计.............................................. 63
1
3.3.3 t检验 .................................................. 67 3.4 回归分析...................................................... 68
3.4.1 相关分析................................................ 68 3.4.2 回归分析................................................ 71 3.4.3 补充命令................................................ 75 第 4 章 会计稳健性................................................ 81 4.1 Basu模型 ..................................................... 81 4.2 Bushman....................................................... 83 4.3 C-Score....................................................... 89
2
第1章 Stata入门简介
1.1 Stata简介
Stata是一个用于整理数据和分析数据的统计软件,它是在1985年由Stata公司(StataCorp)开发研制出来的,在全球范围内被广泛应用于企业和学术机构中。历经20多年的发展,Stata的版本已经从1.1更新到目前的11.0。 现在有很多统计软件和数据管理软件供大家选择使用,例如:Excel,SAS,SPSS,MATLAB等。但是随着Stata的不断发展,越来越多的人开始选择使用Stata作为统计工具。主要原因有以下:
1、体积小。用过SAS、MATLAB的人都知道这些软件需要1G左右的内存,而Stata只有几十兆,便于交流和拷贝。
2、运算速度非常快。Stata是将硬盘的数据全部读入到内存进行运算,所以大大加快了运算速度。
3、便于入门。Stata的菜单功能很丰富,初学者可以依照这些菜单的提示进行操作。
4、方便的样本数据。Stata里提供了很多供使用者练习的样本数据,在菜单File->Example datasets里可以找到这些数据。
5、强大的绘图功能。Stata的绘图功能卓越,常见的二维图Stata都可以绘制出来。
6、更新和发展的速度比较快(这也是很多的人选择的主要原因)。Stata本身提供了很好的运算平台,许多高级模块是编程人员用其宏语言写成的程序文件。
另外,Stata有着丰富的网络资源,用户可随时到Stata网站寻找并下载最新的升级文件。Stata的网址是www.stata.com,它提供了很多服务,其中包括软件更新和常见问题解答等,以及专门的Stata期刊网站www.stata-journal.com。使用者可以从这里获得很多相关信息以及书籍介绍。还有互联网论坛Statalist,每月都有很多Stata用户在这里交换邮件和程序。
各位Stata用户可以自己在网上下载Stata10.0、Stata11.0,10.0以下的是以前的版本,不建议使用,因为版本越高级,应用能力也就越强。这两个版本的操作大同小异,本书所采用的是Stata11.0。
3
1.2 Stata的界面
双击
,出现如图1-1所示的界面:
图1-1 Stata的界面
1.2.1 Stata的菜单
Stata界面的最顶端显示的是菜单,如图1-2所示:
图1-2 Stata的菜单
用鼠标左键单击菜单栏上的每个单词,会出现一个下拉菜单,每个下拉菜单下都对应着不同的功能,用户可先自行浏览,后面我们会逐渐介绍每个下拉菜单的功能及作用。
File(文件):打开、存储、读入和输出数据、文件,打印文件,读入样本数据,打开最近操作过的命令及退出等。
Edit(编辑):复制和粘贴数据,对Stata界面的显示进行编辑。
4
Data(数据):对数据进行编辑,包括排序和合并数据,生成新的变量,插入变量标签,从文件夹里查看描述数据等等。
Graphics(图表):生成各种图表,像折线图、散点图、柱形图、饼图等等,以及对各种图表进行编辑和整理。还可制作时间序列图及面板数据折线图。
归等等。
User(使用者):允许对用户自定义。
Window(窗口):对Stata不同窗口进行切换等等。
Help(帮助):获得Stata的帮助,包括Stata自备的帮助信息及Stata手册和Stata网络的帮助。
1.2.2 Stata的工具栏
Stata菜单下方的如图
1-3
图1-3 Stata的工具栏
工具栏可以帮助用户快速进入Stata的常用功能,如果你忘了每个图标的意
思,只需将鼠标停在图标的上面,图标就会变蓝,并出现一个解释的标签。
打开:打开一个Stata文件。点击“打开”图标会出现一个打开的对话框,可以从最近打开的文件中选择任一个Stata文件。 保存:将当前的Stata文件保存到计算机中。 打印:打印结果。 记录:新建一个记录文档。
浏览器(即帮助窗口):打开浏览器,可以进行需要帮助的命令的查找。 图表:打开一个图表的窗口,并置于其他窗口的前面,然后进行图表编辑和制作。
Do文件编辑器:打开Do文件编辑器或将一个Do文件编辑器置于其他窗口的前面,然后进行程序命令的编辑和修改。
数据编辑器(编辑):打开数据编辑器,或将数据编辑器置于其他Stata窗口的前面,然后对数据进行编辑和整理。
数据编辑器(浏览):打开数据编辑器在浏览的模式,此功能只能对数据进行浏览,不可对数据进行编辑。
5
变量管理:打开变量管理,对变量的名称、标签、类型等进行编辑。 清除输出限制:当Stata在输出比较长的结果过程中停止时,点击此图标即可继续输出结果。
停止:停止当前Stata中的任务。
1.2.1 Stata的窗口
Stata的窗口如图1-4所示:
图1-4 Stata的窗口
从上图我们可以看到四个窗口:Review(回顾), Variables(变量) Results (结果),Command(命令)。
左上方的是Review,记录所有通过命令程序和窗口菜单方式操作执行过的命令。如果需要检查和修改先前使用过的命令,就可以在此窗口进行操作,如下:
用鼠标左键点击一下此窗口的某个程序,程序就会在Command窗口出现,然后对程序进行更改和运行;如果想直接运行某个程序,直接左键双击即可实现。 左下方的是 Variables,记录所有正在操作的程序中使用的变量,包括
Name(变量的名称);Label(变量标签);Type(变量的类型);Format(变量的显示格式)。
其中,Label是对变量名称进行的解释进行;
Type包括字符型的string常常简写成str和数值型byte,int,long,float,double;
Format是在统计表格里呈现的格式。
6
右上方的是Results :记录所有程序运行的结果。此窗口的结果可以直接复制到Excel或Word里。
右下方的是Command:在这里输入所有进行的命令程序,然后按Enter键。 上面四个界面的大小可以自由调节,也可关闭。若需要再打开某个窗口,将鼠标移到菜单中的Window上,在出现的下拉菜单中选中你要打开的窗口名即可。
7
第2章 Stata的基本操作
2.1 Stata数据的导入
2.1.1 创建新的数据库
创建新的数据库原数据必须是少量的。 打开Stata,你可以在命令窗口输入edit,或点击工具栏窗口的倒数第五个图标即Data Editor(Edit),就会出现如图2-1所示:
图2-1 数据编辑器
现在已经打开了数据编辑器的窗口,可以直接录入数据。例如,需要录入以下数据:
gpdm year gsjc csrc dshgm dycgbl 1 1998 深发展A I 11 0.104556 2 1998 深万科A J 18 0.064239 3 1998 深金田A M 10 0.074821
8
4 5 1998 1998 深安达A 世纪星源 F M 9 11 . 0.38235
你可以一笔一笔的录入数据,也可以通过复制粘贴把数据录入到编辑器,数据录完后你的屏幕会显示如下:
你会发现数据录入到了Stata里,变量的名称显示却是var1,var2,?,var5。接下来,我们还需要修改变量名称并给变量贴上标签。下面我们就来进行操作。在需要修改的变量的上,单击鼠标右键,会出现一个下拉菜单,下拉菜单的第四个子菜单是Variable Propertise?(变量属性),单击左键,就会出现如下的对话框:
将第一栏Name中的var1改成gpdm。
第二栏Label(标签)即对变量的解释,此处填上股票代码。
9
第三栏Type(类型)即变量的类型,因为变量是数值型,float是数值型,所以此处不用修改。数值型的数据保存为byte,int,long,float,double,默认格式为float。其中,byte,long,int是整数类型,只能存储整数;float和double格式能存储带小数的数值。字符型的保存格式为str*,如str8。其中,str即string(字符串)的缩写,数字8代表最长的字符长度。
第四栏Format(显示格式)即在数据编辑器里所显示的形式。一般有%w.dg和%w.df这两种显示格式:
%w.dg即general(一般)数字格式,w代表数字显示的宽度,d代表小数部分至少要显示的位数,如Format为%9.0g时,10000000显示为1.00e+7;
%w.df即fixed(固定)数字格式,w代表数字显示的总宽度,d代表小数部分固定显示位数,如Format为%9.1f时,100显示为100.0。
第五栏Value(取值),一般在含虚拟变量的数据里会用到这一栏。 上面的步骤操作好之后,Apply键会变蓝,单击即可,这样变量var1的名称和标签就改好了,然后再重复操作,修改其它的变量。
另外,我们还可以通过命令方式来实现上面的操作。譬如,要将变量var1改名称可通过如下命令实现:
. rename var1 gpdm
rename为重新命名的意思,上面这个语句意为将var1重新命名为gpdm。 给对变量gpdm贴上标签,可通过如下命令: . label variable gpdm “股票代码”
此语句的意思为给变量gpdm贴上为股票代码的标签。
数据录入以后,为了方便下次使用,我们要对数据进行保存。使用工具栏的第二个图标Save,将鼠标移在此图标上,单击就会出现一个保存的对话框:
先选择好要保存的路径,然后在文件名栏里,将*改为要保存的文件名,最后点击保存。如本例,将文件选择保存在D盘的Stata11下面,将“*”改为“公司治理”,这样保存的结果在Stata的结果窗口就会显示出一行字体,如下:
10
file D:\\Stata11\\公司治理.dta saved 保存的方法还可以通过命令的方式输入: . save 公司治理.dta
上面这个语句的意思是将文件保存为以“公司治理”为名称的文件,且文这是因为在用save保存前,已经通过菜单的方式保存过了一个名为“公司治理”的dta文件,所以当在保存的时候Stata会提示文件已经有了,如果还想在保存为此名,或想更换原有的“公司治理”文件可通过如下命令实现:
件的后缀是.dta即Stata文件。当在命令窗口运行上面的命令后,结果窗口有红色提示:
file 公司治理.dta already exists
这是因为在用save保存前,已经通过菜单的方式保存过了一个名为“公司治理”的dta文件,所以在保存的时候Stata会提示已有相同名称文件,如果还想再以此名保存,或想更换原有的“公司治理”文件可通过如下命令实现:
. save 公司治理.dta,replace
上面语句的意思是指将文件以“公司治理.dta”为名进行保存时,如果已有相同名称的文件,将替代文件,并有语句提示:
file 公司治理.dta saved
值得注意的是,上面语句中的“.”和“,”都要在英文拼写状态下输入。
下面我们来查看公司治理.dta文件是否保存。在命令窗口输入 .dir
此命令是directory的简写,是查看在指定路径下所包含的文件。在Stata中所有命令都可以简写,除非你简写的命令不是Stata默认的命令。例如:tabulate 可简写为tab,summary可简写为sum,甚至可以简写为su,只要su不是Stata的另外一个命令。
Stata的默认路径是Stata软件的存放路径,我们操作到现在并没有更改路径,并将“公司治理.dta”存储在此路径下,所以当运行命令dir后,就会在在结果窗口显示:
80.3k 8/18/10 22:55 公司治理和Cscore2008.csv 61.7k 8/18/10 22:55 公司治理和Cscore2009.csv 920.5k 8/12/10 15:03 股票交易.xlsx
1391.8k 8/12/10 8:49 财务数据.xlsx
11
每行第一列如果显示的是
2.1.2 从Excel或TXT等文档复制数据
Stata可以直接从别的文档复制数据。如果数据来自Excel可以直接复制粘帖;若数据是来自Word或TXT文档,并以Tab键分隔,也可以直接复制粘帖。
只有当数据较少的时候才可以直接复制粘帖,如果碰到大量的数据,并只需要读入其中部分变量,这种方法就显得过于繁琐。下面介绍Stata标准的读入数据的方式。
2.1.3 标准的方式读入数据
Stata有标准的读入数据的方式,这种方式可以非常方便地读入大型的数据。该方式是使用命令insheet,对原始数据要求必须为有Tab键分隔或逗号分隔的数据。
在上面dir显示的结果中,最后两个文件都是以.xlsx为后缀,表明这是excel格式的数据,下面我们就以股票交易.xlsx为例看怎样将excel数据转换成逗号分隔的数据。
首先,打开文件“股票交易.xlsx ” ,然后点击左上角的另存为,就会出现如下的对话框:
下拉保存类型框最右边的箭头
,会出现如下的菜单:
12
选择CSV(逗号分隔),然后保存。此时,excel会有这样的提示:
点击“是(Y)”。关闭excel,会出现如下提示:
点击“是(Y)”,又会出现一个保存对话框:
13
可以对文件名部分进行修改,保存你方便的文件名,为了和先前的做对比,此处继续使用“股票交易”文件名,文件名修改好后,点击保存,出现如下提示:
在点击“是(Y)”,此时出现如下提示:
继续点击“是(Y)”即可。如果刚开始操作的时候,觉得有些啰嗦,你可以这样操作,看到有提示的对话框,都点击是,就行了。
我们通过命令dir查看Stata11下面的文件,这时比先前多了个“1266.7k 8/12/10 15:08 股票交易.csv ”,这样就保存的CSV(逗号分隔)格式的文件。
14
然后通过菜单File > Import > ASCII data created by a spreadsheet操作方式如下:
点击ASCII data created by a spreadsheet,出现如下对话框:
15
在ASCII dataset filename:下面的空白处通过Browse选择要读入的CSV格式的数据操作完成后,空白出会有如下的内容:
再点击最下方的OK,这样文件“股票交易.csv”便读入到Stata里。然后将文件保存为 “股票交易.dta” Stata格式的,以备用。
文件“股票交易.csv”读入到Stata里还可以通过如下命令方式实现: .insheet using “D:\\Stata11\\股票交易.csv”
语句意思为从D盘的Stata11下面读入非Stata格式的文件股票交
易.csv,因为StataSE在这路径下,即此时的路径就是在Stata11下,所以上面的命令也可简写为
.insheet using 股票交易.csv
Stata保存的数据文件的格式为.dta,但是此格式的读取用insheet却不能读入。下面介绍.dta 格式数据的读入
16
2.1.4 .dta格式的数据读入
通过以上的操作,在我们的Stata11文件下已经存储了“股票交易.dta”。这是一个可以直接使用的Stata类型文件,如果要将此文件读入到Stata里,你可以选择在点击工具栏的第一个图标框:
,然后就会弹出如下对话
选中“股票交易”,然后点击最下方的“打开(O)”,即打开。 也可通过命令方式打开,程序命令如下: .use 股票交易.dta
此语句意思为使用文件“股票交易.dta”,因为.dta是Stata的默认存储数据的格式,所以上面的命令也可简写为:
.use 股票交易
虽然使用菜单和命令方式都可以读入数据,但菜单方式会读入全部数据,包括所有的观察值和变量,而命令方式会有选择性和灵活性。
如果只需要使用文件“股票交易.dta”中的变量v1和v2,则通过如下命令:
.use v1 v2 using股票交易
然后点击工具栏倒数第四个图标Date Editor(Browse),或输入命令bro(browse的简写),对数据进行浏览,显示如下:
17
如果需要读入数据的前10笔,可通过如下命令实现: .use 股票交易 in 1/10
此语句意思的读入文件“股票交易.dta”的第1到第10笔数据,使用命令bro查看数据,显示如下:
在上面的数据编辑器里有的变量v1是黑色,而变量v2是红色,黑是字体代表是数值型的,红色代表字符型的。数据虽然已经输入到Stata里,但是并不符合所需数据的的形式,下面对数据进行整理。
18
2.2 删除变量和观测值
2.2.1 删除变量
在文件“股票交易.dta”中,变量v3(股票简称)和变量v4(公司中文
名)是多余的,需要删除,下面我们就来介绍怎样删除变量。
可以通过菜单Data > Variables Manager,操作方式如下:
然后会出现如下的对话框:
19
按住Ctrl键,选中变量v3和v4,再单击鼠标右键,选中Drop Selected Variables会有如下显示:
待变蓝后,左键单击,出现如下对话框:
20
然后选择是(Y)即可。
也可通过如下命令方式实现: .drop v3 v4
上面语句的意思是删除变量v3和v4。 再通过如下命令将文件保存: .save 股票交易,replace 然后在输入命令 .clear
此语句的意思是删除,删除当时Stata中使用的所以变量。
2.2.2 删除观测值
在会计中,由于金融行业的会计制度和其他的行业的不同,所以在进行实证研究时,一般会剔除金融行业的观测值。下面我们就来查看在“股票交易”数据中是否存在金融行业的,并将其剔除。
变量csrc代表行业分类,通过菜单Statistics > Summaries, tables, and tests > Tables > One-way tables,可获得变量csrc的频数分布,操作如下:
点击One-way tables,出现如下对话框:
21
点击Categorical variable下面的箭头,选择变量csrc,操作如下:
再点击OK即可。
也可通过如下的 tab(tabulate的简写)命令方式实现上面的操作: .tab csrc
在结果窗口发现变量csrc含有J,J01,J09,他们是金融行业的代码,现在删除这些观测值。
在命令窗口输入如下命令便可实现: drop if csrc==“J”
语句意思是如果变量csrc的观测值等于J就删除,Stata语句中if表示如果,假如的意思。Stata中的算术和逻辑符合如下:
== != > < >= <= = 算术和逻辑符合 等于 不等于 大于 小于 大于或等于 小于或等于 定义为 + - * ^ | & ! 加 减 乘 除 或 和 否 通过上面的程序命令,变量csrc中含有J的观测值被删除。剩下的观测值J01和J09,你可以按照上面的命令用两步把不需要的观测值删除。也可以通过如下的命令方式一次性删除上面三个观测值:
. drop if csrc==“J”|csrc==“J01”| csrc==“J09”
删除了不需要的观测值,此时变量csrc就便的多余了,使用命名: .drop csrc
22
然后保存文件
.save 股票交易,replace
2.3 变量类型的转换
2.3.1 变量的描述
先读入数据“股票交易.dta”,如果此时你想查看数据所包含每个变量的类型,变量的标签,并包含了多少观测值等,可以通过菜单实现:Data > Describe data > Describe data in memory,操作如下:
点击Describe data in memory,出现如下的对话框:
在Variables下面的框格里最右边有个箭头,点击它选择所要描述的变量,先选择变量v1,v2,操作如下:
23
然后点击OK,在结果的窗口,出现如下的内容:
storage display value
variable name type format label variable label ------------------------------------------------------------------------------------------------------------------------------------
v1 long .0g 股票代码 v2 str10 s 年度
variable name表示变量名称,storage type表示变量类型,display format表示显示格式,value label表示取值的标签,variable label表示变量的标签。
上面菜单的操作,用命令des(describe的简写)同样可以实现: .des v1 v2
此语句的意思的描述变量v1,v2的基本情况。
如果在如下对话框:
24
Variables下面的框格里什么都不填,直接点OK,Stata默认将所有的变量都描述出来,结果窗口显示内容如下:
Contains data from 股票交易.dta
obs: 16,820
vars: 4 13 Aug 2010 21:46 size: 504,600 (99.0% of memory free)
------------------------------------------------------------------------------------------------------------------------------------ storage display value
variable name type format label variable label
------------------------------------------------------------------------------------------------------------------------------------ v1 long .0g 股票代码 v2 str10 s 年度 v6 float %9.0g 回报率 v7 double .0g 总市值
------------------------------------------------------------------------------------------------------------------------------------
第一行 Contains data from 股票交易.dta意思数据来自于股票交易.dta这个文档。obs:16820,表示观测值是16820个,vars:4 表示变量有4个,后面的日期表示最后一次修改数据的日期,size: 504,600 (99.0% of memory free)表示数据占有504600B内存,还有99%的内存是可用。 此菜单操作同等于如下命令:
25
.des
从结果窗口的显示可以看书,变量v2的类型是str10,代表是意思是字符型,最长的字符长度是10。
下面我们就来看怎样将字符型变量转换为数值型变量。
2.3.2 将字符型变量转换成数值型
通过前面的分析,我们已经变量v2是字符型,现在将v2转换成数值。首先,列示变量v2的前5笔观测值,看其含有哪些字符。使用菜单:Data > Describe data > List data,操作如下:
点击List data,出现如下对话框:
26
在此窗口Variables下面的框格里点击最右边的箭头,选择v2变量。切换到by/if/in/窗口,在Use a range of observations 前面的方框里点击下,会出现√,然后在From:后面填入1,在o:后面填入5,如下对话框:
点击OK。在结果窗口有如下的显示内容:
+------------+ | v2 | |------------| 1. | 1991/12/31 | 2. | 1992/12/31 | 3. | 1993/12/31 | 4. | 1994/12/31 | 5. | 1995/12/31 | +------------+
上面的操作也可用如下的命令方式实现: . list v2 in 1/5
语句的意思列示变量v2的第1到第5笔观测值,命令list是列示的意思。 根据上面的显示结果可知,变量v2含有字符“/”,下面开始对变量v2进行转换。
使用菜单的步骤是:Data > Create or change data > Other
variable-transformation commands > Convert variables from string to numeric,操作如下:
27
点击Convert variables from string to numeric,出现如下的提示框:
在String variables to convert:下面的框格里,点击最右边的箭头,选择变量v2,并在Create new numeric variables named:下面的框格里输入产生的新变量名date,然后点击Remove these characters前面方框,会出现√,在Remove these characters下面的框格里填上/,操作的显示如下:
28
点击OK即可。
上面的操作也可通过如下命令的方式实现: . detring v2,generate(date) ignore(“/”)
上面语句的意思是忽略字符型变量v2中的/生成一个新数值型变量date。detring是将字符型变量转换成数值型变量的意思,generate(可简写为gen)意为产生一个新的变量,ignore是忽略的意思。
此时,再des所有变量下,会发现多了个新变量date,它的类型是数值型的。这样变量v2就不需要了,删除变量v2,再保存以备用。操作如下: . drop v2
. save 股票交易,replace
如果在要转换的字符变量里没有特殊字符(如/,%,$),可使用如下的程序命令来实现字符型的转换: .gen 新变量=real(旧变量)
此语句的意思是将旧变量的所有字符都转换成数值型的新变量。用此语句是值得注意的是,任何非数字的表达都会转换成缺失值,仅当数据没有字符的时候,才使用该功能。
前面对不需要的变量和观测值进行了剔除,并将变量都转换成了数值型变量。下面继续对数据进行处理,以符合最后使用数据的需要。
29
2.4 生成日期
打开股票交易数据,列示变量date的前5笔观测值,结果显示如下:
+----------+ | date | |----------| 1. | 19911231 | 2. | 19921231 | 3. | 19931231 | 4. | 19941231 | 5. | 19951231 | +----------+
此时的变量date,虽然是数值型的,其观测值19911231意思是1991年的年底,但是会计中很多实证研究并不需要这样累赘的年份,我们只需要1991。我们可以通过如下的程序命令来实现所要的操作: .gen year=int(date/10000)
此语句的意思是产生一个新变量year,它是这样定义的用date除以10000然后取整数,19911231除以10000等于1991.1231,再取整正好1991,就是所需要的年份。int是整数型,在此语句中意为取整数。
类似的方法如果我们需要月份,可通过如下的程序命令实现: .gen month=int((date/10000-year)*100)
还可用同样类似的方法提取天数。现在股票交易数据有了需要的年份,删除不需要的变量date,然后保存。 在变量窗口你会发现,新生成的变量year没有标签,下面给新的变量year填上标签。
30
2.5 给变量添加标签
数据股票交易中变量year其代表年份的意思,虽然这个变量容易明白其意思,但有时变量多时或是变量名不是用英文替代时,对于变量所代表的含义会难以分辨和理解,所以为了方便使用,需要给变量贴上标签。下面就来看怎样给变量year贴上年份这个标签的。
若通过菜单的方式是:Data > Variables Manager,操作如下:
点击Variables Manager,出现如下对话框:
先用鼠标选择year,然后在右边的Valuable Properties下面的Label框格里输入年份,操作如下:
31
点击右下方的Apply即可,最后将此对话框关闭。 也可以通过如下程序命令的方式实现上面的操作: .label var year 年份
此语句的意思是给变量year贴上标签年份。如果再输入如下的命令变量的标签就会自动删除: .label var year。
2.6 修改变量名称
打开数据股票交易,它包含四个变量v1,v6,v7和year,可以发现变量名v1没有变量名year方便使用,下面就对变量名v1,v6和v7进行修改,运用的菜单路径是:Data > Data utilities > Rename variable具体操作如下:
点击Rename variable,会出现如下的对话框:
32
点击Existing ariable name下面框格里箭头选择变量v1,然后在New
variable name下面的框格里输入新的变量名gpdm,操作如下:
点击下方的OK即可。
上面的操作也同样可以通过如下的程序命令方式实现: .rename v1 gpdm
此语句的意思是将变量v1重新命名为gpdm。用同样的方法将变量v6和v7重新命名为return和mv。
33
变量名修改好了,由于股票交易文档在接下来整理中会和其它数据进行合并,所以要先对其变量和进行排序。
2.7 变量和观测值的排序
2.7.1 变量的排序
有时为了方便变量的使用,会将一些常用的变量排在前面,或有对变量进行合并时,一般都会把合并的参照的变量排在最前面。对变量的排序通过菜单方式的路径是:Data > Data utilities > Change order of variables,操作如下:
点击Change order of variables,出现如下对话框:
34
点击Variables to reorder下面的框格最右边的箭头,会出现一个下拉菜单,是各个变量的名称,按照你需要的先后顺序点击各个变量,框格里就会按你点击的顺序显示出各个变量,如下所示:
然后点击OK即可。在变量窗口显示的变量的顺序就会按照你要的需要
排列,上面的操作可用如下命令方式实现:
.order gpdm year return mv
此语句意思是按照所列示的变量顺序排列。
如果你想把某个变量比如变量year移到变量return的前面,可以这样,菜单的路径是:Data > Data utilities > Change order of variables,操作如下:
点击Change order of variables,出现如下对话框:
35
点击Variables to reorder下面的框格最右边的箭头,会出现一个下
拉菜单,选择要移动的变量year,然后选中Place variables to reorder befor specified variable 此时它下面的框格会变蓝,然后点击框格里的箭头选择变量return,操作填入如下:
点击OK即可。此操作用命令方式如下:
36
.order year,before(return)
此语句的意思是将变量year移到变量return的前面。
另外,如果你只想把某两个变量的顺序调换下,用如下的命令可实
现:
.move 变量1 变量2
此语句的意思是交换变量1和变量2的位置。
2.7.2 观测值的排序
排序是指对要排序变量的观测值进行升序(或降序)的排列。要排序的
变量可以是一个也可以是多个。下面就对变量gpdm和year进行排序。使用菜单的路径是: Data > Sort > Ascending sort,操作如下:
点击Ascending sort,出现如下的对话框:
37
点击Variables下面框格最右边的箭头,选择变量gpdm和year,如
下:
点击OK即可。上面的操作可用如下命令方式实现: .sort gpdm year
此语句的意思是对当前的变量进行排序,先对变量gpdm按升排序,
再同一个gpdm的下对year按升序排序。值得注意的是,如果观测值中存在缺失值,会被排在最后,因为缺失值被认为是无穷大。最后保存。
用dir浏览stata11下面的文档,发现另外一个Excel的文档“财务
数据.xlsx” ,用对“股票交易.xlsx”数据处理的方法对此文档进行整理。得到新的文档“财务数据.dta”。下面对两个文档进行合并。
2.8 合并数据
合并数据分为纵向合并和横向合并。横向合并意思是增加变量,根据关
键变量进行将副档的文件合并到主档,如果主档(合并是当前打开的)和副档(当前未打开,但要合并到当前文档的)中有相同的变量名,副档会被住档替代;纵向合并意为增加观察值,主档和副档的变量名大部分相同,合并后相同名的变量的观察值增多。
2.8.1 横向合并
在d盘的Stata11里已经整理好了两个备用的Stata类型的文件:“财
务数据.dta”和“股票交易.dta” 。这两个文件都包含变量gpdm和year,现在对按照这个变量来合并,这两个变量也就是所谓的关键变量。操作如下:
38
.use 财务数据
意为打开文件“财务数据.dta”。 .sort gpdm year
意为对关键变量gpdm和year排序。在对文件进行合并的时候,一定要
先排序,否则Stata不能执行。
.save财务数据,replace
意为将文件保存,如果有相同名的财务数据的Stata文件则替换。
.use 股票交易
意为打开文件“股票交易.dta” .sort gpdm year
意为对关键变量gpdm和year排序。现在两个数据的关键变量都已经排
序好下面对数据进行合并,将“股票交易.dta”做为主档,“财务数据.dta”做为副档。
使用菜单方式的路径如下是:Data > Combine datasets > Merge two
datasets,操作如下:
点击Merge two datasets,出现如下的对话框:
39
在Main窗口下Type of merge方框下有五种选择:
(1)One-to-one on key variables此句意为如果在主档和副档中的
关键变量都只唯一的表示一个观察值,比如:变量gpdm中的1和year变量中1998这两个值能够唯一的表示一个观察值,而如果只选择了gpdm做为关键变量的话,gpdm中的取值为1的有19个观察值,这时就不用one ,就用many。下面是One-to-one on key variables应用的举例:
gpdm 3 3 3 主档 year 1992 1993 1995 gpdm 3 3 3 3 return 0.3829 0.3029 + -0.268
gpdm 3 3 3 副档 year 1992 1993 1994 ib 74146960 1.17E+08 1.31E+08 横向合并档 year return 1992 0.3829 1993 0.3029 1994 . 1995 -0.2682 ib _merge 74146960 3 1.17E+08 3 1.31E+08 2 . 1 横向合并后,在合并文件的最后一列会自动生成系统变量,Stata默认名
为_merge。_merge只有三个取值,为1时代表合并档的观察值仅自于主档,副档没有匹配的观测值,比如上面股票代码是3,1995年的观察值只有主档有,副档没有,所以_merge
40
值为1。为2时代表合并档的观察值仅来自于副档,主档没有匹配的观测值比如上面合并档股票代码为3的公司在1994年的观察值,只有副档有,所以_merge值为2。3时代表观察值主档和副档都有,比如上面合并股票代码为3的公司在1992和1993年的观察值,主副档都有,所以_merge值为3。
(2)Many-to-one on key variables(unique key for data on disk)
意为主档的关键变量有多个相同的观察值,而副档的关键变量每个观察值只有一个。例如:
主档 gpdm return 3 -1.2207 3 -0.2682 4 -0.8826 4 -0.3546
+
副档 gpdm ib 3 74146960 4 7942800 5 1.20E+08
_merge 3 3 3 3 2
gpdm 3 3 4 4 5 合并档 return ib -1.2207 74146960 -0.2682 74146960 -0.8826 7942800 -0.3546 7942800 . 1.20E+08 (3)One-to-many on key variables(unique key for data in memory)意为主档的关键变量每个观测值只有一个,副档的关键变量的有相同的观察值。这个和Many-to-one想似,例如:
副档 gpdm ib 3 74146960 4 7942800 5 1.20E+08
+
主档 gpdm return 3 -1.2207 3 -0.2682 4 -0.8826 4 -0.3546 _merge 3 3 3 3 1
gpdm 3 3 4 4 5 合并档 ib return 74146960 -1.2207 74146960 -0.2682 7942800 -0.8826 7942800 -0.3546 1.20E+08 .
(4)Many-to-many on key variables意为主档和副档的都有相同的
观测值。这种合并不同数据的合并往往存在些问题,所以这种方式一般不采用,如果你的数据存在此种合并方式建议修改成1:m或m:1的合并方式。
41
(5)One-to-one by observation意为一对一的观察值的合并,并不
属于配对合并,此处从略。
下面继续合并进行“股票交易.dta”和“财务数据.dta”的合并。主档“股票交易.dta”和副档“财务数据.dta”的关键变量是gpdm和year,这两个变量都唯一的表示一个观察值,所以选择第一合并方式。在Key variables下面的框格里点击最右边箭头,选择变量gpdm和year。在Filename ofdataset on disk下面的框格的右边点击Browse,出现如下对话框:
选择财务数据,然后点击打开(O)。此时,Stata合并的对话框的填入如下:
42
点击OK即可。在结果的窗口显示如下:
Result # of obs. ----------------------------------------- not matched 581
from master 408 (_merge==1) from using 173 (_merge==2)
matched 16,412 (_merge==3) -----------------------------------------
上面Result表示合并的结果,# of obs表示有多少观察值,not matched(没有匹配的)有581个,其中from master(来自于主档的)有408个, from using(来自于副档的)有173个,matched (匹配的)有16412个。
也可用如下命令的方式实现上面的操作: .merge 1:1 gpdm year using 财务数据.dta
此语句使用文档财务数据按照关键变量gpdm 和year进行一对一的合并。下面通过命令对数据中没有匹配的进行删除,命令如下:
.drop if _merge!=3
此语句的意思是如果变量_merge不等于3的,则删除。
43
.drop _merge
删除变量_merge,因为此变量现在已变的多余,然后通过下面的命令保存
.save 合并的数据,replace
2.8.2 纵向合并
打开Stata,使用dir查看在,Stata11里所包含着“公司治理和
Cscore2008.csv”和“公司治理和Cscore2009.csv”这两个的文件,现在要把这两个文件合并成一个新的包含2008和2009数据,即对这两个文件进行纵向的合并。首先将这两个csv格式的文件运用前面介绍过的方法转换成.dta的格式,命令方式如下:
.insheet using 公司治理和Cscore2009.csv .save 公司治理和Cscore2009,replace
用同样的方法将“公司治理和Cscore2008.csv”转换成“公司治理和Cscore2008.dta”。下面将此新建的两个.dta 格式数据进行纵向合并。
纵向合并的菜单路径是: Data > Combine datasets > Append datasets 操作如下:
点击Append datasets,出现如下对话框:
44
点击Filename of files on disks下面框格右边的Browse,出现如下的对话框:
45
正在阅读:
Stata学习资料04-03
浙江工业大学物理化学2009- 2010(2)学年习题104-23
描写苏州的好句好段05-17
田园风光作文400字07-16
维保单位管理办法(草稿)10-30
审核员考试案例分析06-07
庆五一02-07
冲刺(必考试题)高考生物二轮复习 专题五 生命活动调节 考点5 植物的激素调节学案05-08
热力机械工作票使用标准04-05
校园里的大榕树作文450字07-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 学习资料
- Stata
- 线性规划问题的教学设计
- 食品安全学课后思考题2
- 组织行为学综合练习题
- 15#楼脚手架方案修改版
- 51单片机奇偶校验C51程序
- 六年级奥数-第五讲.几何-立体部分 教师版
- 步入近代单元题1
- 测风工岗位岗位作业流程标准
- 2014年磁共振技师大型设备上岗证试题及答案
- 发展心理学试题试卷
- 08年宪法期终考试试题B卷
- 仰天窝互通立交跨线、并线施工安全交底 - 图文
- 关于建立我国个人信用征信系统的思考
- 浙江省2014年高中学业水平考试语文文学常识整理 - 图文
- 2016年泸州市公需科目试题及答案
- 五年级科学上册课堂作业
- 江苏省南通市2015届高三第二次调研测试语文试题H
- 2014年春季学校领导班子绩效考核办法
- 合理化建议
- 论鲁迅小说中的知识分子形象