Stata重点笔记

Stata重点笔记
Stata重点笔记

以下命令均采用小写字母

Chapter 1 stata入门

1.1打开数据

use "D:\Stata9\auto.dta", clear 用use命令打开数据

sysuse auto,clear auto 为系统数据sysuse为打开系统数据的命令

1.2获取帮助

Help summarize summarize为需要获取帮助对象可以改为其他的需要帮助的对象Findit summarize,net 寻找网络帮助summarize为需要获取帮助对象

Search summarize ,net 寻找网络帮助summarize为需要获取帮助对象

显示结果

Display 5+9

1.3描述统计(summarize 可简写成sum)

Use atuo,clear

Summarize price 描述price的观察值个数、平均值、标准差、最小值、最大值

Sum weight summarize可简写成sum

Sum weight price 同时完成上面两步

1.4绘图

Scatter price weight scatter 为绘制散点图命令

Line price weight ,sort line 为绘制折线图命令,sort为排序,绘制折线图前需要先排序

1.5生成新的数据(generate 可简写成gen)

Clear

Set obs 1000 设置观测值的组数

Gen x=_n _n 为观察值得序号

Gen y=x+100

1.6控制结果输出显示

List n

1.7设置屏幕滚动

Set more off 先设置此项则显示时,屏幕不停止

Set more on 先设置此项则显示时,会使显示停止

1.8清除内存中原有内容

clear

1.9设置文件存取路径(cd)

Cd d:\stata d:\stata为路径

1.10如果想知道当前路径下有哪些文件,可以用dir 命令来列示

.dir

1.11假设你想在D 盘的根目录下创建一个新的文件夹mydata 来存放数据文件,命令为mkdir。

mkdir d:\mydata

1.12错误提示

List myvar

上述命令试图显示变量myvar,但是结果窗口仅出现如下的显示

variable myvar not found

r(111);

红色信息表明,没有找到一个叫myvar 的变量,的确,我们的数据中并没有

这个变量。List 巧妇难为无米之炊。

红色信息下面还有一个天兰色的r(111),用鼠标点击,即可弹进一个帮助信

息框,给出错误的更详尽解释。

再比如,我们在求五数概略时,误把sum 写成了sun

. sun

unrecognized command: sun

r(199);

显示说不认识sun 这个命令。

附录:常见命令

Chapter2命令语句

2.1 掌握命令语句的格式

[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options]

注:[ ]表示可有可无的项,显然只有command 是必不可少的,下面结合例子分

项来讲解命令的各个组成部分。

2.2 命令command

[by varlist:] command[varlist] [=exp] [if exp] [in range] [weight] [, options]

. cd d:/stata9

. use auto, clear //打开美国汽车数据文件auto.dta,后面的clear 表示先清除内存中可

能存在的数据集

. summarize /*很多命令可单独使用,单独使用时,一般是对所有变量进

行操作,等价于后面加上代表所有变量的_all。*/

. summarize _all /注意到该命令输出结果与上一个命令完全一样

. sum //与前一命令等价,sum 为summarize 的略写

. su su 是summarize 的最简化略写,不能再简化为s

. s //简写前提是不引起混淆。执行这个命令将出现错误信息unrecognized command: s

2.3 变量varlist

[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options] varlist 表示一个变量,或者多个变量,多个变量之间用空格隔开。

. cd d:/stata9

. use auto, clear

. sum price //求价格的观察值个数,平均值,方差,最小值和最大值

. su p //变量和命令均可略写,注意到两个结果完全一样

. su t //分数据中有两个变量的开首字母为t(trunk 和turn),所以

STATA 认为t 为模糊的省略。

m ambiguous abbreviation /红色为错误信息

. sum tr tu //求trunk 和turn 变量的五数概略统计

变量名称

除以下字符不能用作变量名外,任何字母、字母与数字(单独的数字也不允许)组合均可用做变量名:

_all _b byte _coef _cons double float if in int long _n _N _pi _pred _rc _se _skip using with

基本要求如下:

_ 第一个字元可以是英文字母或, 但不能是数字;

_ 最多只能包括32 个英文字母、数字或下划线;

_ 由于STATA 保留了很多以“_ “开头的内部变量,所以最好不要用为第一个字元来定义变量。

2.4 分类操作by varlist

[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options]

如果需要分别知道国产车和进口车的价格和重量,可以采用分类操作来求得,. cd d:/stata9

. use auto, clear

. by foreign: sum price weight //分别计算国产车和进口车的价格和重量

但如果执行下面两个命令,将出现错误*/

. sort price //按价格从低到高重新排序

. by foreign: sum price weight

*not sorted

/* 系统提示没有排序,这是因为by varlist 在执行时要求内存中的数据是按照

by 后面的变量排序的。当我们用sort price 重新排序后,就打乱了原来按照

foreign 的排序,所以出现了错误提示。更正的办法是:*/

. sort foreign //按国产车和进口车排序

. by foreign: sum price weight

*更简略的方式是把两个命令用一个组合命令来写。

. by foreign, sort: sum price weight

如果不想从小到大排序,而是从大到小排序,其命令为gsort。

.gsort - price /按价格从高到低排序

. gsort foreign –price /*先把国产车都排在前,进口车排在后面,然后在国产车内再按价

格从大小到排序,在进口车内部,也按从大到小排序*/

2.5 赋值及运算=exp

[by varlist:] command [varlist] [=exp][if exp] [in range] [weight] [, options]

例:生成一个新的价格变量nprice,该变量的取值为原汽车价格变量price 的基础上涨10 元

. cd d:/stata9

. use auto, clear

. gen nprice=price+10 //生成新变量nprice,其值为price+10

. list price nprice //比较一下两个变量的取值

/*上面的命令generate(略写为gen) 生成一个新的变量,新变量的变量名为nprice,新的价格在原价格的基础上均增加了10 元。

. replace nprice=nprice-10 /*命令replace 则直接改变原变量的赋值,nprice 调减后与

price 变量取值相等*/

. list price nprice //再比较一下两个变量,相等。

2.6 条件表达式if exp

[by varlist:] command [varlist] [=exp] [if exp][in range] [weight] [, options]

例:若只想查看国产车的品牌和价格,则加入筛选条件if foreign==0 */

. cd d:/stata9

. use auto, clear

. list make price if foreign==0

*只查看价格超过1 万元的进口车(同时满足两个条件),则

. list make price if foreign==1 & price>10000

*查看价格超过1 万元或者进口车(两个条件任满足一个)

. list make price if foreign==1 | price>10000

*分类型查看价格超过1 万元的汽车的品牌和价格

. by foreign, sort: list make price if price>10000

2.7 范围筛选in range

[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options]

如果要计算较低的前10 台车的平均价格,则要先按价格排序,然后仅对前10

个车的价格求平均值

. cd d:/stata9

. use auto, clear

. sort price

. sum price in 1/5

注意“1/5”中,斜杠不是除号,而是从1 到5 的意思,即1,2,3,4,5。

如果要计算前10 台车中的国产车的平均价格,则可将范围和条件筛选联合使用。

. sum price in 1/10 if foreign==0

2.8 加权weight

[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options]

任务:下表是2005 年湖北省高考640 分及以上成绩一分一段的人数统计,第一列score 为高考分数,第二列num 为该分数段的人数。现在我们要求640 分及以

上考生的平均分数。

score num

650 193

649 26

648 23

647 16

646 21

645 26

644 32

643 23

642 38

641 29

640 38

操作:

先将上面的表格复制,然后进入STATA,执行如下命令

. clear //清空STATA

. edit

然后把光标定位在表格的第一行第一列,点右键,选择粘贴(paste),上表数据便被复制到STATA 中,退出数据编辑器

sum score //思考:得到的结果是640 分及以上考生的平均分吗?

简单地使用sum 命令得到的平均成绩显然是不正确的,因为各个分数下的人数是不一样的,正确的计算需要加权,加权的办法是

. sum score [weight=num] / *加权计算,比较该结果与sum score 的区别,

实际上,不用权重选项时,相当于权重相等。*/

. sum score [w=n] //w 为weight 的略写,n 为num 的简写,两命令等价2.9 其他可选项,options

[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options]

许多命令都有一些可选项

例如,我们不仅要计算平均成绩,还想知道成绩的中值,方差,偏度和峰度等*/

. sum score, detail

. sum score, d //d 为detail 的略写,两个命令完全等价

注意,结果中显示了1%,5%等分位数,意思是把变量从小到大排序,第1%位置

处的取值是多少,第10%的位置上的取值是多少。显然,50%位置处的取值是中

位数。此外,加了detail 选项后,还得到最小的前5 个数,最大的5 个数,以

及峰度和偏度等。

*再如,list 命令也有一些可选项

. cd d:/stata9

. use auto, clear

. list price in 1/30, sep(10) //每10 个观察值之间加一横线

. list price in 10/30, sep(2) //每2 个观察值之间加一横线

. list price, nohead //不要表头

Chapter3 数据

3.1 打开示例数据和网络数据:use

3.1.1 示例数据

示例数据为STATA 帮助文件中所用的数据,其后辍名为.dta,如果在STATA 软件当前路径下,直接用use 命令即可打开;如果不在当前路径下,则可以使用sysuse 命令打开。

. use auto,clear //打开汽车数据auto.dta

. cd d:/ //改变路径到d:/

. use auto, clear

file auto.dta not found //系统提示无法找到文件,因为auto.dta 不在d:/ r(601);

. sysuse auto,clear //无论当前路径是什么,该命令均能打开系统自带文件3.1.2 从网络获取数据

上述示例数据可能没有全部下载到你的所用的电脑中,因此简单地使用use

和sysuse 命令时,可能出现错误,如

. use nlswork, clear

file nlswork.dta not found

此时,如果确定该数据为示例数据,可以直接通过网络获取,其命令为:

. use https://www.360docs.net/doc/a812152760.html,/data/r9/nlswork//从网站获取数据,或者

. webuse nlswork, clear //与前一命令等价,从STATA 官方数据库获取数据

webuse只能从https://www.360docs.net/doc/a812152760.html,/data这一路径获取数据,如果不是

该网站的数据,webuse失效,只能把网站地址完全写出来。使用该命令时必须确保网络连接正常.

另一个网络数据较多的地方是波士登大学的数据中心,伍德里奇的《计量经

济学导论》一书中所使用的全部数据都可以通过该数据中心获得。比如

. use https://www.360docs.net/doc/a812152760.html,/ec-p/data/wooldridge/CEOSAL1

即打开教材中例2.3 中所使用的CEO 数据。

use 命令只能打开后辍名为“*.dta”格式的数据,.dta 格式以外的数据,STATA 不能直接读取,需要从外部读入,最简单而直接的办法是复制和粘贴。但是有时没有其他软件,比如,我们有SAS 格式或SPSS 格式的数据,但没有SAS 软件和SPSS 软件,此时需要用STATA 提供的其他命令或者使用transfer 数据格式转化软件。在讨论其他输入或导入数据的方法之前,我们先来学习一点数据类型的知识。

3.2 数据类型

STATA 通常把变量划分为三类:分别是数值型,字符型和日期型

3.2.1 数值变量:

用0、1、2…9 及+、–(正负号)与小数点“(.)”来表示。在输入数据时,逗号不能被识别,如1,024 应该直接写成1024.

5

-5

5.2

5.2e+3

5.2e-2

后面两个数据为科学计数法的数据,分别表示5200 和0.052.其中的e 相当

于10,因此5.2e+3 的意思是:5.2*103=5200

数值型变量按其精度区分,又有五种类型,分别是:

存贮类型最小最大 0-领域字节

--------------------------------------------------------------------- byte -127 100 +/-1 1

int -32,767 32,740 +/-1 2

long -2,147,483,647 2,147,483,620 +/-1 4

float -1.70141173319*10^38 1.70141173319*10^36 +/-10^-36 4 double -8.9884656743*10^307 8.9884656743*10^307 +/-10^-323 8

当运算精度要求很高的时候,需要将变量设置成浮点型或双精度型。

另注意1 和1.0000 的精度是不同的,前者在(0.5,1.5)区间内近似,而后者在(0.99995,1.00005)区间内近似。若多次运算反复取四舍五入,精度较低时将使计算误差迅速变大,然而,精度高时占用的内存资源较多。下面的命令有助于理解变量存贮类型变换。

. clear

. set obs 1 //将设定一个观察值

obs was 0, now 1 //提示信息说,之前系统中没有观察单位,现在有了一个. gen a=1 //生成一个新变量a,令a 取值为1

. d /*d 为describ 命令的略写,describ 命令显示数据集的属性信息,注意观察显示结果中,a 的storage type 为float 型,

浮点型为默认类型*/

Contains data

obs: 1

vars: 1

size: 8 (99.9% of memory free)

storage display value

variable name type format label variable label

a float %9.0g

Sorted by:

Note: dataset has changed since last saved

. compress //在不损害信息的基础上压缩,使数据占用空间尽可能小

a was float, now byte //a 由浮点型变为了字节型

. d // 注意a 的storage type 现在为byte 型

. replace a=101 /* 注意a 的storage type 现在自动升为int 型,

因为byte 最大只能为100*/

a was byte now int

(1 real change made)

. replace a=100

. compress

. d //重新变回到byte 型

. replace a=32741 //直接变到long 型,因为int 型最大只能到32740 . gen double b=1 //直接生成双精度变量b

. recast double a //将a 变成双精度变量b

. d //注意到a 和b 均为双精度型

3.2.2 字符串变量

字符变量通常是一些身份信息,如姓名,地名。另外,定类变量也可以用字

符变量来表示,如性别分为“男”和“女”。

字符串变量由字母或一些特殊的符号组成(如地名〈籍贯〉变量,迁出地,

住址,职业等等)。字符串变量也可以由数字来组成,但数字在这里仅代表一些符号而不再是数字。字符串变量通常以引号“”注标,而且引号一般不被视同为字符的一部分,注意这里的引号必须是英文输入状态下的引号。

字符串最多可以达244 个字符。一般用str#来表示字符的多少,如str20

表示将有20 个字符。一般三个中文字的姓名需要6 个字符。

字符型示例

“String”

“string”

” string”

”string ”

”” //特殊字符串,表示空字符,缺失值。

” ”//注意与空字符串的区别,含有一个空格

”125.27”//”125.27”由于有双引号,将被视同为字符而非数值。“$2,343.68”

“I love you”

“旺材是条狗”

注意前四个字符串均不相同,大小写是不一样的,有无空格及空格的位置不同,都表示不同的字符串。对于”125.27”这样的数值型的字符串,可以用real() 函数或者destring 命令转化成数值型变量。具体操作见3.3.1。

3.2.3 日期型变量

在STATA 中,1960 年1 月1 日被认为是第0 天,因此1959 年12 月31 日为

第-1 天,2001 年1 月25 日为15000 天。对日期型变量的讨论将在后面的时间序

3.2.4 缺失值

没有意义的计算结果显示为”.”

. display 2/0

另一种情况是,数据中含有缺失值,而STATA 默认的缺失值也用“.”来表示。在有些数据文件中,缺失值不是用“.”或者空来表示的,而是用-9996 等来表示,如果要将其全部替换为“.”,或者反之,将“.”替换为-9996,命令为:

. mvencode age,mv(-9996)

. mvdecode age,mv(-9996)

3.3 数据类型转化

任务:将destring1, destring2 和tostring 中的数据类型进行相互转化

*3.3.1 字符型转化成数值型:destring

*destring1数据中的数据全为字符型,转换为数值型

.webuse destring1, clear

.des /*注意到所有的变量存贮类型(storage type)均为字符型str#,其中#号表示字符串长度*/

Contains data from https://www.360docs.net/doc/a812152760.html,/data/r9/destring1.dta

obs: 10

vars: 5 3 Mar 2005 10:15

size: 240 (99.9% of memory free)

storage display value

variable name type format label variable label

id str3 %9s

num str3 %9s

code str4 %9s

total str5 %9s

income str5 %9s

.sum //因为所有变量为字符型,所以不能进行数值计算

.gen nincom=incom+10 //因字符不能进行四则运算,不能进行加法运算

*type mismatch //系统提示类型不匹配,因为income 为字符型,10 为数值型.destring, replace //全部转换为数值型,replace 表示将原来的变量(值)更新.sum //注意到转换为数值型后,可以求五数概略了

.gen nincom=income*1.3 //转换后,可以运算,工资终于涨了30%!

.list nincom income //工资终于涨了30%!

*----------------将字符型数据转换为数值型数据:去掉字符间的空格------------ *destring2 数据集中的data 变量为字符型,且年月日间有空格,转移为数据型

.webuse destring2, clear

.des //注意到所有的变量均为字符型str

.list date //注意到date 年月日之间均有空格

date

------------

1. 1999 12 10

2. 2000 07 08

3. 1997 03 02

4. 1999 09 00

.destring date, replace //想把date 转换成数值型,但失败了,系统提示说*date contains non-numeric characters; no replace /*由于含有非数值型字符

(即空格),因此没有更新,也即转换命令没有执行。*/ .destring date, replace ignore(“ ”)/*忽略空格,然后转换,注意这里的” “中

间有一个空格,不是””。*/

date: characters space removed; replaced as long //成功转换为long 型

.des //注意到date 的storage type 已变为long

.list date //注意到空格消失了

date

----------

1. 19991210

2. 20000708

3. 19970302

/*与date 变量类似,变量price 前面有美元符号,变量percent 后有百分号,换为数值型时需要忽略这些非数值型字符。*/

.destring price percent, gen(price2 percent2) ignore(“$ ,%”)

.list //注意到price2 前面的$号消失,percent2 后面的%号消失

date price price2 percent percent2

---------------------------------------------------------

1. 19991210 $2,343.68 2343.68 34% 34

2. 20000708 $7,23

3.44 7233.44 86% 86

.d //注意到price2 和percent2 均变为数据值型变量double 和byte

*3.3.2 数值型转化为字符型:tostring

.webuse tostring, clear /*该数据中年月日的数据类型不一样,不能直接相加

生成一个反映日期的新变量*/

.des //注意到month 为字符型,而年和日为数值型

.list

.gen date1=month+”/”+day+”/”+year //将年月日构成一个新的日期变量

type mismatch //由于month 为字符型,年和日为数值型,不同类型不能相加

r(109);

.tostring year day, replace //将年和日转化为字符型

.des //注意到,现在全部变为字符型

.gen date1=month+”/”+day+”/”+year//将年月日构成一个新的日期变量

.list //生成了一个新的变量date1,其为三个字符串和两个”/”符号连接而成.gen date2=date(date1,”mdy”) /* date()为日期函数,它以1960 年1 月1

日为第0 天,计算从那天起直到括号中指定的某天date1

一共过了多少天。”mdy”指定date1 的排列顺序,这里是

按照月日年的顺序来表示日期。*/

.list //新生成的date2 表示总天数

*小游戏:请算算你活了多少天?示例:一个生于1975 年12 月27 日的家伙,他活了?

.di date(“1975/12/27”,”ymd”)

3.4 数据显示格式:format

/*format 只控制数据的显示格式,并不改变内存中数据的大小。*/

.webuse census10,clear //美国人口普查数据

.des //第三列显示了数据的格式display format

storage display value

variable name type format label variable label

state str14 %14s State

region int %8.0g cenreg Census region

pop long %11.0g Population

medage float %9.0g Median age

*注意到, stata 变量的格式为%14s,表示右对齐,共14 个字符,%为固定用法.list in 1/4 //注意不同的显示格式:均为右对齐

state region pop medage

------------------------------------------

1. Alabama South 3893888 29.3

2. Alaska West 401851 26.1

3. Arizona West 2718215 29.2

4. Arkansas South 2286435 30.6

.format state %-14s // 该命令使stata 的显示格式左对齐,14 前面多了个负号.list in 1/4 //注意不同的显示格式,state 现在左对齐了

+------------------------------------------+

state region pop medage

------------------------------------------

1. Alabama South 3893888 29.3

2. Alaska West 401851 26.1

3. Arizona West 2718215 29.2

4. Arkansas South 2286435 30.6

.format region %-8.0g / *region 变量看起来是字符型变量,但实际上为

数据型,它也可以左对齐,同样是加一个负号.

.list in 1/4 //注意region 现在左对齐了

.format pop %11.0gc /*pop 的显示格式为%11.0g,后面加上c,则每三位数间

用逗号分开,c 为comma 的意思.*/

.list in 1/4 //结果加上了逗号,但是第五个观察值没有任何变化

state region pop medage

-------------------------------------------

1. Alabama South 3,893,888 29.3

2. Alaska West 401,851 26.1

3. Arizona West 2,718,215 29.2

4. Arkansas South 2,286,435 30.6

5. California West 23667902 29.9

*因为这个数太大,加逗号将超过11 位数,我们可以先把总的位数增加.format pop %12.0gc //把pop 显示总长度数增加到12 位

.list in 5 //现在所有的pop 都按逗号分开了

5. California West 23,667,902 29.9

.format medage %8.1f //要求所有的medage 都显示一位小数.list in 1/4

state region pop medage

--------------------------------------------

1. Alabama South 3,893,888 29.3

2. Alaska West 401,851 26.1

3. Arizona West 2,718,215 29.2

4. Arkansas South 2,286,435 30.6

.gen id=_n //生成一个新变量id,取值依次为1,2,3

.replace id=9842 in 3 //将id 的第三个变量替换为9842

.list in 1/3

state region pop medage id

--------------------------------------------

1. Alabama South 3893888 29.3 1

2. Alaska West 401851 26.1 2

3. Arizona West 2718215 29.2 9842

.format id %05.0f //对于编号,我们希望前面用零使得位数对齐.list in 1/3 //注意到通过在前面补零,所有的id 都成了5 位数。state region pop medage id

--------------------------------------------------

1. Alabama South 3893888 29.3 00001

2. Alaska West 401851 26.1 00002

3. Arizona West 2718215 29.2 09842

3.5 在STATA 中直接录入数据:input

3.5.1 菜单式操作

任务:按学号录入五个学生的经济学成绩

id economy

1 40

2 80

3 90

4 70

5 53

操作:(1)点击图标>>在打开的数据表格第一列中录入五个姓名>>在第二列中录入另五个成绩

双击var1 弹出对话框>>将变量改名为id>>在label 中写入学号>>退出弹出窗口;

双击var2 弹出对话框>>将变量改名为name>>在label 中写入姓名>>关闭数据编辑器

(2)点击图标保存数据>>给数据命令为student >>退出

在建立数据文件后,如果没有存盘,这个文件即是一个“临时的”数据文件,它将随着退出STATA 系统时而消失。当数据文件被存储在后,它将成为一个“永久性”的数据文件,用户可以在以后经常使用它而不必重新建立之。

3.5.2 命令操作

任务:按学号录入五个学生的学号和姓名

id name economy

1 John 40

2 Chris 80

3 Jack 90

4 Huang 43

5 Tom 70

操作:在command 窗口中键入(注:前面的点号不必健入,每完成一行按回车键, 黑体为命令,斜体为变量名或文件名):对于字符型变量,需要指明其为字符型并指明最大的字符长度。

? clear //清空内存

? input id str10 name economy //输入变量名,特别注意姓名前的str10.

? 1 John 40 //录入第一个学生的学号和成绩

? 2 Chris 80 //录入第二个学生的学号和成绩

? 3 Jack 90

? 4 Huang 70

? 5 Tom 53

? end //录入数据结束

? save economy //保存数据到当前路径,文件名为economy

3.5.3 程序操作

(1)打开do file editor,键入以下内容:

clear //清空内存

input id str10 name economy //输入变量名,特别注意姓名前的str10.

1 John 40 //录入第一个学生的学号和成绩

2 Chris 80

3 Jack 90

4 Huang 70

5 Tom 53

end //录入数据结束

save economy,erplace //保存数据到当前路径,文件名为economy

(2)保存程序文件为mydo

(3)点击,执行后得到数学成绩

3.6 导入其他格式数据:insheet

经常会遇到的情形是:我们有其他格式的数据,需要导入到STATA 中进行

分析,建议大家此时将其他格式数据复制到分析数据的文件目录下,然后直接用STATA 的导入数据文件命令导入原始数据,用程序模式进行处理,然后导出处理结果。这样做的最大好处是:既不会破坏最原始的数据文件,又使我们的每一步数据处理和分析过程都有迹可循。

3.6.1 insheet 命令

在本书所附数据文件中找到“3origin.xls”数据,将其打开并另存为

“3origin.csv”,(另存时请注意要选择“保存类型”下拉单,选择CSV(逗号分隔)这一项)。然后在STATA 命令窗口中用下述命令导入

. insheet using 3origin.csv, clear

也可以先将“3origin.xls”数据打开并另存为“3origin.txt”,然后用下面的命令导入

. insheet using 3origin.txt, clear

当数据中某个变量的位数特别长或者对导入数据的精度要求很高的时候,需

要在该命令后面加double 选项。

. insheet using 3origin.txt, double clear

3.6.2 infile 命令

对于“3origin.txt”或“3origin.csv”,还可用infile 命令导入STATA,此时需

要先指出变量名。尤其要注意,当变量为字符型时,要先指明。

infile id str10 name gender minority economy math using origin.txt, clear

或者

infile id str10 name gender minority economy math using origin.csv, clear

3.6.3 infix 命令

还有一种标准化的数据,每个变量的位数是确定的,不足时,前面用0 补齐,以origin.数据的后面四个变量为例,其数据格式为

114068

128052

029076

024390

037096

115385

028536

129565

如果遇到这种数据格式,需要对照数据说明导入数据,相应的命令为:

infix gender 1 minority 2 economy 3-4 math 5-6 using origin.csv, clear

其中的数字为对应的数字位数。

3.6.4 outsheet 命令

与前述三个命令相反,有时我们需要将STATA 数据导出为其他格式数据,

比如文本格式或后缀为acs 的格式:此时需要使用outsheet 命令实现,该命令的

基本格式如下。

outsheet using myresult.txt

outsheet using myresult.asc

此时建立的文件myresult.txt 第一行为变量名,第2~6 行为变量值。变量列间用Tab 键分隔。如果不希望在第一行存储变量名,则可以使用nonames 选项。如果

文件已经存在,则需要使用replace 选项,相应的命令分别为。

outsheet using myresult.asc, nonames

outsheet using myresult.asc, nonames replace

3.6.4 使用transfer 软件

Transfer 软件专用于转换不同格式的数据文件,使用起来非常方便。只需要

在input File Type 栏中选择需要转化的原数据文件类型,然后定位打开需要转化的原数据文件。再选定输出文件类型,指定输出文件的存放位置和文件名。最后

STATA面板数据模型操作命令要点

STATA 面板数据模型估计命令一览表 一、静态面板数据的STATA 处理命令 εαβit ++=x y it i it 固定效应模型 μβit +=x y it it ε αμit +=it it 随机效应模型 (一)数据处理 输入数据 ●tsset code year 该命令是将数据定义为“面板”形式 ●xtdes 该命令是了解面板数据结构 ●summarize sq cpi unem g se5 ln 各变量的描述性统计(统计分析) ●gen lag_y=L.y /////// 产生一个滞后一期的新变量

gen F_y=F.y /////// 产生一个超前项的新变量 gen D_y=D.y /////// 产生一个一阶差分的新变量 gen D2_y=D2.y /////// 产生一个二阶差分的新变量 (二)模型的筛选和检验 ●1、检验个体效应(混合效应还是固定效应)(原假设:使用OLS混合模型)●xtreg sq cpi unem g se5 ln,fe 对于固定效应模型而言,回归结果中最后一行汇报的F统计量便在于检验所有的个体效应整体上显著。在我们这个例子中发现F统计量的概率为0.0000,检验结果表明固定效应模型优于混合OLS模型。 ●2、检验时间效应(混合效应还是随机效应)(检验方法:LM统计量) (原假设:使用OLS混合模型) ●qui xtreg sq cpi unem g se5 ln,re (加上“qui”之后第一幅图将不会呈现) xttest0

可以看出,LM检验得到的P值为0.0000,表明随机效应非常显著。可见,随机效应模型也优于混合OLS模型。 ●3、检验固定效应模型or随机效应模型(检验方法:Hausman检验) 原假设:使用随机效应模型(个体效应与解释变量无关) 通过上面分析,可以发现当模型加入了个体效应的时候,将显著优于截距项为常数假设条件下的混合OLS模型。但是无法明确区分FE or RE的优劣,这需要进行接下来的检验,如下: Step1:估计固定效应模型,存储估计结果 Step2:估计随机效应模型,存储估计结果 Step3:进行Hausman检验 ●qui xtreg sq cpi unem g se5 ln,fe est store fe qui xtreg sq cpi unem g se5 ln,re est store re hausman fe (或者更优的是hausman fe,sigmamore/ sigmaless) 可以看出,hausman检验的P值为0.0000,拒绝了原假设,认为随机效应模型的基本假设得不到满足。此时,需要采用工具变量法和是使用固定效应模型。

STATA最常用命令大全

stata save命令 FileSave As 例1. 表1.为某一降压药临床试验数据,试从键盘输入Stata,并保存为Stata格式文件。 STATA数据库的维护 排序 SORT 变量名1 变量名2 …… 变量更名 rename 原变量名新变量名 STATA数据库的维护 删除变量或记录 drop x1 x2 /* 删除变量x1和x2 drop x1-x5 /* 删除数据库中介于x1和x5间的所有变量(包括x1和x5) drop if x<0 /* 删去x1<0的所有记录 drop in 10/12 /* 删去第10~12个记录 drop if x==. /* 删去x为缺失值的所有记录 drop if x==.|y==. /* 删去x或y之一为缺失值的所有记录 drop if x==.&y==. /* 删去x和y同时为缺失值的所有记录 drop _all /* 删掉数据库中所有变量和数据 STATA的变量赋值 用generate产生新变量 generate 新变量=表达式 generate bh=_n /* 将数据库的内部编号赋给变量bh。 generate group=int((_n-1)/5)+1 /* 按当前数据库的顺序,依次产生5个1,5个2,5个3……。直到数据库结束。 generate block=mod(_n,6) /* 按当前数据库的顺序,依次产生1,2,3,4,5,0。generate y=log(x) if x>0 /* 产生新变量y,其值为所有x>0的对数值log(x),当x<=0时,用缺失值代替。 egen产生新变量 set obs 12 egen a=seq() /*产生1到N的自然数 egen b=seq(),b(3) /*产生一个序列,每个元素重复#次 egen c=seq(),to(4) /*产生多个序列,每个序列从1到# egen d=seq(),f(4)t(6) /*产生多个序列,每个序列从#1到#2 encode 字符变量名,gen(新数值变量名) 作用:将字符型变量转化为数值变量。 STATA数据库的维护 保留变量或记录 keep in 10/20 /* 保留第10~20个记录,其余记录删除 keep x1-x5 /* 保留数据库中介于x1和x5间的所有变量(包括x1和x5),其余变量删除keep if x>0 /* 保留x>0的所有记录,其余记录删除

stata常见问题及解决办法个人总结笔记

1. 如何输出STATA的图,和保存? 先输入数据 (1)Twoway connected 变量1 变量2 //划出折线图 (2)twoway scatter 变量1 变量2 //划出散点图 2. 怎样在stata8中做HAUSMAN检验? 四步曲,重点在于解释结果 (1)xtreg y x , fe (2)est store fe (3)xtreg y x, re (4)hausman fe 如果拒绝,说明corr(x,ui)=0的假设是有问题的,需要重新设定RE model 后再进行检验,如果模型的设定没有问题,但检验还是拒绝原假设(p值接近0),那么就只能采用FE model 了,因为此时的RE 估计量是有偏的。 (definitely right. 当你使用stata的时候,最重要的命令不是这些是help and find it然后就能找到你的答案了) hausman检验是用来检验用fe还是re的,其原假设是re优于fe,从你的结果来看(Prob>chi2 =0.0000),应该拒绝原假设,所以应该用fe 3.stata里平方的命令怎么写? gen age=age^2 4. stata里边怎么取对数啊? gen lnx=log(x) 5.如何用STATA求自然对数?如说:ln(X^2)=-4.8536,如何求X啊? . dis sqrt(exp(-4.8536))或者dis exp(-4.8536/2) 6.关于hausman检验,结果是CHI2(2)=2355.81,prob>chi2=0.000,可以使用随机效应模型嘛? prob>chi2=0.000,is like p-value. we should reject the null, so fixed effect is preferred.Randome effect is not suggested. CHI2(2)=2355.81,就意味着拒绝原假设,从而选取固定效应模型。 7.我在做gdp一阶差分单位根检验的时候,输入的命令是ipshin dgdp,lags(1)得

Stata命令整理教学内容

Stata 命令语句格式: [by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options] 1、[by varlist:] *如果需要分别知道国产车和进口车的价格和重量,可以采用分类操作来求得, sort foreign //按国产车和进口车排序 . by foreign: sum price weight *更简略的方式是把两个命令用一个组合命令来写。 . by foreign, sort: sum price weight 如果不想从小到大排序,而是从大到小排序,其命令为gsort。 . sort - price //按价格从高到低排序 . sort foreign -price /*先把国产车都排在前,进口车排在后面,然后在国产车内再按价格从大小到排序,在进口车内部,也按从大到小排序*/ 2、[=exp]赋值运算 . gen nprice=price+10 //生成新变量nprice,其值为price+10 /*上面的命令generate(略写为gen) 生成一个新的变量,新变量的变量名为 nprice,新的价格在原价格的基础上均增加了10 元。 . replace nprice=nprice-10 /*命令replace 则直接改变原变量的赋值,nprice 调减后与price 变量取值相等*/ 3、[if exp]条件表达式 . list make price if foreign==0 *只查看价格超过1 万元的进口车(同时满足两个条件),则 . list make price if foreign==1 & price>10000 *查看价格超过1 万元或者进口车(两个条件任满足一个) . list make price if foreign==1 | price>10000 4、[in range]范围筛选 sum price in 1/5 注意“1/5”中,斜杠不是除号,而是从1 到 5 的意思,即1,2,3,4,5。 如果要计算前10 台车中的国产车的平均价格,则可将范围和条件筛选联合使用。 . sum price in 1/10 if foreign==0 5、[weight] 加权 sum score [weight=num] 其中,num为每个成绩所对应的人数 6、[, options]其他可选项 例如,我们不仅要计算平均成绩,还想知道成绩的中值,方差,偏度和峰度等*/ . sum score, detail . sum score, d //d 为detail 的略写,两个命令完全等价 . list price, nohead //不要表头 Stata 数据类型转换 1、字符型转化成数值型 destring, replace //全部转换为数值型,replace 表示将原来的变量(值)更新 destring date, replace ignore(“ ”) 将字符型数据转换为数值型数据:去掉字符间的空格destring price percent, gen(price2 percent2) ignore(“$ ,%”) 与date 变量类似,变量price 前面有美元符号,变量percent 后有百分号,换为数值型时需要忽略这些非数值型字符 2、数值型转化为字符型

让你快速上手的stata讲义

Stata简明讲义 王非 中国经济研究中心 ebwf@https://www.360docs.net/doc/a812152760.html,

〇、写在前面的话 关于学习Stata的意义,大家只需知道:目前,Stata是计量经济学、特别是微观计量经济学的主流软件。因此,Stata很重要、很有用,而大家也会在使用Stata 的过程中慢慢体会到它的特点。 本讲义取名为“Stata简明讲义”,意在突出“简”和“明”两个字。虽然讲义长达五十多页,但相比Stata的完全手册来说,还不及九牛之一毛,故为“简”。实际上,完全手册中的很多内容都鲜有人(特别是计量经济学者)问津,而本讲义列出的内容则是大家经常用到的操作;所以,“简”也有“简”的好处。即便如此,掌握这份讲义也并非易事。所谓“明”,是明晰的意思。本讲义本着“手把手教”的精神,力求把每项操作都说得具体明晰,以方便初学者(特别是没有程序操作经历的初学者)尽快上手。至于本讲义在“简明”上做得怎么样,还需要各位读者来评判。 中心的一位学长邹传伟,曾经写过一份“Stata介绍”,在网上可以下载。那份讲义比较全面,但不够具体明晰。本讲义参照那份讲义,在框架上查漏补缺,并进一步地明晰化。本讲义第二部分的“do文件”和第七部分的“残差分析”的相关内容均来自于中心的沈艳老师的相关讲义,而沈老师对于本讲义的成形给予了细致的指导。本讲义附带了一些数据文件,其中“WAGE1.dta”和“WAGEPRC.dta”均来自Wooldridge的中级计量教材的数据集,而其他数据则为作者自己的杜撰。尽管从别人那里拿来了许多好东西,但本讲义的任何错误仍源于作者自己的疏忽。 本讲义是这样安排的:第一部分讲Stata的界面,第二部分讲do文件,第三部分讲怎样把数据导入Stata,第四部分专门讲help和search命令以及帮助文件的阅读方法,第五部分讲数据的描述及管理,第六部分讲如何画图,第七部分讲初步的回归分析。

Stata学习笔记

以下命令均采用小写字母 Chapter 1 stata入门 打开数据 use "D:\Stata9\", clear 用use命令打开数据 sysuse auto,clear auto 为系统数据sysuse为打开系统数据的命令 获取帮助 Help summarize summarize为需要获取帮助对象可以改为其他的需要帮助的对象Findit summarize,net 寻找网络帮助summarize为需要获取帮助对象 Search summarize ,net 寻找网络帮助summarize为需要获取帮助对象 显示结果 Display 5+9 描述统计(summarize 可简写成sum) Use atuo,clear Summarize price 描述price的观察值个数、平均值、标准差、最小值、最大值 Sum weight summarize可简写成sum Sum weight price 同时完成上面两步 绘图 Scatter price weight scatter 为绘制散点图命令 Line price weight ,sort line 为绘制折线图命令,sort为排序,绘制折线图前需要先排序 生成新的数据(generate 可简写成gen) Clear Set obs 1000 设置观测值的组数 Gen x=_n _n 为观察值得序号 Gen y=x+100 控制结果输出显示 List n 设置屏幕滚动 Set more off 先设置此项则显示时,屏幕不停止 Set more on 先设置此项则显示时,会使显示停止 清除内存中原有内容 clear 设置文件存取路径(cd) Cd d:\stata d:\stata为路径

(完整)stata命令总结,推荐文档

stata11 常用命令 注:JB统计量对应的p大于0.05 ,则表明非正态,这点跟sktest 和 swilk 检验刚好相反;dta 为数据文件;gph 为图文件;do 为程序文件;注 意stata 要区别大小写;不得用作用户变量名: _all _n _N _skip _b _coef _cons _pi _pred _rc _weight double float long int in if using with 命令:读入数据一种方式 input x y 14 2 5.5 3 6.2 47.7 58.5 end su/summarise/sum x 或su/summarise/sum x,d 对分组的描述: sort group by group:su x %%%%% tabstat economy,stats(max)%返回变量economy的最大值 %%stats括号里可以是:mean,count(非缺失观测值个数),sum(总 和),max,min,range , %% sd ,var ,cv(变易系数=标准差/ 均值),skewness,kurtosis , median,p1(1 %分位 %% 数,类似地有p10, p25, p50, p75, p95, p99),iqr(interquantile range = p75 –p25) _all %描述全部 _N 数据库中观察值的总个数。 _n 当前观察值的位置。 _pi 圆周率π 的数值。 list gen/generate % 产生数列egen wagemax=max(wage) clear use by(分组变量)

stata简单讲义第六讲

线性相关和回归 赵耐青 在实际研究中,经常要考察两个指标之间的关系,即:相关性。现以体重与身高的关系为例,分析两个变量之间的相关性。要求身高和体重呈双正态分布,既:在身高和体重平均数的附近的频数较多,远离身高和体重平均数的频数较少。 样本相关系数计算公式(称为Pearson 相关系数): ) () () )((2 2 YY XX XY L L L Y Y X X Y Y X X r = ----= ∑ ∑ ∑ (1) 1. 考察随机模拟相关的情况。 显示两个变量相关的散点图程序simur.ado (本教材配套程序,使用见前言)。命令为simur 样本量 总体相关系数 如显示样本量为100,ρ=0的散点图 本例命令为simur 100 0

如显示样本量为200,ρ=0.8的散点图本例命令为simur 200 0.8 如显示样本量为200,ρ=0.99的散点图本例命令为simur 200 0.99

如显示样本量为200,ρ=-0.99的散点图 本例命令为simur 200 -0.99 例1. 测得某地15名正常成年男子的身高x(cm)、体重y(kg)如试计算x和y之间的相关系数r并检验H0:ρ=0 vs H1: ρ≠0。 α=0.05

数据格式为 176.0 69.0 175.0 74.0 172.0 68.0 170.0 64.0 173.0 68.5 168.0 56.0 172.0 54.0 170.0 62.0 172.0 63.0 173.0 67.0 168.0 60.0 171.0 68.0 172.0 76.0 173.0 65.0 Stata命令pwcorr 变量1 变量2 …变量m,sig 本例命令pwcorr x y,sig pwcorr x y,sig Pearson相关系数=0.5994,P值=0.0182<0.05,因此可以认为身高与体重呈正线性相关。

Stata笔记-北京科技大学

改颜色edit-preference-general prefernce-classic 下面命令框-右键-font-改字号 命令cd d:\ 改到d盘(change directory) dir查询d盘有什么 sysuse auto 系统自带汽车数据,数据变量(字段)显示在右上角 br(owse) 浏览数据(字符型红色,数值型黑色,蓝色-右键-value labels-hide all labels标签隐藏) h(elp) li(st) 告诉你命令怎么用,下面有例子 左边双击执行,单击复制到命令框 order price mpg(单击右边的变量) order make-foreign 改变变量顺序,从make到foreign g(enerate) new=rep78-trunk 输出新变量(rep78,trunk是字段,可单击选择,"."表示缺省,加减乘除+-*/) list if new==14 (==为等于,=为赋值,可以点击more) li(st) if new2>=14 & new2<24 (按q可以退出,即quit) replace new3=rep78 (输错了替换) drop new new2 new3删除变量 list if new>10000 list make if new<10000|new>2000 (竖线表示或者,回车上面那个) !=表示不等于 左边命令,右键save save data 文件名为data sysuse auto preserve reserve save auto2 保存时不需加后缀,删除时带后缀.dta sort price从小到大 gsort price 都可以,比较随意 gsort -trunk price (默认加号,为排序) order make new (将new排到第二位) aorder (alphabetic 按字母顺序排序) disp(lay) sin(1) 作为计算器使用 ln以e为底 ----------------3.13--------- 锐思数据库选择数据 -----非金融行业负债表---- 左边-财务报表-非金融行业 合并标识-1合并报表 调整标识-1 报表类型-q4、信息来源-q4 公司类别-20-定期报告 信息来源:q4 a股股票代码

5分钟速学stata面板数据回归(初学者超实用!)

5分钟速学stata面板数据回归(超实用!) 第一步:编辑数据。 面板数据的回归,比如该回归模型为:Y it=β0+β1X1it+β2X2it+β3X3it+εt,在stata中进行回归,需要先将各个变量的数据逐个编辑好,该模型中共有Y X1 X2 X3三个变量,那么先从Y的数据开始编辑,将变量Y的面板数据编辑到stata软件中,较方便的做法是,将excel的数据直接复制到stata软件的数据编辑框中,而excel中的数据需要如下图编辑: 从数据的第二行开始选中20个样本数据,如图:

直接复制粘贴至stata中的data editor中,如图: 第二步:格式调整。 首先,请将代表样本的var1Y变量数据是选20个省份5年的数据为样本,那么口令为rename var1 province 。例如:本例中的Y变量数据编辑接下来需要输入口令为reshape long var,i(province) 其中,var代表的是所有的年份(var2,var3,var4,var5,var6),转化后格式如图: 转化成功后,继续重命名,其中_j这里代表原始表中的年份,var代表该变量的名称

例如,我们编辑的是Y变量的数据,所以口令3和口令4的输入如下: 口令3:rename _j year 口令4:rename var taxi (注:taxi就是Y变量,我们用taxi表示Y) 命名完,数据编辑框如下图所示。 第三步:排序。 例如,本例中的Y变量(taxi),是20个省份和5年的面板数据, 那么口令4为sort province year (虽意思是将province按升序排列,然后再根据排好的province数列排year这一列升序排列。然很多时候在执行sort之前,数据已经符合排序要求了,但为以防万一,请务必执行此操作) 第三步:保存。

5分钟搞定Stata面板数据分析

【原创】5分钟搞定Stata面板数据分析简易教程ver2.0作者:张达 5分钟搞定Stata面板数据分析 简易教程 步骤一:导入数据 原始表如下, 数据请以时间(1998 ,1999,2000, 2001 ??)为横轴,样本名(北京,天津,河北??) 为纵轴 1 裁*■■別1A I 11 ■u 9K ILEXxl- V,j si ao LL B- iic190 ..1( HJ曲1 1 g力?r4 々■l* Mfl 1 KM J| JgRi MM3icm*w II7QQ -HQ SiqD tuff 1 'C4 3 4 IftJV -mi KH>loogi liW (0M 3M9WH jaii I MO Kai W w ■齐itm xm fill OTI Mil taiK ■5W?U|J TXE HH sia心?9 f Id 叼m in a* ft I*■JtaC如M~4 気Hi A|$A rm inoo IM? livra.w vtatr1IJMj X#*4>t1| 筑?BF7 ■?|!N I9*V1IRV gw 1W1VJ I-J H itW Ml ? 稠申审砂y li>M l>R Md w VIM e> mu IM HM 內)944 w 命■ n I L BII i mi 靜Ml hw w 3K:1ST? *7^ FJE inm ifini uni 4 5w 心 HtJ TW JTfl 9MI*HAS ■ilJto KO >4*461/M3 1 <141*11诃却4LJt 4ktt VM匸F w g ivt E4M laM ■ii T PD w im W i.JV 1 P w L*l 1tiZF MM7 <1 H1! liyi 将中文地名替换为数字。

stata命令大全(全)

*********面板数据计量分析与软件实现********* 说明:以下do文件相当一部分内容来自于中山大学连玉君STATA教程,感谢他的贡献。本人做了一定的修改与筛选。 *----------面板数据模型 * 1.静态面板模型:FE 和RE * 2.模型选择:FE vs POLS, RE vs POLS, FE vs RE (pols混合最小二乘估计) * 3.异方差、序列相关和截面相关检验 * 4.动态面板模型(DID-GMM,SYS-GMM) * 5.面板随机前沿模型 * 6.面板协整分析(FMOLS,DOLS) *** 说明:1-5均用STATA软件实现, 6用GAUSS软件实现。 * 生产效率分析(尤其指TFP):数据包络分析(DEA)与随机前沿分析(SFA) *** 说明:DEA由DEAP2.1软件实现,SFA由Frontier4.1实现,尤其后者,侧重于比较C-D与Translog生产函数,一步法与两步法的区别。常应用于地区经济差异、FDI溢出效应(Spillovers Effect)、工业行业效率状况等。 * 空间计量分析:SLM模型与SEM模型 *说明:STATA与Matlab结合使用。常应用于空间溢出效应(R&D)、财政分权、地方政府公共行为等。 * --------------------------------- * --------一、常用的数据处理与作图----------- * --------------------------------- * 指定面板格式 xtset id year (id为截面名称,year为时间名称) xtdes /*数据特征*/ xtsum logy h /*数据统计特征*/ sum logy h /*数据统计特征*/ *添加标签或更改变量名 label var h "人力资本" rename h hum *排序 sort id year /*是以STATA面板数据格式出现*/ sort year id /*是以DEA格式出现*/ *删除个别年份或省份 drop if year<1992 drop if id==2 /*注意用==*/ *如何得到连续year或id编号(当完成上述操作时,year或id就不连续,为形成panel格式,需要用egen命令) egen year_new=group(year) xtset id year_new **保留变量或保留观测值 keep inv /*删除变量*/ **或 keep if year==2000 **排序 sort id year /*是以STATA面板数据格式出现 sort year id /*是以DEA格式出现 **长数据和宽数据的转换 *长>>>宽数据 reshape wide logy,i(id) j(year)

stata学习笔记

经济数据的特点与类型。 1、横截面数据:多个经济个体的变量在同一时间点上的取值,如2012年中国各省的GDP 2、时间数列数据:指的是某个经济个体的变量在不同时点上的取值,如1978-2012年山东 省每年的GDP 3、面板数据:多个经济个体的变量在不同时点上的取值,如1978-2012年中国各省的GDP 小样本OLS(最小二乘法):单一方程线性回归最常见方法 条件:解释变量与扰动项正交、扰动项无自相关、同方差。 拟合优度:衡量线性回归模型对样本数据的拟合程度(R2),越高说明模型拟合程度越好。单系数T检验:对回归方程扰动项的具体概率进行假设 显著性水平进行检验 F检验:整个回归方程是否显著 STATA操作简介: 如果数据中包含1949-10-01或1949/10/01的时间变量,导入stata后可能会被视为字符串,因此对于日度数据,可以使用命令gen newvar=date(varname,YMD),将其转换为整数日期变量,其中YMD说明原始数据的格式为年月日,如果原始数据的格式为月日年则使用MDY;对于月度数据则gen newvar=monthly(varname,YM)。 .describe:数据的概貌.drop keep:删除和保留 .su:统计特征Pwcorr:变量之间相关系数 Star(.05):5%显著性水平gen:产生 g intc=log(tc):取自然对数. reg:OLS回归 .Vce:协方差矩阵reg。。。,noc表示在进行回归时不要常数项 大样本OLS:只要求解释变量与同期的扰动项正交即可Robust:稳健标准误,如果存在异方差,则应使用稳健标准误

[推荐] stata基本操作汇总常用命令

[推荐] Stata基本操作汇总——常用命令 help和search都是查找帮助文件的命令,它们之间的 区别在于help用于查找精确的命令名,而search是模糊查找。 如果你知道某个命令的名字,并且想知道它的具体使用方法,只须在stata的命令行窗口中输入help空格加上这个名字。回车后结果屏幕上就会显示出这个命令的帮助文件的全部 内容。如果你想知道在stata下做某个估计或某种计算,而 不知道具体该如何实现,就需要用search命令了。使用的 方法和help类似,只须把准确的命令名改成某个关键词。回车后结果窗口会给出所有和这个关键词相关的帮助文件名 和链接列表。在列表中寻找最相关的内容,点击后在弹出的查看窗口中会给出相关的帮助文件。耐心寻找,反复实验,通常可以较快地找到你需要的内容.下面该正式处理数据了。我的处理数据经验是最好能用stata的do文件编辑器记下你做过的工作。因为很少有一项实证研究能够一次完成,所以,当你下次继续工作时。能够重复前面的工作是非常重要的。有时因为一些细小的不同,你会发现无法复制原先的结果了。这时如果有记录下以往工作的do文件将把你从地狱带到天堂。因为你不必一遍又一遍地试图重现做过的工作。在stata 窗口上部的工具栏中有个孤立的小按钮,把鼠标放上去会出

现“bring do-file editor to front”,点击它就会出现do文件编 辑器。 为了使do文件能够顺利工作,一般需要编辑do文件的“头”和“尾”。这里给出我使用的“头”和“尾”。capture clear (清空内存中的数据)capture log close (关闭所有 打开的日志文件)set more off (关闭more选项。如果打开该选项,那么结果分屏输出,即一次只输出一屏结果。你按空格键后再输出下一屏,直到全部输完。如果关闭则中间不停,一次全部输出。)set matsize 4000 (设置矩阵的最大阶数。我用的是不是太大了?)cd D: (进入数据所在的盘符和文件夹。和dos的命令行很相似。)log using (文件名).log,replace (打开日志文件,并更新。日志文件将记录下所有文件运行后给出的结果,如果你修改了文件内容,replace选项可以将其更新为最近运行的结果。)use (文件名),clear (打开数据文件。)(文件内容)log close (关闭日志文件。)exit,clear (退出并清空内存中的数据。) 实证工作中往往接触的是原始数据。这些数据没有经过整理,有一些错漏和不统一的地方。比如,对某个变量的缺失观察值,有时会用点,有时会用-9,-99等来表示。回归时如果 使用这些观察,往往得出非常错误的结果。还有,在不同的数据文件中,相同变量有时使用的变量名不同,会给合并数

复旦大学stata精华学习笔记

Stata: 输出regression table到word和excel 1. 安装estout。最简单的方式是在stata的指令输入: ssc install estout, replace EST安装的指导网址是:https://www.360docs.net/doc/a812152760.html,/bocode/e/estout/installation.html 2.跑你的regression 3.写下这行指令esttab using test.rtf,然后就会出现个漂亮的表格给你(WORD 文档)。只要再小幅修改,就可以直接用了。这个档案会存在my document\stata 下。如果你用打开的是一个stata do file,结果会保存到do文件所在文件夹中。如果要得到excel文件,就把后缀改为.xls或者.csv就可以了 4.跑多个其实也不难,只要每跑完一个regression,你把它取个名字存起来:est store m1。m1是你要改的,第一个model所以我叫m1,第二个的话指令就变成est store m2,依次类推。 5.运行指令:esttab m1 m2 ... using test.rtf就行了。 异方差的检验: Breusch-Pagan test in STATA: 其基本命令是:estat hettest var1 var2 var3 其中,var1 var2 var3 分别为你认为导致异方差性的几个自变量。是你自己设定的一个 滞后项数量。 同样,如果输出的P-Value 显著小于0.05,则拒绝原假设,即不存在异方差性。 White检验: 其基本命令是在完成基本的OLS 回归之后,输入 imtest, white 如果输出的P-Value 显著小于0.05,则拒绝原假设,即不存在异方差性 处理异方差性问题的方法: 方法一:WLS WLS是GLS(一般最小二乘法)的一种,也可以说在异方差情形下的GLS就是WLS。在WLS下,我们设定扰动项的条件方差是某个解释变量子集的函数。之所以被称为加权最小二乘法,是因为这个估计最小化的是残差的加权平方和,而上述函数的倒数恰为其权重。 在stata中实现WLS的方法如下: reg (被解释变量)(解释变量1)(解释变量2)…… [aweight=变量名]

常用到的stata命令

常用到的sta命令 闲话不说了。help和search都是查找帮助文件的命令,它们之间的区别在于help用于查找精确的命令名,而search是模糊查找。如果你知道某个命令的名字,并且想知道它的具体使用方法,只须在sta的命令行窗口中输入help空格加上这个名字。回车后结果屏幕上就会显示出这个命令的帮助文件的全部内容。如果你想知道在sta下做某个估计或某种计算,而不知道具体该如何实现,就需要用search命令了。使用的方法和help类似,只须把准确的命令名改成某个关键词。回车后结果窗口会给出所有和这个关键词相关的帮助文件名和链接列表。在列表中寻找最相关的内容,点击后在弹出的查看窗口中会给出相关的帮助文件。耐心寻找,反复实验,通常可以较快地找到你需要的内容。 下面该正式处理数据了。我的处理数据经验是最好能用sta的do文件编辑器记下你做过的工作。因为很少有一项实证研究能够一次完成,所以,当你下次继续工作时。能够重复前面的工作是非常重要的。有时因为一些细小的不同,你会发现无法复制原先的结果了。这时如果有记录下以往工作的do文件将把你从地狱带到天堂。因为你不必一遍又一遍地试图重现做过的工作。在sta窗口上部的工具栏中有个孤立的小按钮,把鼠标放上去会出现“bring do-file editor to front”,点击它就会出现do文件编辑器。 为了使do文件能够顺利工作,一般需要编辑do文件的“头”和“尾”。这里给出我使用的“头”和“尾”。 /*(标签。简单记下文件的使命。)*/ capture clear(清空内存中的数据) capture log close(关闭所有打开的日志文件) set mem 128m(设置用于sta使用的内存容量) set more off(关闭more选项。如果打开该选项,那么结果分屏输出,即一次只输出一屏结果。你按空格键后再输出下一屏,直到全部输完。如果关闭则中间不停,一次全部输出。) set matsize4000(设置矩阵的最大阶数。我用的是不是太大了?)

stata笔记要点

1.一般检验 假设系数为 0,t 比较大则拒绝假设,认为系数不为 0. 假设系数为 0,P 比较小则拒绝假设,认为系数不为 0. 假设方程不显著,F 比较大则拒绝假设,认为方程显著。 2.小样本运用 OLS 进行估计的前提条件为: (1)线性假定。即解释变量与被解释变量之间为线性关系。这一前提可以通过将非线性转换为线性方程来解决。 (2)严格外生性。即随机扰动项独立于所有解释变量:与解释变量之间所有时候都是正交关系,随机扰动项期望为 0。(工具变量法解决) (3)不存在严格的多重共线性。一般在现实数据中不会出现,但是设置过多的虚拟变量时,可能会出现这种现象。Stata 可以自动剔除。 (4)扰动项为球型扰动项,即随即扰动项同方差,无自相关性。 3.大样本估计时,一般要求数据在 30 个以上就可以称为大样本了。大样本的前提是 (1)线性假定 (2)渐进独立的平稳过程 (3)前定解释变量,即解释变量与同期的扰动项正交。 (4)E(XiXit)为非退化矩阵。 (5)gt 为鞅差分序列,且其协方差矩阵为非退化矩阵。 与小样本相比,其不需要严格的外生性和正太随机扰动项的要求。 4.命令 稳健标准差回归:reg y x1 x2 x3, robust 回归系数与 OLS 一样,但标准差存在差异。如果认为存在异方差,则使用稳健标准差。使用稳健标准差可以对大样本进行检验。 只要样本容量足够大,在模型出现异方差的情况下,使用稳健标准差时参数估计、假 设检验等均可正常进行,即可以很大程度上消除异方差带来的副作用 对单个系数进行检验:test lnq=1 线性检验:testnl_b[lnpl]=_b[lnq]^2 5.如果回归模型为非线性,不方便使用 OLS,则可以采取最大似然估计法(MLE),或者非线 性最小二乘法(NLS) 6.违背经典假设,即存在异方差的情况。截面数据通常会出现异方差。 因此检验异方差可以: (1)看残差图,但只是直观,可能并不准确。 rvfplot(residual-versus-fitted plot)与拟合值的散点图 rvpplot varname(residual-versus-predictor plot)与解释变量的散点图 扰动项的方差随观测值而变动,表示可能存在异方差。 (2)怀特检验: estat imtest,white(post-estimation information matrix test) P比较小,则拒绝同方差假设,表示存在异方差,不能用OLS。反之则证明为同方差。 (3)BP 检验 estat hettest,iid (默认设置为使用拟合值 y^) estat hettest, rhs iid (使用方程右边的解释变量,而不是 y^)

Stata常用15条命令

【命令1】:导入数据 一般做实证分析使用的是excel中的数据,其后缀名为.xls,需要将其修改为.csv insheet using name.csv, clear 【命令2】:删除重复变量 sort var1 var2 duplicatesdrop var1 var2, force 【命令3】:合并数据 use data1, clear merge m:m var1 var2 using data2 drop if _merge==2 drop if _merge==1 drop _merge 【命令4】:描述性统计分析 tabstat var1var2, stat(n min mean median p25 p75 max sd), if groupvar==0 or 1 输出到word中: logout, save(name) word replace: tabstat var, stat(n min mean p50 max sd) col(stat)f(%9.2g) 【命令5】:结果输出 安装 ssc install estout, replace 单个回归 reg y x esttab using name.rtf, compress nogap r2 ar2 star(* 0.1 ** 0.05 *** 0.01) 多个回归一起 reg y x1 est store m1 reg y x2 est store m2 esttab m1 m2 using name.rtf, compress nogap r2 ar2 star(* 0.1 ** 0.05 *** 0.01)

stata简单讲义第五讲

Stata软件基本操作和数据分析入门 第五讲多组平均水平的比较 赵耐青 一、复习和补充两组比较的统计检验 1. 配对设计资料(又称为Dependent Samples) a)对于小样本的情况下,如果配对的差值资料服从正态分布,用配对t检验 (ttest 差值变量=0) b)大样本的情况下,可以用配对t检验 c)小样本的情况下,并且配对差值呈偏态分布,则用配对符号秩检验(signrank 差值变量=0) 2. 成组设计(Two Independent Samples) a)如果方差齐性并且大样本情况下,可以用成组t检验(ttest 效应指标变 量,by(分组变量)) b)如果方差齐性并且两组资料分别呈正态分布,可以用成组t检验 c)(Ranksum test)

二、多组比较 1. 完全随机分组设计(要求各组资料之间相互独立) a)方差齐性并且独立以及每一组资料都服从正态分布(小样本时要求),则采用 完全随机设计的方差分析方法(即:单因素方差分析,One Way ANOV A)进 行分析。 b)方差不齐或小样本情况下资料偏态,则用Kruskal Wallis 检验(H检验) 例5.1 为研究胃癌与胃粘膜细胞中DNA含量(A.U)的关系,某医师测得数据如下,试问四 组人群的胃粘膜细胞中平均DNA含量是否相同? 组别group DNA含量(A.U) 浅表型胃炎 1 9.81 12.73 12.29 12.53 12.95 9.53 12.6 8.9 12.27 14.26 10.68 肠化生 2 14.61 17.54 15.1 17 13.39 15.32 13.74 18.24 13.81 12.63 14.53 16.17早期胃癌 3 23.26 20.8 20.6 23.5 17.85 21.91 22.13 22.04 19.53 18.41 21.48 20.24

(完整)stata命令总结,推荐文档

stata11常用命令 注:JB统计量对应的p大于0.05,则表明非正态,这点跟sktest和swilk 检验刚好相反; dta为数据文件; gph为图文件; do为程序文件; 注意stata要区别大小写; 不得用作用户变量名: _all _n _N _skip _b _coef _cons _pi _pred _rc _weight double float long int in if using with 命令: 读入数据一种方式 input x y 1 4 2 5.5 3 6.2 4 7.7 5 8.5 end su/summarise/sum x 或 su/summarise/sum x,d 对分组的描述: sort group by group:su x %%%%% tabstat economy,stats(max) %返回变量economy的最大值 %%stats括号里可以是:mean,count(非缺失观测值个数),sum(总和),max,min,range, %% sd,var,cv(变易系数=标准差/均值),skewness,kurtosis,median,p1(1%分位 %% 数,类似地有p10, p25, p50, p75, p95, p99),iqr(interquantile range = p75 – p25) _all %描述全部 _N 数据库中观察值的总个数。 _n 当前观察值的位置。 _pi 圆周率π的数值。 list gen/generate %产生数列 egen wagemax=max(wage) clear use by(分组变量)

相关文档
最新文档