好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Stata编程基础知识一览.ppt

24页
  • 卖家[上传人]:飞***
  • 文档编号:53550210
  • 上传时间:2018-09-02
  • 文档格式:PPT
  • 文档大小:552.50KB
  • / 24 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第十四章 Stata编程基础,引言,这一章讨论Stata中一些常用的编程语句我们将讲解do文件与log文件,用户可以将任何顺序的Stata命令存入一个文本文件或do文件中,并通过Stata中的do命令或do文件编辑器来执行通过使用Stata的do文件,用户可以避免重复键入相同的程序,使得一些重复性编程问题的处理变得更加方便 本章的内容包括do文件和log文件的介绍、局部宏和全局宏、标量和矩阵、循环语句以及如何利用return list和ereturn list命令获得Stata命令的结果,这些内容都是Stata编程的基础14.1 do文件和Log文件 14.1.1 do文件的编写,所谓do文件是以. do为后缀的包含一系列Stata命令的文本文件编写do文件的标准步骤如下: (1)确定当前工作目录 查看当前工作目录只需输入cd,而要改变当前目录,可以在cd后加上要更改的目标目录地址 (2)打开一个Do文件编辑器 (3)输入Do文件的内容,并保存 保存可以直接点击save按钮,或者打开菜单file,然后寻找并点击save 另外,作为一个比较快捷的方式,用户也可以直接在命令框中输入: doedit,14.1.2运行do文件,1. 用户可以通过命令窗口来执行已经编写好的do文件。

      2. 另一种办法是通过do文件编辑器来执行do文件14.1.3 log文件,Log文件可以通过log命令创建例如,为了创建一个名为example.txt的log文件,用户可以在命令框中键入: . log using example .txt, text replace 其中replace选项允许新写入的log文件覆盖原有的同名文件如果这里没有replace,且文件中已经存在同名log文件,Stata会拒绝该文件的创建当程序执行完毕时,用户可以键入 . log close 来关闭当前的log文件14.2 局部宏与全局宏 14.2.1 局部宏,【例3-2】请定义一个计数宏count从1到4,定义一个包含四个国家简写(US UK DE FR)的局部宏country,然后通过使用foreach语句(循环语句foreach会在13.4节详细介绍)和display语句生成如下样式的结果: Country 1 : US Country 2 : UK Country 3 : DE Country 4 : FR 【例14-3】请定义一个计数宏count从1到4,定义一个包含四个国家简写(US UK DE FR)的局部宏country,然后通过使用foreach语句(循环语句foreach会在)和display语句生成如下样式的结果: 1 US 2 UK 3 DE 4 FR,,,【例14-4】数据集gdp4cty.dta是美国、英国、德国和法国GDP的季度数据,从1971年的第1季度到1995年的第4季度,该数据集中重要的变量如表14-1所示,部分数据罗列在了表14-2中。

      本例要求利用局部宏和foreach语句生成每一国家的GDP时间趋势图14.2.2 全局宏,全局宏的内涵与定义方式不同于局部宏它往往被用来存储整个过程中所需要的用到的宏例如,当我们需要存储一些当前的数据,且这些数据将会被所有的程序或默认路径下的数据集与do文件所使用时,我们就可以创建一个全局宏 因为全局宏的使用可能会带来一些意想不到的问题,只有在少数下我们才会选择使用全局宏比如我们在do文件A中创建了一个全局宏abc,之后我们却忘记了若之后我们在do文件G或H的编写中,又使用了宏abc,此时会将其作为一个它全局宏进行计算,运行出来的结果将会是不合意的,而我们很难避免这样的问题一些教FORTRAN或C语言的老师经常会鼓励同学们多使用局部宏,尽量避免使用全局宏,运用到Stata的编程中道理也是一样的14.2.3 一些扩展函数以及列表函数,在Stata的编程过程中,用户可以通过许多扩展函数以各种灵活的方式来使用宏,此时需要在宏的名称和扩展函数之间添加一个冒号(:),这样用户便可以更加简单的重获或修改宏的内容 使用宏的扩展函数的语法是: {local | global} macname : extended_function 其中,macname是局部宏或者全局宏名,而extended_function就宏的扩展函数,具体来说包括如下这些函数,见表14-3所示。

      例14-5】请定义一个包含四个国家简写(US UK DE FR)的局部宏country,使用宏扩展函数word count定义局部宏wds表示最大的循环个数,使用宏扩展函数word ‘i’生成局部宏wd作为计数依据,然后通过使用foreach语句(循环语句foreach会在14.4节详细介绍)和display语句生成如下样式的结果: Country 1 : US Country 2 : UK Country 3 : DE Country 4 : FR,14.3 标量简介,定义标量 scalar [define] scalar_name = exp 其中,scalar_name是要定义的标量名,标量的赋值通过一个数值或者文字表达式 exp 来表示 显示标量的内容 scalar { dir | list } [ _all | scalar_names ] 其中,scalar dir和scalar list都用于显示标量的内容,其后面可以使用_all表示内存中的所有变量,也可以指定某些标量名称(scalar_names) 从内存中删掉某些标量 scalar drop { _all | scalar_names },,下面我们举一些简单的例子说明。

      定义标量a,赋值为2:. scalar a = 2 定义标量b,赋值为a的赋值加上3:. scalar b = a+3 定义标量root2,其赋值为2的开方:. scalar root2 = sqrt(2) 定义标量s1,其赋值是字符串“hello world“: . scalar s1 = “hello world“,,显示定义好的所有标量:. scalar list 删掉标量a和b:. scalar drop a b 再比如如下两个命令,要求定义标量,并且将这个标量用于定义新的变量: .scalar root2 = sqrt(2.0) //生成一个标量,其赋值为2的开根号 .generate DOuble rootGDP = gdp*root2 //将这个标量用于定义新的变量,14.4 循环结构 14.4.1 forvalues语句,forvalues语句如下:forvalues lname = range {commands referring to `lname'} 其中,lname是指定的局部宏名称,而rang可以有如下形式: #1(#d)#2 表示从#1到#2步长为#d #1/#2 表示以步长为1从#1到#2,,【例14-6】数据集gdp4cty.dta是美国、英国、德国和法国GDP的季度数据,从1971年的第1季度到1995年的第4季度,该数据集中重要的变量如表14-1所示,部分数据罗列在了表14-2中。

      (1)这里的任务是利用forvalues语句生成四个变量lngdp1、lngdp2、lndgp3和lngdp4,它们分别是gdp1、gdp2、gdp3和gdp4的对数,然后显示新生成的四个变量的描述性统计量 (2)生成变量gdp1_1995、gdp2_1995、gdp3_1995、gdp4_1995、gdp1_1997、gdp2_1997、gdp3_1997、gdp4_1997、gdp1_1999、gdp2_1999、gdp3_1999、gdp4_1999的描述性统计结果14.4.2 foreach语句,foreach语句的语法如下:foreach lname {in|of listtype} list {commands referring to `lname'} 可以使用的类型包括: 对于每一个局部宏 foreach lname of local lmacname { 对于每一个全局宏 foreach lname of global gmacname { 对于变量列表中的每一个变量 foreach lname of varlist varlist { 对于数字列表中的每一个数字 foreach lname of numlist numlist {,,【例14-7】我们这里使用数据集lifeexp来说明foreach命令语句的使用,这个数据集在第三章已经使用过了,该数据集是一个关于全球68国人口生存状况的数据,这些国家分别来自欧亚、北美和南美四大洲,数据的内容参看第三章,表3-10 是所有变量的一个概览,表3-11列出了数据集中北美洲国家的观测值。

      这里要求计算这些变量的描述性统计量以及它们与popgrowth的相关性,并且绘制它们与popgrowth的散点图14.6 使用Stata命令的结果,所有的Stata的命令都可以被归入一下三类:r类、e类、s类(属于这类的情况较少)其中e类命令是指估计命令(estimation commands),这类命令将返回两个矩阵:e(b)——被估计的系数矩阵,e(v)——被估计系数的方差与协方差矩阵,同时也会返回一些其他信息(详情参见help ereturn)其他绝大多数的Stata官方命令属于r类命令,这类命令是将运行结果返回到调用程序当中(详情参见help return) 14.6.1 r类命令 下面让我们从最简单的r类命令入手理论上说,所有的Stata命令都会将其所有的输出项存放在一个返回列表中输入命令: return list 就可以获得这些输出项例14-8】 打开数据集wage.dta,使用describe命令描述该数据集,然后返回describe命令中的输出项 【例14-9】本例使用数据集abdata.dta,该数据集是一个面板数据,是140个国家 1976年到1984年的各种宏观指标。

      在这里的关键变量是id代表每个国家的标号,year代表年份,一个面板数据通常定义这两个变量以便进行各种面板回归和统计其他的变量包括就业率emp(%)、平均工资wage(指标)、投资占GDP的百分比cap(%)表14-4 罗列了部分数据 这里要求用tsset命令查看该面板数据的结构,并使用return list返回相关的结果14.6.2 e类命令,通过ereturn list命令可以返回e类命令的计算结果ereturn list命令的语法如下: ereturn list 这个命令在通过Stata执行了e类命令之后使用,大多数的e类命令返回的结果中包含四类: 标量——比如e(N),总结估计的过程; 宏——比如关于响应变量的信息(e(depvar))、使用的估计方法(e(model)); 矩阵——系数和方差矩阵(e(b) e(v)); Stata函数——比如e(sample),如果估计过程中使用了所有观测值则返回1,否则为0例14-10】本例使用数据集wage.dta,观测值有526个,主要变量有被调查者的工资(百元)、经验(年)、受教育水平(年)等,这里要求首先以工资(wage)为被解释变量,经验(experience)和受教育水平(education)做回归,然后使用ereturn list返回上述回归的结果。

      本例中我们将演示如何将回归结果中的各种元素导出,分以下五个部分介绍 (1)首先我们做回归,以工资(wage)为被解释变量,经验(experience)和受教育水平(education),然后使用ereturn list命令返回结果 (2)通过矩阵e(b)导出解释变量名 (3)灵活运用e(sample)函数定义数据的子集 (4)使用estat summarize输出用于回归的样本的概要统计 (5)使用matrix list命令输出由回归命令产生的系数矩阵e(b),。

      点击阅读更多内容
      相关文档
      局长在2025年全市医疗保障重点工作调度会暨定点医药机构违法违规使用医保基金自查自纠工作推进会上的讲话稿.docx 2025年春教体系统安全工作会上的讲话范文.docx 2024年度街道机关支部党组织书记述职发言材料供参考.docx 2025年干部谈心谈话内容范文.docx 主管发改部门党组书记在党委理论学习中心组学习研讨会上的发言材料供参考.docx 学习关于党的建设的重要思想交流发言材料供参考.docx 纪委书记2025年全面从严治党的研讨材料范文.docx 2025年春季防汛防旱工作部署会上的讲话范文.docx 2025年村“三资”管理工作计划供参考.docx 村“两委”2025年工作计划供参考.docx 乡镇在全市履行职责事项清单工作会议上的交流发言.docx 银行行长在学习2025年一号文件精神专题会上的研讨发言供参考.docx 乡党委乡村振兴工作经验总结供参考.docx 党组书记、主任在2025年展改革委民营企业座谈会上的讲话范文.docx 领导干部在2025年“纪检监察工作规范化法治化正规化建设年”行动动员部署会议上的讲话范文.docx 关于落实全面从严治党主体责任报告范文.docx 在2025年基层履行职责事项清单工作会议上的交流发言例文.docx 2025年理论学习中心组党风廉政建设专题学习研讨会议上的交流发言供参考.docx 在理论学习中心组推动经济社会高质量发展专题学习研讨会议上的交流发言两篇.docx 党支部2024年民主评议党员工作情况报告供参考.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.