最新stata统计分析与应用笔记资料

发布时间 : 星期一 文章最新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命令变量显示格式: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排序再分组,一般用bysort

2.7 变量的相关操作

1.建立新的变量generate

generate语法:generate [type] newva=exp[if] [in]

(type是可选项用于指定创建的变量的类型,newva是新变量名称,exp是赋值表达式 注意:(1)一定要区分“=”和“==”(2)生成新变量中往往会产生缺失值 2.更改已有的变量replace

Replace的语法: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=0

replace college=1 if educ>=12 list 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, )

2.10数据的整理(将存放在不同的数据文件里的数据文件合并)

1.数据的横向合并:指将两个数据文件的变量加总在一起。合并后数据的样本不变,但变量的数目增加了,也就是使得数据文件变宽了。用merge命令语法: merge [varlist] using filename [filename…] [,options]

varlist指的是合并序号变量,[filename…]用于合并两个以上的数据,易出错。 Options选项可以有:merge(newvar),update,replace,nokeep,nosummary

2.数据的纵向合并:指的是把两个数据的样本加总在一起,合并后的数据变量数目不变,但样本数目增加了,也就是使得数据变长了。用append命令语法:

append using filename [,options] (选项有keep,nolabel,nonotes) 3.数据的交叉合并:指的是把一个数据的个案和另外一个数据的个案交叉搭配生成新的数据。 (1)用jobby进行组内交叉 语法:joinby [varlist] using filename [,options] (2)用cross进行一一交叉 语法:cross using filename 4.数据的抽取:对于大型数据,需抽取再分析

sample 命令:sample # [if] [in] [,count by(groupvars)] #是样本容量(或样本百分比),如果指定count,那么#就是样本内观测值个数;如果没有指定count,那么#就是抽取样本的百分比。by(groupvars)可进行组内抽取,还可以用set seed 5来保证每次抽取的样本相同

第三章 图形绘制基础

3.1 Stata绘图简介

用户可用Graphics菜单制图,但不推荐。

1. 主要的图形类型:直方图、扇形图、条形图、散点图、直线图以及数据拟合图(一维或

二维图),还可绘如盒形图,长钉图,圆点图、面积图以及其他常见图。 2. 图形的组成部分与制图命令的结构 3. 寻求帮助:help graph

3.2 绘制散点图

1. 绘制散点图的命令和最基本的使用:语法如下

[twoway] scatter varlist [if] [in] [weight] [,options] 以下三种也可识别scatter语句 graph twoway scatter … twoway scatter … scatter …

如果命令后紧跟两个变量名,则Stata会默认第一个为y轴变量,第二个为x轴变量; 如果命令后有两个以上的变量,那么Stata会将除最后一个以外的变量作为y轴变量,而将最后一个变量当成x轴变量。scatter 命令是graph twoway(二维绘图命令)中最基本的一个,其它的都是在散点图的基础上进行的。

Scatter 绘图还可以与其他类型二维制图命令放在一起,绘制重叠的复合图形比如: 精品文档

联系合同范文客服:xxxxx#qq.com(#替换为@)