当前位置:
文档之家› chap13_stata面板数据分析
chap13_stata面板数据分析
这样,利用“wage.dta”的数据,我们会讲解组间效应模
型的回归、固定效应和随机效应模型的拟合、Hausman检 验以及模型预测等内容。
实验操作指导
1 组间效应模型
对于“wage.dta”的数据,我们要分析受教育年数、年龄、工作年数、
现有岗位的任职时间、是否是黑人、是否居住在SMSA区、是否生活 在南方等因素对工资收入的影响。考虑到年龄、工作年数、现有岗位 任职时间等因素对工资收入的影响可能不是线性的,我们先生成这三 个变量的平方项,并在模型中包括这三个变量的水平项和平方项。输 入命令: gen age2=age*age gen exp2=ttl_exp*ttl_exp gen tenure2=tenure*tenure 我们生成变量age、ttl_exp和tenure的平方项,并分别将其命名为age2、 exp2和tenure2。 此外,我们需要由变量race生成一个虚拟变量,来表示是否是黑人。 输入命令: gen byte black = race==2 这里,我们生成新变量black,并令其类型为type。注意,race后为两 个等号。该命令的含义为,对race是2的(黑人)观测值,我们令 black的值为1;对race取其他值的观测值,我们令black的值为0。也就 是说新生成的变量black为虚拟变量,1表示黑人,0表示其他人种。
对于“wage.dta”的数据,我们下面进行固定效应回归。输入命令: xtreg ln_wage grade age age2 ttl_exp exp2 tenure tenure2 black
not_smsa south, fe 这里,选项fe表明是进行固定效应回归分析。
3 随机效应模型
对于“wage.dta”的数据,我们要知道其数据分布情况,
可输入命令: xtdescribe
4 显示面板数据的分布频率 获得面板数据分布频率的基本命令为: xttab varname [if ] 其中,xttab是“计算面板数据分布频率”的基本命令,
varname代表变量的名称,if代表条件语句。xttab命令实 际是tabulate命令的扩展,该命令还会给出组内和组间的 分布频率。
利用“wage.dta”的数据,我们进行随机效应的回归分析。输入命令: xtreg ln_wage grade age age2 ttl_exp exp2 tenure tenure2 black not_smsa south, re 其中,选项re表明进行随机效应回归分析。因为这是默认选项,所以可以省略。
实验操作指导
1 面板数据的设定 与时间序列分析类似,在对面板数据进行分析之前,我们要先
对面板数据进行设定。只有定义过面板数据之后,才能使用相 关的面板数据命令。设定面板数据的命令有三种: ① xtset panelvar ② xtset panelvar timevar [, tsoptions] ③ tsset panelvar timevar [, tsoptions] 其中,xtset是“定义面板数据”的基本命令,panelvar代表截面 变量的名称,timevar代表时间变量的名称,tsoptions代表其他 选项。tsset作为定义时间序列的基本命令,也可以用来定义面 板数据,如③所示。此外,可用的tsoptions选项与十二章中时 间序列变量的设定相同,详见表12.2和表12.3。
我们要获得“wage.dta”中变量msp的转移概率,可输入
命令: xttrans msp
6 面板数据绘图 对面板数据的各个截面分别绘制时间序列图的基本命令为: xtline varlist [if] [in] [, panel_options] 其中,xtline是“面板数据绘图”的基本命令,varlist代表变量的名称, if代表条件语句,in代表范围语句,panel_options代表其他选项。选 项主要包括i(varname_i)、t(varname_t)和overlay。 默认情况下,xtline会对各个截面分别作图,y轴变量为varlist,x轴变 量为时间变量。选项i()和t()可以指定新的截面变量和时间变量来作图, 且varname_i可以为字符串型,varname_t的值也可以不是整数。但要 求选项i()和t()同时设定。此外,如果设定选项overlay,各个截面会被 绘制到一幅图中。
在第一种格式当中,我们只设定了截面变量,这样,每一截面中,各
个观测值的顺序是无关紧要的。例如,我们有对多个家庭的调查数据, 每个家庭是一个截面,而家庭的各个成员是截面内的观测值,这种情 况下,我们就不必设定时间变量。 第二种和第三种定义面板数据的格式是等价的。这两种情况下,每一 截面中的观测值会被按照时间变量进行排序。这时,我们还可以使用 stata的各种时间序列算子,像滞后算子“L.”、领先算子“F.”等。 需要注意的是,截面变量和时间变量都必须为数值型,还要是整数。 如果某个变量是字符串型,我们可以通过如下命令将其转换为数值型: encode varname, gen(newvar) 其中,命令encode表示生成带标签的数值变量,varname是原字符串 变量的名称,生成的新变量命名为newvar,其类型为数值型,且每个 数值以原变量varname的值为标签。
我们要获得“wage.dta”中变量msp的分布频率,可输入
命令: xttab msp
5 显示面板数据的转移概率 获得面板数据转移概率的基本命令为: xttrans varname [if] [, freq] 其中,xttrans是“计算面板数据转移概率”的基本命令,
varname代表变量的名称,if代表条件语句,选项freq表示 同时显示频数。
进行完这些变换之后,下面,我们进行组间回归。输入命
令: xtreg ln_wage grade age age2 ttl_exp exp2 tenure tenure2 black not_smsa south, be 这里,被解释变量为ln_w,解释变量包括grade、age、 age2、ttl_exp、exp2、tenure、tenure2、black、 not_smsa和south,选项be表示进行组间估计。
2 固定效应模型 获取固定效应估计量的命令与组间效应模型类似,为: xtreg depvar [indepvars] [if] [in] [weight], fe [FE_options]
其中,xtreg代表“拟合面板数据模型”的基本命令语句,选项fe表明
要获取固定效应估计量。FE_options代获取固定效应估计量的其他 选项,主要有level(#)和vce(type),标准差的类型可以是conventional、 robust、cluster clustvar、bootstrap和 jackknife。这里,设定稳健标 准差vce(robust)与聚类稳健的标准差vce(cluster panelvar)效果是一样 的。其中,panelvar代表截面变量。
描述。命令为: xtdescribe [if] [in] [, options] 其中,xtdescribe是“显示面板数据结构”的基本命令,if 代表条件语句,in代表范围语句,options为其他选项。可 用的选项包括patterns(#)和width(#)。patterns(#)用于指 定显示结构的种数,默认为patterns(9);而width(#)用于 指定每一行的显示宽度,默认为width(100)。
varlist代表变量的名称,if代表条件语句。xtsum命令实际 是summarize命令的扩展,该命令还会给出组内和组间的 描述统计量。
我们要获得“wage.dta”中变量hours的描述统计量,可输
入命令: xtsum hours
3 显示面板数据的结构 为了直观地了解面板数据的分布,我们可以对其结构进行
主要内容
面板数据的基本操作
固定效应与随机效应模型 长面板模型
面板工具变量法
动态面板模型 面板数据的离散选择模型 面板数据的计数模型 随机效应tobit模型
实验13-1: 面板数据的基本操作
实验基本原理 在利用stata对面板数据进行分析之前,我们通常需要对截 面变量和时间变量进行定义。只有定义之后,我们才可以 使用相关的面板数据分析命令以及各种时间序列算子。 另外,在对面板数据进行建模之前,我们有时会希望对数 据有一个直观的了解,像观察面板数据各截面的最大值、 最小值等描述统计量,或者是了解数据的结构和分布等。 对于这些,我们都可以通过stata的命令来实现。
7 长宽面板数据的转换
实验13-2:固定效应与随机效应模型
实验基本原理
实验内容及数据来源 本实验中,我们继续使用实验13-1所用的数据文件,即本书
附带光盘data文件夹下的“wage.dta”工作文件。
利用该面板数据,我们要分析受教育年数、年龄、工作年
数、现有岗位的任职时间、是否是黑人、是否居住在 SMSA区、是否生活在南方等因素对工资收入的影响。
对于数据文件“wage.dta”,我们定义idcode为截面变量,year为时间
变量。输入命令: xtset idcode year
2 获得面板数据的描述统计量 获得面板数据描述统计量的基本命令为: xtsum [varlist] [if ] 其中,xtsum是“计算面板数据描述统计量”的基本命令,
对于截面数比较少的面板数据,进行作图观察比较会很直观。但当截
面数非常多时,作图观察的意义就不大了。考虑到工作文件 “wage.dta”有4711个截面,我们这里用变量hours的前4个截面作图进 行说明。输入命令: xtline hours in 1/50 因为前50个观测值构成了前4个截面,这样,通过范围语句“in 1/50” 我们可以得到前4个截面中变量hours的时间趋势图。