实验目的.docx
《实验目的.docx》由会员分享,可在线阅读,更多相关《实验目的.docx(18页珍藏版)》请在冰豆网上搜索。
![实验目的.docx](https://file1.bdocx.com/fileroot1/2023-1/10/3534e0c4-7951-4515-b627-a2b658e0116d/3534e0c4-7951-4515-b627-a2b658e0116d1.gif)
实验目的
实验一
【实验目的】
1.在分析数据的过程中,加深对计量经济学相关知识的理解。
2.学会使用Stata软件处理数据,利用经济知识分析,理解数据处理所得结果。
【实验数据】
CEOSAL1.DTA
WAGE1.DTA
meap01.DTA
bwght2.DTA
JTRAIN.DTA
与J.M.伍德里奇的《计量经济学导论》中的习题相配套的数据
【实验步骤】
(一)将用到的Stata函数及其用法
1.cd指定默认工作文件夹。
在使用Stata命令的时候,会直接引用相应的数据文件名,此时该数据文件所在的文件夹就是默认的工作文件夹。
指定默认文件夹的格式为:
cd[“]默认文件夹路径名[“]
注:
引号可以省去(以下遇到相同的情况不再赘述);默认文件夹路径名中不能出现汉字。
2.use选定需要处理的数据文件。
Stata中的命令大多都是对数据进行操作,在操作之前,需要选定相应的数据文件。
use的调用格式为:
use[“]数据文件名[“]
注:
(1)在未指定默认工作文件夹时,use后面的数据文件名可以替换为数据文件路径即:
执行命令:
.use"e:
\Stata\Documents\Lab1\wage1"
执行命令:
.cde:
\Stata\Documents\Lab1后再执行.usewage1
上述命令达到的效果是一样的。
(2)Stata只能同时对一个数据文件进行处理分析,因此在更换被处理数据文件之前,要从Stata系统中清楚原数据文件,命令为clear
3.generate根据现有变量建立新的变量。
generate的调用格式为:
generate新变量名=新变量的表达式
注:
建立新的变量必须以现有变量为基础。
4.display计算数值表达式之后再显示数值。
display的调用格式为:
display数值表达式
5.tabulate对制定的变量进行频数统计。
这是简单的描述性统计,进行频数统计的对象可以是一个变量,也可以是两个变量。
tabulate的调用格式为:
tabulate变量名1[变量名2]
注:
(1)在对两个变量进行频数统计时,变量名之间要用空格隔开;例如:
.tabulatewagefemale
(2)变量名的位置不允许互换,不同的位置对应的是不同的含义。
上述命令的含义是对wage进行频数统计,并将统计的结果按性别分类。
将wage与female位置互换就变成了对性别作频数统计,按工资分类
(3)注意变量名与数据文件名之间的差别。
6.summarize给出变量的样本量,平均数,标准差,最大值,最小值。
同样也是一个简单的描述统计的命令。
summarize的调用格式为:
summarize变量名[,d]
注:
在变量名之后加d可以得到更多的信息,如第四最大(小)值到最大(小)值,百分位数,偏度系数,峰度系数等
示例:
Variables
样本量
均值
标准差
最小值
最大值
Varname
—
—
—
—
—
7.correlate计算变量之间的相关系数。
correlate的调用格式为:
correlate变量名1[变量名2[变量名3[……]]]
注:
计算相关系数不仅限于计算两个变量之间的相关系数,也可以计算多个变量之间的相关系数
8.regress对给出的变量作回归。
regress的调用格式为:
regress因变量自变量
注:
自变量也可以是多个,得到的结果中包括方差分解,整体显著性检验的F统计量及相应的p值,R^2,调整后的R^2,MSE的平方根(亦即对σ的估计),系数估计,系数估计的标准差,t值,显著性检验的p值,置信区间。
回归的示例:
Sourse
SS
df
MS
Model
SSE
k
SSE/k
Residual
SSR
n-k-1
SSR/(n-k-1)
Total
SST
n-1
Coefficient
StandardError
t值
双尾检验
置信区间
DependentVariables
—
—
—
IndependentVariables
—
—
—
Intercept
—
—
—
9.predict根据Stata系统最近的一次回归中的相关变量,可以计算该回归中的因变量估计值,残差等。
predict的调用格式为:
predict新变量名[,参数]
注:
(1)predict计算因变量估计值(残差)时,是根据自变量及回归中得到的截距,相关系数计算的,是一个新的变量,需要被赋予一个新的变量名;
(2)计算估计值是的参数是xb,计算残差时的参数项是res。
参数不限于上面给出的两个;(3)不同的参数有不同的作用。
在help里面可以找到。
10.其他
sort对sort后面给定的变量升序排列。
调用格式为:
sortvarlist
label对变量作注释调用格式为:
labelvariable变量名“label”
_b[]内存中变量的引用。
具体见:
help_b[]
_cons直接使用时,_cons=1;_b[_cons]指最近的一次回归中得到的截距项。
具
体见:
help_b[]
在此次上机课程中将用到的函数及其用法基本就是以上这些了。
上述列举出的都是基本功能,上述的命令都有其扩展用法,具体的可以参见Stata中的help文件。
以后介绍函数的调用方式时,将采用help文件中的相关缩写,如变量名,缩写为varname等
(二)Stata命令的基本格式
处理和分析数据的命令构成Stata命令的主体。
它们可实现各种各样的功能,但大体具有如下的格式:
[byvarlist1:
]command[varlist2][ifexp][inrange][,options]
其中:
[byvarlist1:
]表示按一组变量(由varlist1指定)分组;分组之前,注意对整个数据变量按varlist1排序(sort);
command[varlist2]表示命令是针对由varlist2指定的变量;
[ifexp]表示命令只针对满足exp(一般是一个逻辑表达式)的观测;
[inrange]表示命令只针对处在range指定的范围内的观测,如in5指执行的范围是第5个观测,in-5指执行的范围是倒数第5个观测,in5/12指执行的范围是从第5到第12个观测;
[,options]是命令特有的一些选项,根据情况和需要而定,Stata的强大功能主要就体现在这些选项上,选项的使用非常精细和讲究,使用时既要依据个人的经验,也要参看Stata的帮助系统或工具手册。
这个部分可以参见Stata的help文件,其中有详细的介绍。
[ifexp]极大地体现了Stata的灵活性。
逻辑表达式exp一般由以下成分构成:
■变量名
■数字,字符,表示缺失值的“.”
■关系运算符:
==(等于),!
=,~=(不等于),>(大于),<(小于),>=(大于或等于),<=(小于或等于)
■逻辑运算符:
&(与),|(或),~(非)
以下是一些应用的例子:
ifage>65&age<85(age大于65,小于85的观测)
ifplace==“Canada”&pop~=.(place为“Canada”并且pop不缺失的观测)
ifyear==1994|year==1997(year为1994或1997的观测)
if~(pop==.&year==.)(排除pop和year都缺失的观测)
根据需要,逻辑表达式可以有非常复杂的形式。
[inrange]和[ifexp]相当于从一个大样本中挑出符合条件的小样本,其用处体现在两个方面。
首先是数据清理阶段,找出那些有明显的错误或有缺失的观测。
其次是在数据处理和分析阶段,找出有特别兴趣或意义的观测。
上述给出的格式还可以根据具体的情况做出扩展。
(三)具体实验操作
习题1:
J.M.伍德里奇《计量经济学导论现代观点》C1.1
本题使用WAGE1.dta中的变量educ
(1)求出样本中的平均教育程度,最低和最高教育年数分别为多少?
(2)求出样本中的平均小时工资,它看起来是高还是低?
(3)工资数据用1976年美元报告,利用(2004年或以后)《总统经济报告》,求出并报告1976年和2003年的消费价格指数CPI
(4)利用(3)中的CPI值,求出以2003年美元度量的平均小时工资。
现在,平均小时工资看起来是否合理?
(5)样本中各有多少女性和男性?
解:
简单的Stata函数处理
命令如下:
.usewage1/*打开数据WAGE1.dta*/
(1)
.summarizeeduc/*对变量educ做简单的统计*/
输出结果:
故平均教育程度为12.56年,最低教育年数为0,最高教育年数为18年
(2)
.summarizewage/*对变量wage做简单的统计*/
输出结果:
平均的小时工资为5.89美元
(3)
根据2008年的《总统经济报告》http:
//frwebgate.access.gpo.gov/cgi-bin/getdoc.cgi?
dbname=2009_erp&docid=f:
erp_b62.pdf
以1982~1984年为基年,1976年的CPI为56.9%,2003年的CPI为184.0%
(4)
.display5.89*184.0/56.9/*计算以2003年的美元度量的小时工资数*/
得到:
以2003年美元度量的小时工资数为19.05美元
(5)
.tabulatefemale/*对变量female做简单的频数统计*/
输出:
上述结果,用1代表女性,0代表男性。
输出了女性和男性各自的频数、频率,同时还有向上累计频率。
即样本中女性人数为252人,占总人数的比重为47.91%;样本中男性的人数为274人,占总人数的52.09%
习题2:
J.M.伍德里奇《计量经济学导论现代观点》C1.2
本题使用bwght2.dta中的数据
(1)样本中有多少妇女?
又有多少人报告在怀孕期间吸烟?
(2)平均每天吸烟数量是多少?
将平均数作为这个案例中“典型”妇女的度量指标是否合适?
请解释
(3)怀孕期间抽烟的妇女中,平均每天的吸烟数量是多少?
与
(2)中的结果有何区别?
(4)求出样本中feduc的平均值,为何只用1785个观测值计算这个平均值?
(5)求出npvis的最常见值
解:
summarize命令的应用
命令如下:
.usebwght2
(1)
.summarizecigs/*对变量cigs做统计*/
输出:
.summarizecigsifcigs!
=0/*对怀孕期间吸烟量不等于0的情况做统计*/
输出:
故样本中共有1388名妇女,其中有212人在怀孕期间吸烟
(2)
平均每天的吸烟数量为2.09根。
将这个数据作为样本的度量指标并不合适。
应为吸烟的妇女人数占总人数的15.27%.只有较少的人抽烟,故把2.09这个数据作为度量指标并不合适。
(3)
由
(1)可以得到,怀孕期间吸烟妇女的平均吸烟量为13.67根。
这个数据是怀孕期间吸烟的妇女的平均吸烟量,比
(2)中的人均吸烟量更符合实际,更能反映现实情况。
(4)
.summarizefeduc/*对父亲教育程度作统计*/
输出:
样本总量为1832(browse),而统计得到的结果为1785,说明父亲教育程度这个变量中存在数据缺失(在Stata数据中以.表示)
(5)
.tabulatenpvis/*对npvis作频数统计*/
最常见数即众数,可以用tabulate得到结果,众数取所占比重最大的那个npvis值即可。
所得到的npvis众数为12
习题3J.M.伍德里奇《计量经济学导论现代观点》C1.3
本题使用MEAP01.DTA中的数据
(1)求出math4的最大值和最小值。
(2)有多少学校在数学测试中有100%的通过率,占整个样本的百分比是多少?
(3)有多少学校的数学通过率正好为50%
(4)比较数学和阅读的平均通过率,那个测试更难通过?
(5)求出math4与read4之间的相关系数,得到的结论是什么?
(6)求出exppp的平均值和标准差。
求出exppp的平均值和标准差,你认为学生的人均支出是否存在较大的变异?
(7)假设学校A平均每个学生支出6000美元,学校B每个学生支出5500美元,学校A的支出超过学校B的支出百分之几?
与根据自然对数之差近似的百分比差异100[ln(6000)-ln(5500)]进行比较。
解:
引入条件,然后统计
命令如下:
.usemeap01
(1)
.summarizemath4/*对math4进行统计*/
输出:
math4的最小值为0(无人通过数学测试),最大值为100(所有人都通过了数学测试)
(2)
.summarizemath4ifmath4==100/*对math4=100的情况进行统计*/
输出:
即有38所学校的数学通过率为100%
所占的比例为:
.display38/1823/*计算数学通过率为100%的学校占样本中学校的比重*/
即数学通过率为100%的学校占样本中学校的比重为2.08%
(3)
.summarizemath4ifmath4==50/*对math4=50的情况进行统计*/
输出:
即有17所学校的通过率为50%
注:
1.Stata中,表达相等这一逻辑关系时,应该用’==’,而不是’=’
2.上述的
(2)和(3)题可以用命令:
.tabulatemath4同样可以输出结果。
(4)
.summarizeread4/*对read4进行统计*/
输出:
根据
(1)数学的通过率为71.91%,根据(4)阅读的通过率为60.06%
相比之下,阅读较难通过
(5)
.correlateread4math4/*求read4,math4的相关系数*/
输出:
math4与read4的相关系数为0.8427。
即阅读的通过率与数学的通过率有较大的相关性。
(6)
.summarizeexppp/*对exppp做统计*/
输出:
exppp的平均值为5194.87,标准差为1091.89
.display1091.89/5194.87
学生的人均支出有较大的变异
(7)
简单的数学计算
命令与输出:
习题4J.M.伍德里奇《计量经济学导论现代观点》C1.4
JTRAIN2.DTA中的数据,来自1976—1977年对低收入男性进行的一项工作培训试验。
参见Lalonde
(1)利用指标变量train确定得到工作培训的男性比例
(2)变量re78是1978年得到的工资,以1982年的千美元度量。
针对得到工作培训的男性样本和未得到工作培训的男性样本,分别计算re78的平均值,二者在经济上的差别大吗?
(3)变量unem78是表示一个男人在1978年是否失业的指标变量,得到工作培训者的失业比例是多少?
没有得到工作培训的失业比例是多少?
评论两者之间的差异
(4)根据
(2),(3)部分,工作培训项目看来有效吗?
如何使得我们的结果更有说服力?
解:
数值的简单分类统计
命令及输出结果如下:
.usejtrain2
(1)
.tabulatetrain/*对train做频数统计*/
输出结果:
即得到工作培训的男性有185,占总人数的比例为41.57%
(2)
按照是否接受培训分组,然后再做统计或者按条件,做统计
方法一
.sorttrain/*根据train的升序,对jtrain2重新排列*/
.bytrain:
summarizere78/*按照train分组后,对re78做统计*/
输出结果:
方法二
.summarizere78iftrain==0/*对未接受培训的人作统计*/
输出结果:
.summarizere78iftrain!
=0/*对接受培训的人作统计*/
即得到工作培训的人均工资为6.35,而未得到培训的人员的人均工资为4.55(单位为千美元)
可以看出,接受培训与未接受培训的差别较大
(3)
方法一:
.sorttrain/*根据train的升序,对unem78重新排列*/
.bytrain:
tabulateunem78/*按照train分组,对unem78作频数统计*/
输出结果:
方法二:
.tabulateunem78iftrain==0
输出结果:
.tabulateunem78iftrain!
=0
输出结果:
得到工作培训但失业的比例为24.31%,未得到工作培训并且失业的比例为35.38%
即工作培训的作用是使得失业率下降了9%
(4)
.tabi16892\14045,chi2lrchi2expected/*对unem78和train两个变量作独立性检验*/
输出:
得到的Pearson的卡方统计量为6.2054,P值为0.013
可以看出工作培训给失业率有较大的影响(不要问我为什么……)
习题5J.M.伍德里奇《计量经济学导论现代观点》例2.3
首席执行官与股本回报率数据集为CEOSAL1.dta
(1)给出股本回报率与CEO工资的最大值,最小值,均值
(2)给出股本回报率与CEO工资间的关系
(3)计算当股本回报率等于0%和30%的时候,CEO的估计工资水平。
(4)给出前15位CEO的工资估计值与残差
(5)给出ln(salary)与ln(sales)之间的关系,并求出薪水对销售额的弹性估计值
解:
命令及结果输出如下:
.useCEOSAL1
(1)
.summarizesalaryroe/*对salary和roe作简单的统计*/
输出结果:
股本回报率的最大值,最小值均值分别为:
56.2%,0.5%,17.18%
工资的最大值,最小值,均值分别为:
14822,223,1281.12
(2)
.regresssalaryroe/*以salary作为因变量,roe作为自变量作回归*/
输出结果:
根据上面的截图中的结果可以给出salary和roe的线性方程中的相关参数,其中的截距为963.19,相关系数为18.50,R^2=0.0132,这并不是一个很好的估计
(3)
.display_b[roe]*0+_b[_cons]/*股本回报率为0的时候,CEO的估计工资*/
.display_b[roe]*30+_b[_cons]/*股本回报率为30的时候,CEO的估计工资*/
(4)
.predictsalhat,xb/*根据
(2)中的回归,给出所有CEO的工资估计值,并命名为salhat*/
.predictuhat,res/*根据
(2)中的回归,给出所有CEO工资估计的残差,并命名为uhat*/
残差的另一种获得方法:
.generateuhat2=salary-salhat/*根据给出的salhat和salary计算残差,命名为uhat2*/
可以给uhat2叫一个标签说明:
.labelvariableuhat2“residualobtainedfromthecommandgenerate”
上述给出的结果都是数据,所以没有截图。
.listroesalarysalhatuhatuhat2in1/15
/*列出前15位的股本回报率,实际工资,估计工资,残差*/
输出结果:
(5)
.regresslsalarylsales
输出结果:
根据上面的结果,可以看到lsalary与lsales的相关系数为0.2566,故薪水对销售额的弹性估计值为0.2566,即销售额每变动1%,工资将变动0.2566*1%
习题6J.M.伍德里奇《计量经济学导论现代观点》例2.4与例2.7
工资与教育程度数据集为:
wage1
(1)给出工资与教育程度之间的回归方程
(2)当教育程度为0和8时,给出工资的估计值
(3)给出增加四年教育程度,工资的平均增长值
(4)给出工资和教育程度的均值;并证明当教育程度取得均值时,工资也取得均值。
(5)给出工资的自然对数与教育程度之间的回归方程,求出“增加一年教育的回报率”
解:
命令及结果输出如下:
.usewage1
(1)
.regresswageeduc/*以wage作因变量,educ为自变量作回归*/
输出结果:
根据上面的截图中的结果可以给出wage和educ的线性方程中的相关参数,
其中的截距为-0.9049,相关系数为0.5414
(2),(3)与习题5的(3)题完全相同
命令及输出结果:
(4)
.summarizewageeduc/*给出wage和educ的均值等*/
输出结果:
.display_b[educ]*12.56274+_b[_cons]/*计算当教育水平取均值时,工资水平是否取均值*/
(5)
.regresslwageeduc
输出结果:
由截图中的结果,可知当教育每增加一年,工资水平平均增长8.27%
(四)总结
1.通过练习,熟练运用Stata中简单的数理统计函数及命令。
Stata中的命令都可以简化使用,如summarize就可以简化为su,tabulate可以简化为ta等等。
在刚开始学习的时候,建议熟悉这些函数之后再采用其简化形式。
2.结合计量经济学知识,能够对输出结果进行分析。
(张其才整理)