Stata上机实验
Stata 统计软件包是目前世界上最著名的统计软件之一,国外将Stata与SAS、SPSS 一起被并称为三大权威软件。它同时具有数据管理软件、统计分析软件、绘图软件、矩阵计算软件和程序语言的特点,几乎可以完成全部复杂的统计分析工作。
Stata有什么优势?
1。Stata 的命令语句极为简洁明快,易学易记。
2。强大的帮助信息。
本地帮助 Help 命令名
在线帮助Findit 命令名
3。始终处于计量经济学和统计学的最前沿。许多Stata 程序员会针对计量经济学发展编写一些最新的程序(ADO 文件), Stata提供了严谨、简练而灵活的程序语句,用户可以编写自己的命令和函数,同时可随时到Stata 网站寻找并下载最新的升级文件。下载后可以直接使用,也可以自行修改、添加功能。(例如当前流行的面板单位根和面板门限数据,均可以安装下载使用)
不同版本对样本容量、变量个数、矩阵阶数、宏的字符长度等有着不同的限制。以SE版为例,其最大变量个数为32767,最大字符长度为244字节,最大矩阵阶数为11000(即11000 11000)。Stata默认值为:最大变量个数为5000,最大矩阵阶数为400,最大内存为10兆。如果用户需要更多的内存或者更多的变量,可以在命令栏输入如下命令进行扩展。
set maxvar 5000 <最大变量个数5000个。>
set memory 50m <占内存50兆。>
最重要的有三类文件
1。文件名.dta 数据文件
2。文件名.do 命令文件
3。文件名.ado 程序文件
如果不加改变,安装时Stata会将系统程序安装到:
C:\Program file\stata10 中。
将所用系统自带的一些系统数据、应用程序、帮助文件安装到
C:\Program file\stata10\ado\base 中
将所有升级程序安装到:
C:\Program file\stata10\ado\update 中
1。所有的系统自带数据可以利用sysuse命令打开。
2。Use命令只能打开 C:\data 或者 D:\data
中的数据。
3。如果需要打开其他文件夹的数据,必须改变目录(例如,将自己的数据放入D:\abc)
cd "D:\abc”
或者直接 file------open
特别注意:1。Stata的命令区分大小写。
2。大部分命令可以缩写。
use 打开数据文件,一般加clear选型清空内存中现有数据。
sysuse 打开系统数据文件。
describe 描述数据
edit 利用数据编辑器进行数据编辑
list 类似于edit,但只能显示不能修改数据。
display 显示计算结果。经常写为: di
summarize 求某个变量的观察值个数、平均值、标准差、最小值和最大值。经常写为:sum
scatter 生成两个变量的散点图。
set obs 定义样本个数(使用前一定要用drop或者clear命令清空)
generate 建立新变量并赋值。经常写为gen
举例:画出Y=X2的曲线图
drop _all (drop data from memory)
set obs 100 (make 100 observations)
gen x = _n (x = 1, 2, 3, .., 100)
gen y = x^2 (y = 2, 4, 9, .., 10000)
scatter y x (make a graph)
stata命令格式
[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options]
1。Command 命令动词,经常用缩写。
2。varlist 表示一个变量或者多个变量,多个变量之间用空格隔开。如 sum price weight
3。 by varlist 分类信息按照某一变量的不同特性分类
4。 =exp 赋值及运算
5。 if exp 挑选满足条件的数据
6。 in range 对数据进行范围筛选
7。 Weight 给数据赋一个权重
8。 , options 命令增加一些可选信息
Stata数据处理
1。Stata的数据格式为文件名.dta
2。对于系统自带数据文件,任何情况下可以用 sysuse 命令打开。
3。对于C:\data(或者D:\data)下的文件,可以使用use命令打开。
4。放在其他目录的文件可以利用设置目录或者“打开”菜单打开。
Stata数据类型
数值型:用0、1、2…9 及+、–(正负号)与小数点和( )来表示。
字符型:字符串变量由字母数字或一些特殊的符号组成(如地名、住址,职
业等等)。
注意:数字不表示大小信息,如电话、身份证号等。字符型数据必须要加“”。
日期型:在Stata中,1960 年1 月1 日被认为是第0 天,因此1959 年12 月31 日为第-1天,表示形式为:jan/10/2001或者10jan2001。
数据导入
1。直接录入。
利用data editor
2。在Excel或者记事本文件编辑好后导入。
直接粘贴
3。Import导入
除了csv格式,还可以导入txt格式和raw格式。
添加标签
1。为整个数据添加标签:例如,将数据命名为“工资表”。
菜单:Data->Labels->Label dataset
命令:label data “工资表“
2。为变量增加标签,例如,给变量wage增加标签“年工资总额”
菜单:Data->Labels->Label variables
命令 label variable wage “年工资总额"
3.为变量值增加标签
例如:为变量marrid添加数值标签marry:1=married; 0=Unmarried 菜单:Data->Labels->Label values->Define or modify label values Data->Labels->Label values->Assign label values to variable
命令:
. label define marry 1 “married” 0 “unmarried"
. label values married marry
Stata作图
STATA 提供各种曲线类型,包括点(scatter)、线(line)、面(area),直方图(histogram)、
条形图(bar)、饼图(pie)、函数曲线(function)以及矩阵图(matrix)等。
同时,对时间序列数据有以ts 开头的一系列特殊命令,如tsline。还有一类是对双变量的回归拟合图(lfit、qfit 、lowess)等。
小样本OLS
小样本OLS假设条件较为严格
假设1: 二者之间存在线性关系
y = a0 + a1*x1 + a2*x2 + ... + ak*xk +ε
y = Xb +ε
假设2: X 是满秩的,i.e. rank(X) = k
假设3: 干扰项的条件期望为零(严格外生性)
* E[ε| X] = 0
通过上课的学习我们得到:
1?(')'-=βX X X y
习惯上我们用
y_hat = X*b /* 被解释变量的拟合值*/
e = y - y_hat = y - Xb /* 残差 */
建立回归方程
打开系统文件auto ,建立如下方程:
sysuse auto,clear
regress price mpg weight foreign
Regress 命令详解:
regress depvar [indepvars] [if] [in] [weight] [, options]
1。要求方程省略常数项(自己设置常数项)
reg price mpg weight foreign, nocons(hascons)
2。稳健性估计(一般用于大样本OLS )
reg price mpg weight foreign, vce(robust)
或者:reg price mpg weight foreign, r
3。设置置信区间(默认95%)
reg price mpg weight foreign, level(99)
4。标准化系数
reg price mpg weight foreign, beta
5。部分数据回归
reg price mpg weight length foreign in 1/30
(为什么foreign 被drop 掉?)
reg price mpg weight length if foreign==0
回归结果解读
系数/标准误差= t 值
P 值 系数=0的概率为 p 值
在5%的水准上显著不为0
否则和0的差异不显著
95%下限=估计值-t 值*标准误差
95%下限=估计值+t 值*标准误差
置信区间:
系数在95%的概率下会落在---之间
跨越0,则与0不显著
模型常用的其他形式:
对数 平方项 n 次方 指数 交乘项
虽然对函数形式的选择有检验方法,但最好还是从“经济意义”角度确定。
回归后预测值的获得
Predict
1。拟合值的获得:
predict yhat, xb 或者 predict yhat
2。残差的获得
predict e , residuals 或者 predict e, res
回归的假设检验
Test命令
例一 sysuse auto, clear
reg price mpg weight length
1。检验参数的联合显著性
2。分别检验各参数的显著性
3。三个参数对被解释变量的影响相同
例二: use wage2, clear
reg lnwage educ tenure exper expersq
1。教育(educ)和工作时间(tenure)对工资的影响相同。
test educ=tenure
2。工龄(exper)对工资没有影响
test exper 或者 test exper =0
3。检验 educ和 tenure的联合显著性
test educ tenure 或者 test (educ=0) (tenure=0)
例三:生产函数production
use production,clear
reg lny lnl lnk
test lnl lnk
test (lnl=0.8) (lnk=0.2)
test lnk+lnl=1
非线性检验:testnl
例一 .
sysuse auto
gen weight2 = weight^2
reg price mpg trunk length weight weight2 foreign
testnl _b[mpg] = 1/_b[weight]
testnl (_b[mpg] = 1/_b[weight]) (_b[trunk] = 1/_b[length])
例二:打开production
reg lny lnl lnk
testnl _b[lnl] * _b[lnk] = 0.25
testnl _b[lnl] * _b[lnk] = 0.5
大样本OLS
大样本OLS经常采用稳健标准差估计(robust)
稳健标准差是指其标准差对于模型中可能存在的异方差或自相关问题不敏感,基于稳健标准差计算的稳健t统计量仍然渐进分布t分布。因此,在Stata 中利用robust选项可以得到异方差稳健估计量。
约束回归
定义约束条件
constraint define n 条件
约束回归语句
Cnsreg 被解释变量解释变量, constraints(条件编号)
例一:打开production
cons def 1 lnl+lnk = 1
cnsreg lny lnl lnk, c (1)
例二:sysuse auto,clear
cons def 1 price = weight
cons def 2 displacement = weight
cons def 3 gear_ratio = -foreign
cnsreg mpg price weight displacement gear_ratio foreign length, c(1-3)
(本题没有什么经济意义,只是让大家熟悉这种方法)
矩阵运算
1。手动建立矩阵命令:matrix
Matrix input 矩阵变量名=(矩阵)
同一行元素用,分隔
不同行元素用\分割
建立矩阵: 3 6 8
5 11 7
2 18 16
显示矩阵变量
mat dir显示矩阵内容
Mat list 矩阵变量
常用矩阵运算:
C=A+B A-B A*B
Kronecker乘积:C=A#B
常用矩阵函数:
trace(m1) m1的迹
Diag(v1) 向量的对角矩阵
inv(m1) m1的逆矩阵
2。还可以将变量转换为矩阵
mkmat 变量名表,mat(矩阵名)
练习:sysuse auto
reg price mpg weight foreign
要求:利用矩阵运算手动计算出参数
gen cons = 1
mkmat price, mat(y)
mkmat mpg weight foreign cons, mat(X)
mat b = inv(X'*X)*X'*y
mat list b
mat list y
mat list X
我们可以利用矩阵运算的方法将回归结果展现的所有统计量都手动计算出来。
逐步回归法
逐步回归法分为逐步剔除和逐步加入。
逐步剔除又分为逐步剔除(Backward selection)和逐步分层剔除(Backward hierarchical selection)
1。逐步剔除
stepwise, pr(显著性水平): 回归方程
例如:对auto数据
Stepwise,pr(0.05):reg price mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign
2。逐个分层剔除
Stepwise,pr(0.05) hier:reg price mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign
去掉foreign 重新做一遍
逐步加入又分为逐步加入(Forward selection)和逐步分层加入(Forward hierarchical selection)
1。逐步加入
stepwise, pe(显著性水平): 回归方程
例如:对auto数据
Stepwise,pe(0.05):reg price mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign
2。逐个分层加入
Stepwise,pe(0.05) hier:reg price mpg rep78 headroom trunk weight length
turn displacement gear_ratio foreign
残差点的图形表示
rvfplot:残差拟合值图
可以加参数yline(0)
将e 与?y 画在一起
rvpplot x1:残差预测值图
将e 与x1 画在一起
avplot
avplots
lvr2plot
离群样本点与杠杆样本点
离群样本点:残差值较大的样本点
杠杆样本点:与样本整体(X'X)很不相同的少数样本点
离群样本点:
reg price mpg weight foreign
predict e,res
List make price e
杠杆样本点:
reg price mpg weight foreign
predict lev, leverage
lvr2plot
lvr2plot, mlabel(make)
作业1
考察工资方程(数据文件:cps78-85.dta)
Log(wage) = Xb+u
X中包括educ=教育、exper=工龄、exper2=工龄平方、tenure=现有岗位的任期、female=性别(女=1)、y85=85年、y85educ=交叉积、y85fem=交叉积。
1。建立回归模型
2。给出各参数的99%置信区间
3。检验H1:educ、tenure对工资影响相同、H2:教育对收入没有影响4。预测拟合值和残差
5。观测离群值和杠杆值
1. 建议回归模型:
设
Log(wage)=x1educ+x2exper+x3exper2+x4tenure+x5female+x6y85+x7y85educ+x 8y85fem
2.给出各参数的99%的置信区间
Reg Log educ exper exper2 tenure female y85 y85educ y85fem,level(99) 3.检验H1:educ,tenure对工资影响相同
Test educ=tenure
检验H2:test educ
4.预测模拟值:predict yhat
预测残差值:predict e,res
5.观测离群值:
极大似然估计
优点:
1.在所有一致的,渐进正太的估计量中,MLE是渐进最优的。
2.大样本数据,特别是非线性回归的估计具有优势。
缺点:
1.需要假设特定的概率密度形式
2.小样本性质一般。
MLE的基本步骤
1.推导最大似然函数
2.编写似然函数的stata程序(可选:似然函数的一阶和二阶导数d1,d2)
3.设定解释变量和被解释变量:ml model命令
4.估计最大似然函数:ml maximize命令
举一个最简单的多元线性回归的例子:
假设
第六章第二题: 1. 建立完成的教育年数(ED )对到最近大学的距离(Dist )的回归: . reg ed dist, robust 斜率估计值是:-0.073 2. reg ed dist bytest female black hispanic incomehi ownhome dadcoll cue80 stwmfg80,robust Dist 对ED 的效应估计是:-0.032 3. 系数下降50%,存在很大差异,(1)中回归存在遗漏变量偏差 4. di e(r2_a)(可看到调整后的R2) 第一问中=0.0074 调整的2R =0.00718796 _cons 13.95586 .0378112 369.09 0.000 13.88172 14.02999 dist -.0733727 .0134334 -5.46 0.000 -.0997101 -.0470353 ed Coef. Std. Err. t P>|t| [95% Conf. Interval] Robust Root MSE = 1.8074 R-squared = 0.0074 Prob > F = 0.0000 F( 1, 3794) = 29.83 Linear regression Number of obs = 3796 . reg ed dist , robust 2R
第二问中=0.2788 2R = 0.27693235 可以得到第二问中的拟合效果要优于第一问。 第二问中相似的原因:因为n 很大。 5. Dadcoll 父亲有没有念过大学: 系数为正(0.6961324)衡量父亲念过大学的学生接受的教育年数平均比其父亲没有年过大学的学生多。 .0232052 -.0517777 1)原因:这些参数在一定程度上构成了上大学的机会成本。 2)它们的系数估计值的符号应该如此。当Stwmfg80增加时,放弃的工资增加,所以大学入学率降低了;因而Stwmfg80的系数对应为负。 而当Cue80增加时,人们会发现找工作很困难,这降低上大学的机会成本,所以平均的大学入学率就会增加;因而Cue80的系数对应为正。 7.带入计算即可(14.75) 8.同7.(14.69) 第七章第二题 1. . reg course_eval beauty,robust 95%置信区间见上表。 2. 2R _cons 3.998272 .0253493 157.73 0.000 3.948458 4.048087 beauty .1330014 .0323189 4.12 0.000 .0694908 .1965121 course_eval Coef. Std. Err. t P>|t| [95% Conf. Interval] Robust Root MSE = .54545 R-squared = 0.0357 Prob > F = 0.0000 F( 1, 461) = 16.94 Linear regression Number of obs = 463
实验指导书 武汉理工大学政治与行政学院 2013年4月
实验一STATA基本介绍 实验目的 掌握什么是STATA?该软件具有什么功能?熟悉STATA菜单各项的含义,数据输入、存储以及数据运算与处理等。 实验内容 1.什么是STATA 2.STATA的菜单 3.数据输入与保存 4、数据文件的合并与汇总 5.数据编辑整理 6.变量重新赋值 7.数据的运算与新变量的生成 8.数据的排序 9.数据分组 基本步骤 当打开STATA后,展现在我们面前的界面如下: 菜单栏共有11个选项,常用的有以下8个选项: 1.文件:文件管理菜单,有关文件的调入、存储、显示和打印等; 2.编辑:编辑菜单,有关文本内容的选择、拷贝、剪贴、寻找和替换等; 3.显示:显示菜单,有关状况栏、工具条、网格线是否显示,以及数据显示的字体类型、大小等设置; 4.数据:数据管理菜单,有关数据变量定义、数据格式选定、观察对象的选择、排序、加权、数据文件的转换、连接、汇总等; 5.转换:数据转换处理菜单,有关数值的计算、重新赋值、缺失值替代等;
6.分析:统计菜单,有关一系列统计方法的应用; 7.图形:作图菜单,有关统计图的制作; 8.使用程序:用户选项菜单,有关命令解释、字体选择、文件信息、定义输出标题、窗口设计等; 实验报告 自己草拟10名学生的序号、姓名、统计学成绩、管理学成绩、每天学习时间特征资料。(以自己的姓名作为第一号,并以自己的名字设为文件名)要求: (1)添加性别数据特征; 粘贴处 (2)按统计学成绩由高到低排序; 粘贴处
(3)按统计学成绩数量标志进行等距分组,并进行汇总统计。 粘贴处 (4)计算生成统计学与管理学两科的总成绩与平均成绩两个变量。 粘贴处
Stata上机实验 Stata 统计软件包是目前世界上最著名的统计软件之一,国外将Stata与SAS、SPSS 一起被并称为三大权威软件。它同时具有数据管理软件、统计分析软件、绘图软件、矩阵计算软件和程序语言的特点,几乎可以完成全部复杂的统计分析工作。 Stata有什么优势? 1。Stata 的命令语句极为简洁明快,易学易记。 2。强大的帮助信息。 本地帮助 Help 命令名 在线帮助Findit 命令名 3。始终处于计量经济学和统计学的最前沿。许多Stata 程序员会针对计量经济学发展编写一些最新的程序(ADO 文件), Stata提供了严谨、简练而灵活的程序语句,用户可以编写自己的命令和函数,同时可随时到Stata 网站寻找并下载最新的升级文件。下载后可以直接使用,也可以自行修改、添加功能。(例如当前流行的面板单位根和面板门限数据,均可以安装下载使用) 不同版本对样本容量、变量个数、矩阵阶数、宏的字符长度等有着不同的限制。以SE版为例,其最大变量个数为32767,最大字符长度为244字节,最大矩阵阶数为11000(即11000 11000)。Stata默认值为:最大变量个数为5000,最大矩阵阶数为400,最大内存为10兆。如果用户需要更多的内存或者更多的变量,可以在命令栏输入如下命令进行扩展。 set maxvar 5000 <最大变量个数5000个。> set memory 50m <占内存50兆。> 最重要的有三类文件 1。文件名.dta 数据文件 2。文件名.do 命令文件 3。文件名.ado 程序文件 如果不加改变,安装时Stata会将系统程序安装到: C:\Program file\stata10 中。 将所用系统自带的一些系统数据、应用程序、帮助文件安装到 C:\Program file\stata10\ado\base 中 将所有升级程序安装到: C:\Program file\stata10\ado\update 中 1。所有的系统自带数据可以利用sysuse命令打开。 2。Use命令只能打开 C:\data 或者 D:\data 中的数据。 3。如果需要打开其他文件夹的数据,必须改变目录(例如,将自己的数据放入D:\abc) cd "D:\abc” 或者直接 file------open 特别注意:1。Stata的命令区分大小写。
计量经济学上机命令整理 实验一 edit 打开数据编辑器 browse 打开数据浏览器 rename 对变量重新命名 label save describe 对数据集简要描述 sort 排序例如:list in -10/-1 list 显示变量的数值 Generate 缩小:gen 生成新的变量后面可以接if条件句 Replace 替换append 覆盖 Summarize 缩写:su 总结后面可以接if条件句 实验二 twoway (scatter y x)(connected ey_x x) 在该散点图上,做出条件均值点 sc y x||lfit y x 画出线图和散点图 Reg y x 做出回归 Rename ** y **指原变量名用于修改变量名字 graph twoway scatter y x 画出y x 的二维散点图 Line y x 做出y x 的线条图 egen Ey_x=mean(y),by(x) 求在同一x水平下,求y的均值 实验三 Regress y x1 x2 ........做多元回归 Precict e,re 预测方差 Sort e 按照方差排序 Cor y x 测试y与x的相关程度 Pwcorr y x 也是测试y与x的相关程度 Set obs 90 (90为任意一个数字),增加一个或者多个样本值 Replace x=980 in 90 为第90个样本值赋值(980为任意一个数字) Predict yhat 预测y的估计值 Display invttail(n,p) n为自由度;p为概率(一般为0.025)。用来求t分布的t 值 Display ttail(n,t)知道t值求T