stata统计分析与应用笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一章: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命令变量显示格式:formatvarlist%fmt或者format%fmtvarlist4.变量的标签(1)添加数据集的标签使用:labeldata[“lable”](2)添加变量的标签使用:labelvariablevarname[“lable”](3)label为变量数值添加标签的语法有两部分,先定义数值标签:labeldefinelblname#“lable”[#“lable”](lblname是标签名称)然后将定义好的数值标签添加到变量上:labelvaluesvarlist[lblnamel.]2.2创建一个新的数据集1.关于数据集操作的基本命令(1)browse和edit命令:browse用于打开数据浏览器,edit命令用于打开数据编辑器Edit[varlist][if][in]browse[varlist][if][in](if和in用于选择需要的子集)(2)rename:renameold_varnamenew_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)可用setmemory50m,permanently来设定空间(3)读入数据方法:可用use,edit,insheet,infile,infix,等(4)在数据文件不是太大的情形下,使用Excel文件粘贴复制就可以完成数据读入2.读取格式为.dta的数据一般:usefilename[,clearnolabel](clearnolabel是两个选项)此时filename为当前工作目录下的文件3.利用Excel复制数据进入Stata系统中2.4Stata中的表达式1.算术符号:+、-、*、/、^(乘方)、-(负号)2.关系符号(六种):==(等于),!=(不等于),,,=,=3.逻辑符号:!(或),&(且),“|”(非)2.5Stata中的常用函数2.6使用in、if和by语句定义数据子集许多命令都可以限制为对数据的个子集执行,这就需要在命令中加上in或者if选择条件1.in的语法:commandinrange(command是命令,range可以是数字#,也可以是从某数字到另一个观测值“#/#”或者从某个数字到最后“#/1”,以及从开始到最后“f/#”2.if的语法:commandifexp(exp是需要满足的表达式)3.by语句的使用:大多数Stata命令都允许使用by前置语句,用来对某些变量具有相同赋值的样本子集重复执行命令,by的语法:byvarlist:Stata_cmdbysortvarlist:Stata_cmd(Stata_cmd表示要执行的命令,bysort和by本质相同,只不过前者先对varlist排序再分组,一般用bysort2.7变量的相关操作1.建立新的变量generategenerate语法:generate[type]newva=exp[if][in](type是可选项用于指定创建的变量的类型,newva是新变量名称,exp是赋值表达式注意:(1)一定要区分“=”和“==”(2)生成新变量中往往会产生缺失值2.更改已有的变量replaceReplace的语法:replaceoldvar=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命令可以根据一个数值型变量和它的标签生成一个字符型变量,字符型到数值型变量语法:encodevarname[if][in],generate(newvar)[label(name)]Varname表示要进行转换的变量,newvar表示要生成的新变量,label(name)是指定新变量的标签名,没有的话,默认与原变量相同数值型到字符型变量语法:decodevarname[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生成虚拟变量,如:usewage,replacegencollege=0replacecollege=1ifeduc=12listeduccollegein1/10(2)使用generatenewvar=(varname#)生成虚拟变量generatenewvar=(varname#)是一个生成虚拟变量的快捷方式,在这个命令中,第一个等号表示定义:满足其后小括号中的观测案例将会在新的变量中定义为1,其余的情况则定义为0上(1)有程序⟺generatecollege=(educ=12)2.生成分类变量(1)generate加replace命令生成分类变量如将edu6教育水平划分为6个等级,和虚拟变量不同之处在于这是6组(3)recode命令recode类似replace也可对已有变量重新赋值,语法如下:recodevarlist(rule)[(rule)…][,generate(newvar)](varlist是需要进行转换赋值的变量名,rule是事先确定的转换规则,选项[,generate(newvar)]用于将转换后的变量保存为一个新的变量recode的常见赋值规则有#=#,##=#,#/#=#,nonmissing=#,minssing=#如:recodex1(1=2)(2=1),gen(nx1)3.使用autocode()、recode()和group()3个函数生成分类变量语法:genvarlist=autocode(x,n,xmin,xmax)genvarlist=group(x)genvarlist=autocode(x,x1,x2,…,xn)2.10数据的整理(将存放在不同的数据文件里的数据文件合并)1.数据的横向合并:指将两个数据文件的变量加总在一起。合并后数据的样本不变,但变量的数目增加了,也就是使得数据文件变宽了。用merge命令语法:merge[varlist]usingfilename[filename…][,options]varlist指的是合并序号变量,[filename…]用于合并两个以上的数据,易出错。Options选项可以有:merge(newvar),update,replace,nokeep,nosummary2.数据的纵向合并:指的是把两个数据的样本加总在一起,合并后的数据变量数目不变,但样本数目增加了,也就是使得数据变长了。用append命令语法:appendusingfilename[,options](选项有keep,nolabel,nonotes)3.数据的交叉合并:指的是把一个数据的个案和另外一个数据的个案交叉搭配生成新的数据。(1)用jobby进行组内交叉语法:joinby[varlist]usingfilename[,options](2)用cross进行一一交叉语法:crossusingfilename4.数据的抽取:对于大型数据,需抽取再分析sample命令:sample#[if][in][,countby(groupvars)]#是样本容量(或样本百分比),如果指定count,那么#就是样本内观测值个数;如果没有指定count,那么#就是抽取样本的百分比。by(groupvars)可进行组内抽取,还可以用setseed5来保证每次抽取的样本相同第三章图形绘制基础3.1Stata绘图简介用户可用Graphics菜单制图,但不推荐。1.主要的图形类型:直方图、扇形图、条形图、散点图、直线图以及数据拟合图(一维或二维图),还可绘如盒形图,长钉图,圆点图、面积图以及其他常见图。2.图形的组成部分与制图命令的结构3.寻求帮助:helpgraph3.2绘制散点图1.绘制散点图的命令和最基本的使用:语法如下[twoway]scattervarlist[if][in][weight][,options]以下三种也可识别scatter语句graphtwowayscatter…twowayscatter…scatter…如果命令后紧跟两个变量名,则Stata会默认第一个为y轴变量,第二个为x轴变量;如果命令后有两个以上的变量,那么Stata会将除最后一个以外的变量作为y轴变量,而将最后一个变量当成x轴变量。scatter命令是graphtwoway(二维绘图命令)中最基本的一个,其它的都是在散点图的基础上进行的。Scatter绘图还可以与其他类型二维制图命令放在一起,绘制重叠的复合图形比如:twoway(scatter…)(line…)(lfit…)⇔scatter…||line…||lfit..||…2.散点显示选项的设

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功