
stata统计分析与应用笔记.docx
12页第一章:Stata概述:help和search都是查找文件的命令但help用于查找精确的命令,search是模糊查找还可使用help|contents 来分类查找第二章:数据管理:2.1变量和变量的取值:1.变量的命名:不能以数字开头,区分大小写,不能命名为系统变量名2.变量的取值类型:(1)字符型:字符变量存储格式是str⋕,str表示格式⋕表示该变量的存储最多可容纳的字符数(2)数值型数据:存储格式:byte.int.long.float.double.Stata默认将数字存储为浮点数据,而将计算结果存为双浮点数据3)缺失数据:一般仅用“.”表示3.变量的显示:(1)数值变量的显示格式:a.普通格式有%w.dg, %w.dgc(g表示普通,w表示整个显示所占的字符数,d表示显示的数字中小数点后的位数,c是要求Stata给出带逗号“,”数字显示格式如12345显示为12,345)b.固定格式有%w.df, %w.dfc(f表示固定)c.科学指数法格式:%w.de, (e表示科学计数)(2)字符变量的显示格式:仅有一种%⋕s,%是提示符,#表示显示字符数,s表示字符变量显示格式,默认右对齐,后加“-”可改为左对齐。
3)使用format命令变量显示格式:format varlist %fmt 或者 format %fmt varlist 4.变量的标签(1)添加数据集的标签使用: label data [“lable”](2)添加变量的标签使用:label variable varname [“lable”](3)label为变量数值添加标签的语法有两部分,先定义数值标签:label define lblname#“lable” [#“lable”](lblname是标签名称)然后将定义好的数值标签添加到变量上:label values varlist [lblnamel.]2.2创建一个新的数据集1.关于数据集操作的基本命令(1)browse 和edit 命令:browse 用于打开数据浏览器,edit命令用于打开数据编辑器Edit [varlist] [if] [in]browse [varlist] [if] [in](if和in 用于选择需要的子集)(2)rename:rename old_varname new_varname(3)save命令:save [filename] [,save_options]([,save_options]可以指nolabel(不保存设定标签),replace(允许新文件覆盖原文件),all主要用于编程(4)describe:用于产生一个对数据集的简明总结格式:describe [varlist] [,memory_options](命令选项:simple,short,detail,fullnames)(5)list:用于显示变量的数值,其后可以跟需要显示的变量名称语法:list [varlist] [if] [in] [,options](命令选项包括:noobs(不显示观测值的数值),clean,separator,sepby,nolabel)(6)codebook:用于详尽地描述变量的内容,包括变量名称、标签、赋值。
语法:codebook [varlist] [if] [in] [,options](命令选项有header,notes,mv,problems,compact)2.举例应用:输入原始数据⟶定义变量名⟶添加标签⟶使用describe和codebook命令查看数据全貌⟶保存数据到硬盘的工作目录2.3导入已创建的数据集1.一般原则:(1)打开数据集前要用clear命令清除内存中的数据集 (2)可用 set memory 50m,permanently来设定空间 (3)读入数据方法:可用use, edit, insheet,infile,infix,等 (4)在数据文件不是太大的情形下,使用Excel文件粘贴复制就可以完成数据读入2.读取格式为.dta的数据一般:use filename [,clear nolabel]( clear nolabel是两个选项)此时filename为当前工作目录下的文件3.利用Excel复制数据进入Stata系统中2.4 Stata中的表达式1.算术符号:+ 、-、*、/、^(乘方)、-(负号)2.关系符号(六种):==(等于),!=(不等于),>,<,>=,<=3.逻辑符号:!(或),&(且),“|”(非)2.5 Stata中的常用函数2.6使用in、if和by语句定义数据子集许多命令都可以限制为对数据的个子集执行,这就需要在命令中加上in或者if选择条件1.in 的语法:command in range (command 是命令,range可以是数字#,也可以是从某数字到另一个观测值“#/#”或者从某个数字到最后“#/1”,以及从开始到最后“f/#”2.if 的语法:command if exp (exp是需要满足的表达式)3.by 语句的使用:大多数Stata命令都允许使用by前置语句,用来对某些变量具有相同赋值的样本子集重复执行命令,by的语法:by varlist:Stata_cmd bysort varlist:Stata_cmd (Stata_cmd表示要执行的命令,bysort和by本质相同,只不过前者先对varlist排序再分组,一般用bysort2.7 变量的相关操作1.建立新的变量generate generate语法:generate [type] newva=exp[if] [in](type是可选项用于指定创建的变量的类型,newva是新变量名称,exp是赋值表达式注意:(1)一定要区分“=”和“==”(2)生成新变量中往往会产生缺失值2.更改已有的变量replaceReplace的语法:replace oldvar =exp[if] [in] [,nopromote]选项nopromote阻止Stata改变变量的类型来适应新的赋值,较少使用3.egen命令egen表示对generate命令的扩展,它有自己一系列用于完成generate命令无法轻易完成的函数 egen语法:egen [type] newvar =fcn(arguments) [if] [in] [,options](fcn是egen命令中特有的函数,arguments表示表达式、变量名或者数字列表,它们依函数而定,选项也依函数而定2.8数值和字符串的转换1.encode和decode命令encode命令可为已经存在的字符串变量添加一个去了标签的数值型变量decode 命令可以根据一个数值型变量和它的标签生成一个字符型变量,字符型到数值型变量语法:encode varname [if] [in],generate(newvar) [label (name)]Varname表示要进行转换的变量,newvar表示要生成的新变量,label (name)是指定新变量的标签名,没有的话,默认与原变量相同数值型到字符型变量语法: decode varname [if] [in],generate(newvar) [maxlength (#)]maxlength (#)用来指定新生变量的长度2.real函数real()用于从合适的字符串表达式中得到数值,如real(“5.2”)+1=6.2如果字符串中不含数字则返回“.”2.9 生成分类变量和虚拟变量1.生成虚假变量虚拟变量的取值非此即彼,如female=1表示男性,female=0表示女性(1) 使用generate和replace生成虚拟变量, 如:use wage ,replace gen college=0replace college=1 if educ>=12list educ college in 1/10(2) 使用generate newvar=(varname>#)生成虚拟变量generate newvar=(varname>#)是一个生成虚拟变量的快捷方式,在这个命令中,第一个等号表示定义:满足其后小括号中的观测案例将会在新的变量中定义为1,其余的情况则定义为0上(1)有程序⟺generate college=(educ>=12)2.生成分类变量(1)generate加replace命令生成分类变量 如将edu6教育水平划分为6个等级,和虚拟变量不同之处在于这是6组(3) recode命令recode类似replace也可对已有变量重新赋值,语法如下:recode varlist (rule)[(rule)…][,generate(newvar)](varlist 是需要进行转换赋值的变量名,rule是事先确定的转换规则,选项[,generate(newvar)]用于将转换后的变量保存为一个新的变量recode的常见赋值规则有#=#,##=#,#/#=#,nonmissing=#,minssing=#如:recode x1(1=2)(2=1),gen(nx1)3.使用autocode()、recode()和group()3个函数生成分类变量语法:gen varlist =autocode(x,n,xmin,xmax) gen varlist =group(x)gen varlist =autocode(x,x1,x2,…,xn)2.10数据的整理(将存放在不同的数据文件里的数据文件合并)1.数据的横向合并:指将两个数据文件的变量加总在一起。
合并后数据的样本不变,但变量的数目增加了,也就是使得数据文件变宽了用merge命令语法:merge [varlist] using filename [filename…] [,options]varlist指的是合并序号变量,[filename…]用于合并两个以上的数据,易出错Options选项可以有:merge(newvar),update,replace,nokeep,nosummary2.数据的纵向合并:指的是把两个数据的样本加总在一起,合并后的数据变量数目不变,但样本数目增加了,也就是使得数据变长了用append命令语法:append using filename [,options] (选项有keep,nolabel,nonotes)3.数据的交叉合并:指的是把一个数据的个案和另外一个数据的个案交叉搭配生成新的数据1)用jobby进行组内交叉 语法:joinby [varlist] using filename [,options](2)用cross进行一一交叉 语法:cross using filename4.数据的抽取:对于大型数据,需抽取再分析sample 命令:sample # [if] [in] [,count by(groupvars)]#是样本容量(或样本百分比),如果指定count,那么#就是样本内观测值个数;如果没有指定count,那么#就是抽取样本的百分比。
by(groupvars)可进行组内抽取,还可以用set seed 5来保证每次抽取的样本相同第三章 图形绘制基础3.1 Stata绘图简介用户可用Graphics菜单制图,但不推荐1. 主要的图形类型:直方图、扇形图、条形图、散点图、直线图以及数据拟合图(一维或二维图),还。
