收藏 分销(赏)

Estimation with STATA 学习笔记整理教程.pdf

上传人:曲**** 文档编号:517095 上传时间:2023-10-30 格式:PDF 页数:273 大小:19.19MB
下载 相关 举报
Estimation with STATA 学习笔记整理教程.pdf_第1页
第1页 / 共273页
Estimation with STATA 学习笔记整理教程.pdf_第2页
第2页 / 共273页
点击查看更多>>
资源描述
Estimation with 8TMA连玉君i西安交通大学金禾经济研究中心 a r li o n st u.x jt u.e du.c n2006.041这是我在平时学习过程中整理的笔记。非常感谢我的导师钟经樊先生带我走进计量经济学的多彩世 界,并介绍给我一非常难得的朋友-STATA。同时,也要感谢金禾中心的程建博士在囱晓软件的使用 方面给与的帮助。如果发现笔记中有任何错误和不妥之处,或是对我还没有想出来的问题有任何解决的 建议,烦请发邮件给我,或登陆金禾中心BBS计量版进行讨论,地址为h t t p:/ji n h e.x jt u.edu.c n/bbs。目录第二章STATA简介 32.1 安装和基本设定.32.1.1 窗口设定.32.1.2 字体设定.3 2.2基本操作.32.2.1 执行命令.32.2.2 管理输出结果.42.2.3 获得帮助.52.3.1 变量名称.52.3.2 数值变量和文字变量.62.3.3 缺漏值.6 2.4 数据处理 62.5 回归分析.62.5.1 简介.62.5.2 管理输出结果.6 2.6假设检验.82.6.1 Wa ld 检验.8 2.7面板相关的处理技巧.92.8 矩阵.122.8.1 取出矩阵的行名和列名.122.9 绘图.122.9.1 二维图基础.122.9.2 二维图选项.12 2.10 矛_ 木目 132.10.1 程序的基本结构.131目录22.10.2 暂元.132.10.3 基本控制语句.142.10.4 输入项的设定.152.10.5 返回值.192.10.6 子程序.202.10.7 结果的输出.202.10.8 读写文件.212.11 部分命令解释.212.11.1 eg en 命令.212.11.2 c o n f i r m 命令.212.11.3 程序的调试.222.12 模拟分析.232.12.1 基础知识.232.12.2 MC.252.12.3 BS.252.12.4 相关命令.25第二章STATA简介2.1 安装和基本设定建议安装路径为:D:st a t a 8 0这是因为我们通常会将数据和程序存储于安装目录下,如果 安装c盘,一旦计算机出现意外故障,很可能导致我们存储在上面的数据无法恢复。然后在此文件夹下建立D:st a t a 8a do pe r so n a l子文件夹,以便存储个人的资料。这一点很 重要,因为随后我们需要从网上下载资料时,STATA会自动在per so n a l文件夹下建立一个名为 plu s的文件夹以便分类存储各种下载的a do文件。可以在D:st a t a 8a do per so n a l子文件夹中建立一个名为pr o f i le,do的文件,包含如下内容:lo g u si n g d:s t a t a 8a do pe r s o n a ls t a t a.lo g,t e x t r e pla c ec mdlo g u si n g d:s t a t a 8a do pe r s o n a lc o mma n d.lo g,a ppen ds ys di r s e t PLUS D:s t a t a 8a do plu s”s ys di r s e t OLDPLACE D:s t a t a 8da t a s ys di r s e t PERSONAL D:s t a t a 8a do pe r s o n a l2.1.1 窗口设定根据个人喜好设定完四个窗口的相对位置后,可以点击菜单上的Pr e f s按钮,然后点击下 拉菜单中的Sa v e Wi n do wi n g Pr ef er en c e s即可。在窗口位置发生改变,希望回到以前的设定状态 时,可以点击下拉菜单中的Lo a d Wi n do wi n g Pr ef er en c e s即可恢复到最近一次保存的设定状态。2.1.2 字体设定STATA的四个界面窗口和do文件编辑器中的字体都可以调整,方法为:右击相应的区 域,然后选择“Fo n t”即可。2.2基本操作2.2.1 执行命令STATA的指令可以通过三种方式执行:窗口方式、命令方式和do文件方式。窗口方式基本 上同其他常用的软件,如Ev i e ws、SPSS相同,命令窗口是多数STATA常用者所采用的方式,因为这种方式非常快捷。而do文件方式无非是命令方式的集成,这是我们在熟练掌握STATA 后主要采用的执行指令的方式。下面是一个简单的do文件。/Gr een e c h pl2 e x e r c i s e s c le a r32.2基本操作4c a p lo g c lo s ec a p c mdlo g c lo s elo g u si n g Gr e e n e l2,t e x t r e pla c ec mdlo g u si n g Gr een el2_c md,r e pla c eu se D:s t a t a 8a do Ex a mple s o th e r s Gr e e n e4t h TBL5-l.DTA,c le a rEx a mplel2.1la be l v a r x 3 Av g.mo n t h ly c r e di t c a r d e x pe n di t u r e la be l v a r x l Ag e i n ye a r s+12t h s o f a yea r la be l v a r x 2 In c o me,di v i de d by 10,000r en a me x lr en a me x 2r en a me x 3a g e i n c o me e x pe n di t u r e g en i n c o me2=i n c o me-2 r eg e x pe n di t u r e a g e i n c o me i n c o me2 i f ex p02.2.2 管理输出结果STATA的输出结果可以有两种接收方式,一种是直接显示在屏幕上,】另一种是存储于文件 中,细心的读者可能已经注意到上例中的如下命令:lo g u s i n g Gr een el2,t e x t r e pla c e它的作用就在于把所有显示于屏幕上的结果复制一份到名为Gr een e l2.t x t的文本文件中,r epla c e 选项的作用在于,如果再次执行上述do文件,那么以前记录的输出结果将被本次的输出结果替 换掉。采用这种方法的优点在于,当我们的输出结果有很多行以至于屏幕上仅能显示最近的一 些计算结果时,我们可以通过文本文档来查看所有的输出结果。对于在屏幕上可以直接看到部分输出结果,如表格,数值等,都可以直接复制、粘贴到常 用的文本编辑器中,如Wo r d、因f eX等,以及表格编辑器中,如Ex c e l。这中间有一个重要的 技巧在于,当我们选中一个表格后右击,下拉菜单中会有三种Co py的选项,如果选择“Co py a st a ble”,则表格中的结果可以直接以表格形式粘贴到Ex c e l中,只要稍作处理就可以粘贴到 Wo r d中作为最终的论文输出结果。如果不想让结果显示在屏幕上,可以在相应的指令前增加qu i et ly命令,如qu i r eg y x l x 2。当我们仅需采用某个 命令进行中间计算时,采用此命令可以节省不少时间。2.3变量52.2.3 获得帮助我们有多种途径可以获得STATA的帮助,主要的途径有三个:手册、STATA自带帮助和网 络帮助。对于多数人而言手册是可望不可及的,因为一套完整的手册有10余本,更糟糕的是价 格昂贵。STATA的自带帮助虽然写的没有Ev i e ws或是Ga u ss的帮助那么容易读,可也还是不错 的。获得帮助的命令为:h e lp c o mma n dwh elp c o mma n d口表示可选项,如果不加此选项,则会显示所有帮助的目录,如果输入具体的命令,则只显示 该命令的帮助,如wh elp r e g r e s s网络帮助可以采用如下命令获得2f i n di t c o mma n d s e a r c h,.读者可以分别输入以上命令看看有何惊喜发现。2.3变量2.3.1 变量名称基本要求如下:第一个字元可以是英文字母或一但不能是数字;最多只能包括32个英文字母、数字或下划线一;由于STATA保留了很多以一开头的内部变量,所以最好不要用.为第一个字元来定义变 量。2这两个命令都是默认你的计算机可以连接到国际网上的。所以,如果你使用的是校园网,那么需要首先设定代 理服务器,具体方法为:具体方法为:依次点击STATA主窗口中Pr ef er en c e-Gen er a l pr ef er en c es In t er n et pr ef s,然后输入代理服务器和端口即可。24数据处理62.3.2 数值变量和文字变量ma k epr i c empgr ep78AMCCo n c o r d4099223AMCPa c er4749173AMCSpi r i t379922Bu i c kCen t u r y4816203Bu i c kEle c t r a7827154Bu i c kLeSa br e5788183Bu i c kOpel4453262.3.3 缺漏值2.4 数据处理h elp f o r n u mli stc o lla pse 2.5回归分析2.5.1 简介c o mma n d v a r li s t i f i n we i g h t,o pt i o n s举几个简单的例子加以说明;对结果中的基本项目进行说明;2.5.2 管理输出结果est t a bleest st o r e系数估计的获取2.5.3 常用命令列表2.5.3.1 回归分析命令STATA回归分析命令的共同特征。wh elp eslc o n i o采用列示项目的方式加以说明。2.5.3.2 估计后命令在STATA完成相应的估计后,仅将部分估计结果列示在屏幕上,如果我们想获取更多的附 加结果,如残差估计值、协方差矩阵,或是对两个模型的估计结果进行对比,本节表253.2中2.5.回归分析7表2-1:回归分析相关命令一览命令用途a n o v a方差和协方差分析h ec k ma nHe c k ma n筛选模型i n t r eg i v r eg离散型变量模型,包括To bi t、c n r eg和i n t r eg工具变量法(IV或2SLS)n ewey pr a i sNewey-We st标准差设定下的回归针对序列相关的 Pr a i s-Wi n st en,Co c h r a n e-Or c u t t,o r Hi ldr et h-Lu 回归qr eg分量回归r egOLS回归sw逐步回归法r eg 3三阶段最小二乘回归r r eg稳健回归(不同于方差稳健型回归,即Wh i t e方法)su r eg sv yh ec k ma n sv yi n t r eg似无相关估计调查数据的He c k ma n筛选模型 调查数据的间断变量回归sv yr eg r esst o bi t调查数据的线性回归To bi t回归t r ea t r egt r e a t men t效应模型t r u n c r eg截断回归26.假设检验8df u ller表2-2:时间序列命令一览命令用途c le ma o lz a n dr ews允许结构突变的单位根检验df g lspper r o nc o i n单方程协整检验dwst a tdu r bi n h参考 dwst a t 2,du r bi n a 2介绍的命令可以大大提高你的分析效率。32.6 假设检验2.6.1 Wa ld 检验wh elp t estsys u se a u t oqu i r eg pr i c e mpg wei g h tt e s t wei g h t=0/*单个系数检验*/t e s t(wei g h t=4)(mpg=l)/夫联合检验,给出F统计量夫/3要获得详细的帮助列表,请输入帮助命令:wh elp po st est o2.7.面板相关的处理技巧92.7 面板相关的处理技巧2.7.0.1产生组内均值t s s e t i d yea rby i d:eg en a v g i=mea n(i n v est)2.7.0.2统计各行业的公司数目假设我们事先定义了一个表示行业归属的变量,si c men,“我们需要知道每个行业中的公司 数目,便可以采用t a ble命令:t a b si c men i f yea r=1998如果需要分年度统计,可以结合使用前面介绍的byso r t命令:bys o r t ye a r:t a b si c men2.7.0.3虚拟变量的产生STATA提供了多种方法可供我们产生虚拟变量。1.g en e r a t e和r epla c e命令结合使用。使用于在任何情况下产生虚拟变量,不过当类别较 多(即需要产生的虚拟变量较多时)会比较繁琐。这是可以考虑使用循环语句,如f o r v a lu e、f o r ea c h 命令。我们可以巧妙的使用判别语句,将上述两条命令合二为一。等号的右边就相当于我们前面 使用r e pla c e命令时设定的i f语句中的内容。1.1 巧用判别语句g en a g e2530=a g e la be l=2g en a g e30s=a g e la be l=3g en du ml=si z e2002.t a bu la t e力口g en()选项。利用含有k种分类的类别变量,如g r o u p,产生k个虚拟变量。t a b si c men,g en(si c du m)4如,属于农林行业的公司取值为1,采掘业公司取值为2,制造业公司取值为3,综合类公司取值为13。2.7.面板相关的处理技巧1()我们将产生对应于13个行业门类的13个虚拟变量,回归时略去其中一个(通常是第一个)即 可。3.x i:r eg v a r li st i.g r o u pv a rD前提条件:一定要有一个类别变量,如种族、地区或行业归属、做面板时的行业代码等。比如,我们想估计一个既有个体效应又有时间效应的固定效应模型,就可以采用此命令:t s s e t i d yea rx i:x t r e g v a r li s t i.ye a r,f e接着,我们还可以利用2.6.1小节中介绍的t e s t命令对时间效应的联合显著性做Wa ld检验。t e s t _Iti me_2=_Iti me_3=_It i me_4=_Iti me_5=_Iti me_6这里我们假设T=6 o局限性:由于x i:中已经包含了一个冒号,所以对于回归命令如,r e g前附加的命令,使用 该方法无法产生虚拟变量。如以下两条命令都无法正确执行:bys o r t r e g i o n:x i:x t r e g y x i.si c men,f e sw x i:r eg y x i.g r o u p4.x t i le可以根据指定的分位数产生一个新的类别变量。我们可以根据此类别变量来产生虚 拟变量。2.7.0.4非平行数据转化为平行数据方法/:参考x t g ls.a do文件的子程序Ch k Ba l o思路:采用by命令统计每个截面中的样本数目,比较它们是否相等。5pr o g r a m de f i n e Ch k Ba l g lo ba l S_1=0 i f$X_ba l=0 e x i t)/*Ch ec k f o r ba la n c ed pa n e ls*/g lo ba l S_1 0 t empv a r u se ma r k u s e 5另外两种处理方法参考面板数据那一章。2.7.面板相关的处理技巧11ma r k o u t u s e,$X_depv$X_i n dv$X_i v a r$X_t v a r*r e pla c e u s e =u s e *$X_t t emp t empv a r t e s t eg en t e s t,=su m(u s e,),by($X_i t emp)su mm t e s t i f r(mi n)!=r(ma x)g lo ba l S_1 1/*No t ba la n c ed*/e x i t)/*Ch ec k f o r du pli c a t e v a lu e s i n pa n el&equ a l v a lu e s a c r o s s pa n e ls*/t empv a r t1 t 2 s o r t$X_t t emp qu i e t ly by$X_t t emp:g en lo n g t l=1 i f _n=l qu i r e pla c e t l=s u m(t l)s o r t$X_i t emp$X_t t emp c a pt u r e by$X_i t emp:a s s e r t t l!=t1 _n-l i f _n l i f _r c g lo ba l S_1 2/*Du pli c a t e v a lu e s i n pa n el*/e x i t eg en t 2=su m(t1z)i f u s e,by($X_i t emp)su mm t 2 i f r(mi n)!=r(ma x)g lo ba l S_1 3/*Un equ a l v a lu e s a c r o s s pa n e ls*/e x i t)s o r t$X_i t emp$X_t t emp en d主程序中对该子程序的调用方式如下:Ch k Ba li f$S_1=1 n o i di i n r ed pa n els mu st be ba la n c e d e x i t 459)i f$S_1=2 n o i di i n r ed/*/$X_t v a r h a s du pli c a t e v a lu e s wi t h i n pa n el e x i t 459)i f$S_1=3 n o i di i n r ed/*/$X_t v a r h a s di f f e r e n t v a lu e s a c r o s s pa n els e x i t 459)方法2:28矩阵12t a i lqu i e t ly t empv a r T t o u s eg en byt e t o u s e =e(sa mple)s o r t t o u s e i v a r by t o u s e7 i v a r :g en i n t T=_N i f t o u s e su mma r i z e T i f t o u s e&xi v a rz=i v a rz _n-lr de/*参考x t lo g i t.a do*/方法3:采用eg en命令产生标示后进行处理6eg en ba la n=t a g(c o de)2.8 矩阵2.8.1 取出矩阵的行名和列名具体参见钟老师的笔记和STATA编程手册。lo c a l r n a mes:r o wn a mes ma t n a me2.9 绘图2.9.1 二维图基础基本语法格式如下:g r a ph t wo wa y plo t i f ex p i n r a n g e,t wo wa y_o pt i o n s其中,plo t定义为:(plo t t ype v a r li s t.,o pt i o n s)|这里的pk mype表示图形的类别,包括散点图、连线图、直方图等,详见表291。而选项 o pt i o n s的设定,我们将在第2.9.2小节详加说明。2.9.2 二维图选项二维图选项的主要类别参见表292,具体可在相应选项类别名称前加wh elp查看帮助。6感谢程建提出的建议。2.10.程序相关13st a t a绘制的图片可以保存为.wmf类型的文件后粘贴到Wo r d中进行编辑。右击图片,选择“编辑”图片,对其中虚化的文本框进行编辑即可。2.10 程序相关2.10.1 程序的基本结构pr o g r a m de f i n e pr o g _n a mev e r s i o n 8.2pr o g r a m c o desen d各项的解释:2.10.1.1 程序的模块化参考x t g ls命令的更新程序。对于大型的程序,我们最好事先将其分成若干个子程序模块,然后采用一个主程序将它们 组织起来。这一方面使得我们的程序结构清晰,便于调试,另一方面也便于其他人阅读和理解 程序。2.10.2 暂元2.10.2.1 局域暂元pr e s e r v e g en x=_n t empv a r dl d2 g en、dl=x 10 g en、d2,=1-dl,lo c a l dli s t、d2f o r ea c h v a r o f v a r li s t dli s tz su m v a rzr e s t o r e为什么下面的命令无法正确执行?t empv a r dl d2f o r ea c h v o f lo c a l、dl、d2 g en、v,=1)2.10.程序相关14采用a r g s这种低级的输入项设定方式,处理起来要非常小心,因为它以空格来识别输入项的个 数。看下面的例子就知道了:pr o g r a m de f i n e t e s t _a r g s a r g s s i n v a r li s t i f s i n =1 su m v a r li s t7)e ls e des v a r li s t7)en d*-调用方式-t e s t _a r g s 1 s i z e t l/*这样只能显示s i z e的统计值*/lo c a l v a r s s i z e t l t e s t _a r g s 1 v a r s,/*正确,这样两个变量的统计值都可显示*/2.10.2.2 全局暂元2.10.2.3 临时性文件几中不用临时性文件的解决办法:c a pt u r e、pr eser v e(r est o r e)0 72.10.2.4 一些技巧从上次估计结果或使用者输入的回归命令中获得变量列表和变量个数。lo c a l v a r li s t:c o ln a mes blo c a l n v a r:wo r d c o u n t v a r li s tz2.10.3 基本控制语句c o n t i n u e命令的使用范例:*-1-*通常做法:.f o r v a lu e s i=1(1)42.i f mo d(iz,2)3.di ir i s o dd4.)5.e ls e6.di i s ev en 7.)8.)1 i s o dd2 i s ev en3 i s o dd7参见STATA编程手册pp.134o2.JO.程序相关154 i s ev en*-2-*使用c o n t i n u e命令:.f o r v a lu e s i=1(1)42.i f mo d(i ,2)3.di i 4.c o n t i n u e5.)6.di i 7.1 i s o dd2 i s ev en3 i s o dd4 i s ev eni s o ddi s ev en*-3-*使用c o n t i n u e,br e a k的效果.f o r v a lu e s i=1(1)42.i f mo d(、i 1 2)3.di i i s o dd4.c o n t i n u e,br ea k5.6.di i s ev en 7.)1 i s o dd2.10.4输入项的设定参考syn t a x和a r g s帮助2.10.4.1 a r g s 的使用pr o g r a m de f i n e bo y a r g s mo del i f mo del,=1di s g o o d bo y e ls edi s ba d bo y)en d命令执行结果如下:.bo y 1 g o o d bo y.bo y 2 ba d bo y.bo y/*未指定输入项*/=1 i n v a li d n a me r(198);/*错误信息*/2.10.程序相关16一个需要注意的问题,采用a r g s输入项设定方式时,因为它是以空格来分离输入项的,所 以调用命令时要注意这一点:pr o g r a m de f i n e myr ega r g s depv a r i n dv a r sr eg de pv a rz i n dv a r s en d比如我们想估计模型y=+伤尤2+u,也就是说有两个解释变量,那么下面的调用方式是错误的:myr eg y x l正确调用方式为:lo c a l v a r li s t x l x 2 myr eg y“v a r li s t 我们也可以调用临时性文件:pr o g r a m de f i n e c h p2_s i n tr o _t e mpf i le a r g s t e mpf i leu se t e mpf i le,c le a rsu men d看下面的调用方式:sys u se a u t osu mk eep pr i c e weit e mpf i le t emp_da t asa v e t emp_da t az,r e pla c ec h p2_s i n t r o _t e mpf i le t emp_da t af输出结果:(.o mmi t ed.).k eep pr i c e wei.sa v e da t a f i le C:DOCUMElRebec c a LOCALSlTempST_O8OOOOOe.t mp sa v ed.c h p2_s i n t r o _t e mpf i le da t a (1978 Au t o mo bi le Da t a)2.10.程序相关17Va r i a ble IObs Mea n St d.Dev.Mi n Ma xpr i c e|wei g h t I74 6165.257 2949.496 3291 1590674 3019.459 777.1936 1760 4840从这个例子中可以看出,只需把需要调用的部分按原样放在输入项的位置上即可。2.10.4.2 syn t a x 的使用如果在输入项中包含矩阵,可以定义为字符串,因为矩阵的名称就是字符串。暂元的使用 类似。看下面的程序:pr o g r a m de f i n e g et ma tsyn t a x,Ma t(s t r i n g)ma t li s t ma tfen d调用结果为:.t empn a me pc.ma t a=J(3,1,1).ma t pc =a.g et ma t _t emp,ma t(pc)_000000 3,1c lr l1r 21r 312.10.4.3切割输入变量为y和xt o k e n i z e v a r li s tf lo c a l dep lz ma c s h i f t lo c a l i n d*z n o i _r mc o ll i n d i f t o u s c,lo c a l i n d r(v a r li s t)fc o n s t a n tlo c a l p:wo r d c o u n t i n d/*参考x t lo g i t.a do*/g et t o k en 2.10.程序相关18lo c a l v a r li s t t o bi n s i z e t a n g t s h r pr o f g e t t o k e n depv a r i n dv a r s:v a r li s tdi s v a r li s t:v a r li s t di s depv a r:de pv a r di s i n dv a r s:i n dv a r s 2.10.4.4 标示样本pr o g r a m de f i n e x xsyn t a x v a r li s t i f i n,so r t(v a r n a me)lo c a l t o u s ema r k s a mple t o u sebys o r t s o r tf:su m v a r li s t i f t o u s e en d2.10.4.5 一些实例i f le n g t h(f ez r ef paf)2 di i n r ed Ch o o se o n ly o n e o f f e,r e,a n d pa e x i t 198/*参见x t lo g t i.a d。*/2.10.4.6 判断上次估计命令参考 li n k t est.a do。2.10.4.7 共线性处理_r mc o ll r h s w i f t o u s e,c o n s t a n t2.10.4.8 字符串的处理当选项中有字符串时一,我们通常允许字符串的缩写形式,但不同的人输入的缩写字符数可 能不同,这就需要我们在程序中给出判断。如&pr o g r a m de f i n e Ma pPa n el/*pa n el*/lo c a l 1=le n g t h(、1,)i f、1,=s u bs t r(i i d,,1,1,)|、l,=0 g lo ba l S_1 0 e x i t)8参见 x t g ls.a do2.10.程序相关19i f lzz=s u bs t r(h e t e r o s k e da s t i c f,1,lf)I/*/lzf=s u bs t r(h e t e r o s c e da s t i c lz)g lo ba l S_1 1 e x i ti f=s u bs t r(c o r r e la t e d,,1,1)g lo ba l S_1 2 e x i t)i f .,=0|、,、,=、,、1,=(g lo ba l S_1 lz e x i t)di i n r ed pa n e l(1)i n v a li df e x i t 198en d2.10.5返回值2.10.5.1 一些应当注意的问题1.返回矩阵时,等式右边只能是一个现有的矩阵名称,而不能含有任何矩阵运算。看下面 的例子:ma t a=J(3,2,1)ma t a l=a1e r e t ma t b=a 1 /*错误返回*/e r e t ma t b=a l/*正确返回*/2.将所有的返回值放在最后返回,之前用暂元存储,这样可以避免中间过程在调用STATA自身 程序时清除我们已经设定好的返回值。如果需要把上一部执行后的返回值作为我们程序的返回 值,如果不是在程序末尾,一定也要先存到暂元中,然后再在程序的末尾一并返回。在下面这 个例子中我们就无法得到想要的返回值:10su m v lsu m v 2e r e t s c a la r v l_ma x=r(ma x)虽然这个道理非常简单,但一旦忽略可能会让你很难觉察,我是在这上面栽了一次。9部分STATA程序使用了 er et c lea r命令,这样会清除掉记忆体内现存的所有返回值。1假设我们想把变量v l的最大值返回得到e(v l_ma x)o2.10.程序相关202.10.6子程序下面的命令可以正确执行,但如果想在子程序中也加入样本标示的限制,由应当如何实现 呢?pr o g r a m de f i n e x xsyn t a x v a r li s t i f i n,so r t(v a r n a me)ma r k s a mple t o u sebys o r t s o r t:su m v a r li s t i f t o u s e di s su b pr o g beg i n=_n a v a r li s tzen dpr o g r a m de f i n e asyn t a x v a r li s t i f li s t v a r li s t en d下面这段程序可以提供一个粗略的解决办法:pr o g r a m de f i n e x xsyn t a x v a r li s t i f i n,s o r t(v a r n a me)ma r k s a mple t o u sebys o r t s o r t:su m v a r li s t i f t o u s e di s su b pr o g beg i n=_n a v a r li s t7 i f t o u s e en dpr o g r a m de f i n e asyn t a x v a r li s t i f li s t v a r li s t7 i fzen d2.10.7结果的输出di spla yqu i n o下面的例子有助于我们理解该命令的使用:pr o g r a m de f i n e qu i _n qu i(r eg i n v m sn(ma t li s t e(b)en d2.n.部分命令解释21调用结果为:qu i _ne(b)1,3ma r k etst o c k_c o n syl.10508541.30536554-48.029736t a bdi sp介绍一些典型的列表方式2.10.8读写文件wh elp f i le2.11部分命令解释2.11.1 eg en 命令2.11.2 c o n f i r m 命令先举一个简单的例子。比如我们的数据库中有200个变量,其中包括部分文字类型的变 量,我们希望将这些变量剔除掉。一个非常直接的办法就是首先采用“desc r i be”命令列示出 所有变量的存储类型,然后记录下所有文字类型变量的名称,如“小,工2,-,”,然后采用“dr o p”命令将这些变量全部删除。有过一些数据处理经验的读者的第一反应可能就是,“这 是一件很繁琐的事情!”。事实也的确如此,即使你是个非常细心的人,这个过程也要花费你 数十分钟,如果数据库中变量的数目达到2000个,你或许要花费更多的时间时间来完成这项工 作,处理过程中出错也几乎是不可避免的。利用c o n f i r m命令和循环计数器我们可以很轻松地完成这项工作,我们可以先看下面的处理 程序:lo c a l v a r li s t x l-x 2000f o r ea c h v o f lo c a l v a r li s t c a pt u r e c o n f i r m s t r i n g v a r i a blev i f!,r c dr o p v 我们首先将所有的变量名都存储在一个名为“v a r li st”的暂元中,继而判断每一个变量的存储类 型,如果该变量是文字型变量,我们就将其删除。其中,c o n f i r m st r i n g v a r i a ble 的作用就 2.n.部分命令解释22在于判断某个变量是否为文字型变量,并将判断后的返回值存储在STATA内部定义的一个暂元“_
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服