设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1719|回复: 0

Stata 常用命令集

[复制链接]

30

主题

333

金钱

471

积分

入门用户

发表于 2019-3-28 16:30:15 | 显示全部楼层 |阅读模式
(1) Stata 要在使用中熟练的,大家应该多加练习。 w_w_w__._p_om__i_ne__._co_m
(2) Stata 的很多细节,这里不会涉及,只是选取相对重要的部分加以解释_

界面

当我们把 Stata 装好以后, 首先需要了解的是它的界面。打开 Stata 后我们便可以看到它常用的四
个窗口:Stata Results; Review; Variables; Stata Command。我们所有的运行结果都会在Stata
Results 界面中显示;而命令的输入则在 Stata Command 窗口;Review 窗口记录我们使用过的命
令; 最后 Variables 窗口显示存在于当前数据库中的所有变量的名称。 可以直接点击 Review 窗口
来重新输入已使用过的命令, 我们所需变量可以通过点击 Varaibles 窗口来得到, 这些都可以简便
我们的操作。
w_w_w__._po_mine.__c_om
Stata 命令 w_w__w.__p__om_i_n_e__.c_o__m
ww_w.__p_om__i_n_e_._c_om_
Stata 软件功能强大,体现在它提供了丰富的命令,可以实现许多功能。每一个 Stata 命令都相应
的命令格式。我们在这里介绍常用的一些命令的功能和相应的格式, 大家在使用 Stata 的过程中会
不断积累命令的相关知识。
w_ww_.__p__o_mi_n_e__.c__om__
需要对命令的帮助时可以用 help 命令查询。例如了解命令: “reg” ,就可以在 Stata Command
窗口输入 “help reg” ,也可以在 Help 选项下content 中查找我们需要的相关命令。用 help
查询,则窗口会显示关于该命令的详尽说明。更直接的办法是看 Examples 中的范例是如何使用该
命令,阅读一些相关的说明并加以模仿。w_w__w.__pom_in_e.co__m
w_w_w_._p_o__m_i_n_e_._c__o__m_
重要习惯 _p__om_ine__.co__m_
w_w_w_.__p_omi_ne__._c__o_m
我们使用 Stata 进行回归分析时,需要养成一些好的习惯。在进行一些数据量很大,过程复杂的分
析时尤其重要。 w_w_w__._po_m__in__e__.c_o_m_
w_w_w__.p_om_i_n__e__.com_
(1)使用日志(log)。它可以帮助我们记录stata 的运行结果。
w__ww_._p_o_m__i_ne__._c_o__m_
格式:log using c:\stata8\logfiles\10.21.5_30.log
(注意:我们需要先建好文件夹c:\stata8\logfiles )
关闭log 的命令为“log close”。
ww_w__.__po__m__i_ne_._c__o__m_
格式: log closew_w_w_.__p__o_mi_n_e_._com
w_ww.po__m__i__ne_._co_m
那么“10.21.5_30.log”文件就记录了从“log using”命令 到“log close”命令之间 stata 运行
的所有结果。 ww_w.p__om_i__n__e_.__c_o_m
w__w_w__.p_o_min__e.c_o_m_
(2)Do-file。在 command 窗口输入命令的方式很受限制,我们使用工具栏中“Do-file-editor”
(第 8 个)在 Do-file 中编程。直接的好处便是我们可以很方便的执行以前写过的命令,并记录我
们需要的命令,方便下一次的使用和分析。在复杂的分析中,采用 Command 窗口输入的方式会是非
常的困难,我们必须用 do-file 去编程。w_ww.pom__in_e__._c_o_m_
w_w__w.p_o__m_ine_.c__o_m
在 do-file 文件中,用*表示注释内容,Stata 在运行do-file 时会跳过这些注释语句。加入注释
语句能增强 do-file 的可读性。 我们应该养成习惯为每一个 do-file 文件写详细的注释内容。 比如
要说明文件名称,回归分析的目的,时间和存放位置。如果过程中生成并保存了数据文件,应写出
相应数据文件的名称等。 如果中途对 do-file 文件进行过修改, 最好将修改过文件保存为另一个文
件,以便于将来对比分析原文件和修改后的文件。 ww_w_._p__om_i_n_e._c_o_m
w_w__w._p_o__mi_n__e_.co_m
格式:
*Wage_analysis.do
*The program is written for the analysis of wage determination.
*Data management: reshape the data to panel.
*This rsult will be saved in the data file: wage1.dta
* written: 10/21/05
ww_w__.__po__m__i_ne__._c_om
在调试 do-file 文件时,可以选择部分命令让Stata 只运行选中部分。
w__w__w.__pom__in__e_._c_o_m
我们可以保存当前使用的 do-file 文件。Review窗口中的命令也可以保存为 do-file。方法是右
键点击 Review 窗口,选择 Save Review Contents。
w__w__w__.po_m_ine_.__c__o__m
(3)存储数据。在分析一个大的数据库时,中途对数据有改动和删减,有必要在分析过程中将数据
进行保存,可以用 File 选项中“save as”,同时要为中途保存的数据文件写一个详尽的说明文件,
此外还可以在 do-file 文件中或 command 窗口中使用命令 “save” 来实现。
ww__w.__p_om_in_e.__co_m_
格式:save c:\stata\datasets\2.dta

打开数据文件 ww__w__._po_m_in_e.c__om
www_.p_om__i_ne._c__o_m_
我们用 Stata 做回归的第一步便是打开一个数据库。我们可以用工具栏“Open”(第 1 个),打开
相应数据文件。也可以使用命令 “use” 。
w_w__w.p_o__mi__ne__.c_om_
格式: use c:\data\datasets\1.dtawww_._p_o_mi_n_e.__c_om_
w_w_w._p_o__m_i__n_e_._com
Stata 有自己的数据格式,我们课上一般会给大家 Stata 格式的数据库。有时候,我们手头的数据
格式不符合 Stata 的格式,就需要用相关软件进行转换,比如transfer,对这个问题感兴趣的同
学可以课后和我们联系。如果我们的数据是 Excel 格式,那么可以直接把里面的数据拷贝粘贴到
Stata 中:只需要点开数据工具栏“Data Editor”(第 9 个),就可以进行粘贴。
ww__w.pom_i_ne_._c_o__m_
打开数据后我们可以用工具栏“Data Browse”(第 10 个)浏览数据。浏览数据可以帮助我们了解
具体每一个数据。要了解数据具有的特征,我们必须借助 Stata 命令。
ww__w.pomi_n__e__._co_m_
了解数据特征 ww_w__.__p__om__ine_.__co_m
ww_w__.p_o_mi_n_e_._c_om_
“describe” 命令可以告诉我们每一个变量的含义。
w_ww__.p_omi_n__e.c__om
格式:describew_ww__.__p_om_i__ne__._c_o_m_
w_ww__.p_o_m_i_n__e.co_m
具体了解每一个变量的特征,我们可以用 tabstat 命令。例如我们可以计算 wage 的均值,方差,
中位数,范围,具体可以用 help tabstata 查询。
www.p_omine_._c_o_m__
格式:ww_w_._p_omi__n_e._com_
tabstat wage, stats(mean)
tabstat wage, stats (sd median range) (注意不要逗号)
w_ww_._po_m__i_ne.__c_o_m_
如果我们想要了解不同教育水平的工资的均值,可以用如下命令:
w_w_w__.pom__i_ne.c__om_
格式: tabstat wage, by (educ)stats(mean)
www_._p_o__mi_n_e__.c_o__m_
此外可以使用 “Sum”,它是命令 “summarize” 的简写。Summarize(Sum)将汇报数据的均值和
方差等信息。

格式: w_ww_._p_o_m_i_ne_.c__om__
summarize wage
sum educ exper
w_w_w__.p__o_m_i_n_e_.__co__m_
需要了解如“中位数”(median),我们可以进一步使用后缀 detail。此时会详细报告百分比所对应
的样本值。
w__ww__._po__m__in_e._c_om
格式:sum wage educ, detail
w_ww.p_om_i_n__e_.__c_o_m_
此外 Stata 还提供了别的命令帮助我们了解数据,如 “codebook” 命令,它与带 detail 后缀的
“sum” 命令相似。 “table”,它将报告数据取值和相应的频率。 “tabulate” (或简写为 ta)
是一个很有用的命令。与 table 相比,ta 将进一步报告数据分布的百分比。
ww__w._p_omine.co_m
格式:
codebook wage educ
table wage
ta educ
w_ww_.p_o__mi__ne.__c_o_m_
利用“by”命令,我们可以了解数据更细致的特征。例如我们想知道受不同教育的人群中工资的分
布。
ww__w_.p_om__i__n_e.c_om
格式:
sort educ(这一步不可缺,一定需要先排序)
by educ: table wage_ww._pomi_n_e.c_o_m_
by educ: tabulate wagew_w_w.__po__m_i_n_e.c_o__m_
m
画图http://ww_w_.p__o_m_i_n_e__.com
很多时候,画图能够直观地看到数据分布和它们之间关系。 比如我们可以 “histogram” 命令画出
数据分布的柱状图(histogram)。
w__w__w__._p_o_m__i_n_e__.__c__om_
格式: www_.p_o_mi_ne_._c_o_m_
histogram wagew_ww__._p_om_i__n_e._co_m__
w_w__w_.p_om_i__n__e_._c_om_
“scatter”命令可以画出两个变量之间的分布关系。例如我们想直观的看到教育水平变化时工资的
变化,可以用 “scatter” 命令或者 “graph twoway scatter” 命令。
格式:ww__w._p__o__min_e_.__co__m_
scatter wage educ__w__w_.p__om__i_ne._c_om__
graph twoway scatter wage educw_w_w__.po__mi_n_e_._c_om
ww_w._po__m__i_n__e_.c__o_m_
“graph twoway”命令可以带别的后缀,例如“graph twoway line” 则画的是线状图。
w_ww_.p_o__mi_n__e_.__c__o__m_
w__w__w__.__pomin_e_._com__
格式:www_.pomi_n_e._c__o__m_
graph twoway line wage educ
w_w__w.__pom_in_e__.__co_m_
“graph”命令还有很多别的功能。例如使用“graph matrix”可以了解更多的变量之间的关系。
“graph bar (mean) y, over(x)”就可以了解 y的平均值关于 x 分布的柱状图。w_w_w_.p_o_m__i_ne_._c__o_m
ww_w._po_m__i_n__e._c_o_m__
格式:w__w_w_.__p_o__m_in_e__.c_om__
graph matrix wage educ
graph matrix wage educ exper
graph bar (mean) wage, over (educ)
w_w_w.__p_om_i_n_e__.__c_om
右键点击 graph 窗口可以将图片进行保存和复制。
w_w_w_._po_m_i__ne._c_om
变量 w__ww_.p_om__in__e._c__o__m_
w__w_w__.p__o_m__i__n__e_.co__m_
在分析的过程中,有些变量并没有在数据中提供,需要我们用原始数据或者回归的结果构造。常用
的命令是 “gen” 和 “egen” 。
w__ww_.__po__m_ine_.__c_om__
格式 w_w_w.__p_om_i__n__e._c__o_m
gen educsqr=educ^2w_ww__._p__omi_ne_.co__m_
w_w_w_.__p_omine.__c_om
egen 命令相对复杂一些,它能生成一些“gen”命令无法生成的变量。例如可以生成wagesum 为每
个人的工资和,以及生成 wagemedian 为工资的中位数(median),wagemax 为工资的最大值。
w_ww_.po_m__i_n_e.c_om
ww_w._p_o_min_e._c_o_m_
格式:w_ww._p_omi_n_e._c_om_
egen wagesum=sum(wage)w_w__w.__p__o__m_i__ne_._co_m__
egen wagemedian=median(wage)ww
egen wagemax=max(wage)w_w_w__.__p_o_m__i__n_e.com__
w_ww_.__po__mi__n_e__.c_o__m__
更复杂的如想产生一个变量“wagemax”为相同教育水平里的最高工资。
ww__w_.po__mi_n_e_.c_om__
格式: egen wagemaxeduc=max (wage),by (educ)
w_ww_._pom_ine.c__o_m
如果我们需要替换某一变量,我们可以用的命令是“replace”。
w_w_w__._p_omi_n__e_.c_o__m__
格式:w__w_w__._pomi__ne_.c__o__m
replace wagemax=wageww__w._p_o_m_i_ne__.__c__om__
replace wagemax=1_w_w_._p__o__mi_n_e.__c_o_m
w_ww__._po__m__in_e_._c_om__
有时候我们在生成变量时可以加上一定条件,例如如果一个样本工资超过 3,我们就定义它的变量
wagehigh 的取值为 1,否则为 0。
w__ww__._po_mi_ne__.__c_o_m__
格式:w_w_w._p__o__m_i_n__e_._co_m__
gen wagehigh=1 if wage>=10w_w_w_._po_m_i_n_e_.__c__om__
replace wagehigh=0 if wagehigh ==.(注意是两个等号)
ww_w_.p_o_m__in__e_.co_m
我们也需要去掉过程中的暂用的变量,以方便我们浏览数据和重新定义变量。我们可以用 drop命
令。 ww_w_.__po_mi_ne__.c_om_
w__w_w__.pomi_n_e_._co_m
格式: drop educsqr wagesum wagemedian wagemax wagemaxeduc wagehigh
w__w__w.p__o__mi_n_e.c__o_m__
我们可以用“keep”或“drop”命令来删除一些样本,在删除之前,我们需要了解删除带来的影响,
则可以用“count”命令来了解样本取值的情况。
w_w_w.pomin__e_.__co__m
格式:
count if wage<100
count if wage<10
w_ww_._p__o_m_i_ne.__c_o_m_
我们可以用“sort”和“list”命令来了解数据分布的细节。例如我们想知道工资值从小到大排列
在第 50 到 70 的样本的工资值。
w_w__w_.p_o_m_i_n_e__._co_m_
格式:ww_w_._p_o__mine.__c_om_
sort wagew__ww.__p_om__i__ne.c_o_
list wage in 50/70w_w__w_.p_o_m_i_n_e_._c__o__m
w_ww__._po_m_i_n_e__._com
如果我们想保留工资小于 100 的样本,可以有两种命令。
w_ww__._p_o_m__i__n_e_._c__om_
格式:w_w_w.p_o_m__i__n_e_.__c_o_m_
keep if wage<100w_w_w_._p__o_mi_ne__._c__o__m__
drop if wage>=100 w__w__w_.po__mi_n__e.__c__o__m_
w_w__w__._po_m_i_n__e.c__o__m
有时我们关心变量之间的相关性,可以使用“correlate”命令,它将报告变量之间的相关系数。
w__w_w_._p_o__m__i_n__e.com__
格式: ww__w_._p_o__m__i_n__e_.__c__o_m_
correlate wage educ exper tenure
w_w_w_.p_o_min_e_._c__o_m_
回归 _m_
ww__w_.p__o__mi__ne__._co__m
现在我们以进入最重要的环节:回归分析。
进行 OLS 回归的命令为“reg”。
w_w_w._po_m_i__n__e.__c_o__m
格式: reg wage educ
w_w_w__._po_mi_ne_.co_m
Stata Results 窗口将报告这一回归的相关结果:
w__w__w__.__p__o__m__in__e.__c__o_m_
. reg wage educ

表格中最后两行报告回归的斜率和截距的系数,相应的标准差、t 值和 P 值,同时给出 95%的置信区
间。在表格左上方,报告了回归的总变异、解释变异和残差变异。表格右上方报告回归的 R 方和调
整后的 R 方。其中 F 是自变量所有的系数都为0(即自变量完全没有解释力)这样一个零假设对应
的 F 分布值。
w__w_w__.p_o_m__i_ne__._co_m
回归会产生很多我们感兴趣的值,例如回归的拟合值以及回归的残差。Stata提供了 predict 命
令帮助我们存储这些变量。例如我们把拟合值定义为 wagehat,残差定义为 wageresid。
ww_w__._p_o__m__in_e._c_om_
格式:ww_w__._p_o_mi__n_e_.c_om__
predict wagehat_ww_.p_o_m__ine.co_m
predict wageresid, rew_w_w__._p__o_mi_n__e_.__co_m
w__w_w_.p__o_min__e.c__o__m__
我们常常需要检验某一个零假设,例如在我们作了如下回归
w_w__w_._p_o_m_i_ne.__c__o_m_
格式: reg wage educ exper tenure nonwhite female
w__w__w__._p_om__ine_._co_m__
之后,我们想要知道 nonwhite 的系数是否显著,我们可以直接看回归结果报告, 也可以用test 命
令。 w__w_w__._p_o_mi_n__e__._c_o_m_
ww__w._pomi_n_e_.__c_om__
格式: test nonwhiteww__w_._p_o__mine_.__c__om
test 命令报告的结果为 F 值。而回归结果报告的为 t 值。它们之间是平方关系,而 p 值是一样
的。对于更复杂的零假设,比如 nonwhite和female 是否同时为 0。exper 的系数和tenure 的
系数是否相等,则只能借助“test”命令。
w_ww._p_om_i_n_e__._co_m_
格式:w__w_w_.p_om__ine_.__c__o_m_
test nonwhite femalew_ww.__p__o_m_i_ne__._c_o__m_
test exper=tenurew_w_.__p_om__ine.c_om_
www_._p__o_m_i_n__e_.__c_o_m__
报告回归结果_
www_._pomi__n__e_.__co__m
一般需要报告回归系数和相应的残差,同时报告系数的显著性。此外根据需要往往还要报告回归的
拟合优度和使用的样本个数。对于回归系数的符号和大小变化,要给出相应的分析和解释。许多时
候还会把检验的结果附在表格中。
www__.p__o_min_e_.__c_o_m
下面是一个报告回归结果的表格(摘自经济学论文)。其中括号里报告的是系数的方差, All Women
和Married Women 表示两个总体,(1)(2)(3)对应不同的模型设定。 w__w_w_._pom_in__e.__co_m
ww_w._p__om__i_n_e._c__om
计算器w__w__w._po_m_i_ne_.co_m
Stata 可以充当计算器用,使用 “display” 命令:ww_w_._po_m_i__n_e._c_om_
w__w__w_._p_o_m__i_n_e.c_o_m_
格式: display sqrt(5)*sin(0.5)w_w_w__._pomi__ne__.c__o__m
w__w__w.p__o_mi_n_e__._c_o__m_
关于 Stata 的数学函数的命令格式,可以查询help function。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表