Chp8 Panel Data
一直想把看Panel模型时的感悟整理成笔记,但终因懒惰而未能成行。今天终于下决心开了个头,可遗憾的是,这个开头却是从本章的结尾写起,因为这一部分最容易写。不过,凡事有了好的开头基本上也算成功一半了,所以后面的整理工作还要有劳各位的督促。文中的不足还望不吝指出。
8.1简介
8.2一般模型
8.2.1固定效应模型(Fixed Effect Model)
8.2.2随机效应模型(Random Effect Model)
8.3自相关性
8.4动态Panel Data
8.5门槛Panel Data
8.6非稳定Panel Data及协整
variable什么意思中文8.7Panel V AR
8.8Stata8.0实现
在介绍了Panel Data的基本理论后,下面我们介绍如何使用STATA8.0软件包来实现模型的估计。前面我们已经提到,Panel Data具有如下数据存储格式:
company year invest mvalue
11951755.94833.0
11952891.24924.9
119531304.46241.7
119541486.75593.6
21951588.22289.5
21952645.52159.4
21953641.02031.3
21954459.32115.5
31951135.21819.4
31952157.32079.7
31953179.52371.6
31954189.62759.9
其中,变量company和year分别为截面变量和时间变量。显然,通过这两个变量我们可以非常清楚地确定panel data的数据存储格式。因此,在使用STATA8.0估计模型之前,我们
必须告诉它截面变量和时间变量分别是什么,所用的命令为tsset1,命令格式如下:
tsset panelvar timevar
这里需要指出的是,由于Panel Data本身兼具截面数据和时间序列二者的特性,所以对时间序列进行操作的运算同样可以应用到Panel Data身上。这一点在处理某些数据时显得非常方便。如,对于上述数据,我们想产生一个新的变量Lag_invest,也就是invest的一阶滞后,那么我们可以采用如下命令:
gen Lag_invest = L.invest
得到的新的数据为:
company year invest Lag_invest mvalue
1 1951 755.9 .4833.0
1 195
2 891.2 755.9 4924.9
1 1953 1304.4 891.
2 6241.7
1 1954 1486.7 1304.4 5593.6
2 1951 588.2 .2289.5
2 1952 645.5 588.2 2159.4
2 195
3 641.0 645.5 2031.3
2 1954 459.
3 641.0 2115.5
3 1951 135.2 .1819.4
3 1952 157.3 135.2 2079.7
3 1953 179.5 157.3 2371.6
3 195
4 189.6 179.
5 2759.9
当然,按照这样的思路,我们还可以产生某个变量的移动平均、差分等。总之,凡是可以应用到时间序
列上的命令,基本上都可以应用到Panel Data中来。在完成了上述设定后,我们就可以进行基于Panel Data的数据描述性统计和模型的估计了。
8.8.1Panel Data样本描述性统计
在正式进行模型的估计之前,我们必须对样本的基本分布特性有一个总体的了解。对于Panel Data而言,我们至少要知道我们的数据中有多少个截面(个体),每个截面上有多少个观察期间,整个数据结构是平行的还是非平行的2。进一步地,我们还要知道主要变量的样本均值、标准差、最大值、最小值等情况。这些都可以通过以下三个命令来完成:
1 See help tsset, 命令为[whelp tsset]。另外,如果想获得关于Panel Data的所有帮助,可采用命令[whelp xt]。2所谓平行面板数据是指所有截面单位的观察期间都相同,如我们在分析中国各省份的经济增长时,共有29个截面,每个截面都取1979-1998共20年的数据,共有580个观察值,这就是一个典型的平行面板数据。非平行面板数据就是不同的截面有不同的观察期间。
xtdes 对Panel Data截面个数、时间跨度的整体描述
xtsum 分组内、组间和样本整体计算各个变量的基本统计量
xttab 采用列表的方式显示某个变量的分布,较少使用
xtdes命令用于初步了解数据的大体分布状况,我们可以知道数据中含有多少个截面,最大和最小的时间跨度是多少。在某些要求使用平行面板数据的情况下3,我们可以采用该命令来诊断处理后的数据是否为平行数据4。
xtsum命令事实上是我们经常使用的命令summary的扩展,各个统计量都分别在样本总体、组内和组建三个层次上进行计算。基本的命令格式为:
xtsum [varlist] [if exp] [, i(varname) ]
其中,[]中的内容都为可选项,在不设定选项的情况下,STATA默认对所有变量进行统计性描述。另外,如果我们前面已经采用tsset命令声明了截面变量和时间变量,[, i(varname) ]可以完全省略。
需要指出的是,由于我们可以把面板数据简单地视为混合数据(pooled data),所以以往针对截面数据设定的命令,如list、sum、des、tabstat、histogram、kdensity等命令也都可以用于Panel data的样本描述。
8.8.2模型的估计
STATA8.0主要提供了如下模型的估计方法,对于门槛面板数据模型(Panel Threshold)和向量自回归面板数据模型(Panel V AR)等近期发展出来的模型,STATA8.0中还没有现成的估计程序,在估计过
程中还需要我们自己编写程序。
xtreg Fixed-, between- and random-effects, and population-averaged linear models xtregar Fixed- and random-effects linear models with an AR(1) disturbance
xtgls Panel-data models using GLS
xtpcse OLS or Prais-Winsten models with panel-corrected standard errors
xtrchh Hildreth-Houck random coefficients models
xtivreg Instrumental variables and two-stage least squares for panel-data models xtabond Arellano-Bond linear, dynamic panel data estimator
xtabond2 Arellano-Bond system dynamic panel data estimator(需要从网上下载)
xttobit Random-effects tobit models
xtintreg Random-effects interval data regression models
3如,有时需要对某些变量进行差分,另外有些估计方法的构建本身就仅局限于平行面板数据,如前面
提到的门槛面板数据。
4当然,当数据为非平行数据而模型的估计要求使用平行数据,你就需要编写一些小程序进行处理。
xtlogit Fixed-effects, random-effects, & population-averaged logit models
xtprobit Random-effects and population-averaged probit models
xtcloglog Random-effects and population-averaged cloglog models
xtpoisson Fixed-effects, random-effects, & population-averaged Poisson models
xtnbreg Fixed-effects, random-effects, & population-averaged negative binomial models 如果读者想更进一步地了解以上命令的使用细节,可以使用[whelp command]命令(command表示上表中列示的命令)看相关的帮助。一般而言,以上命令都有一些STATA使用者自己编写的扩展程序,我们可以通过STATA自带的网络搜索方式获得5。这种获得新程序的方法往往可以节约你很多编程的时间,比如上面提到的xtabond2命令就是笔者从网上下载的。当然,根据礼尚往来的原则,如果有朝一日你写出了很好的程序,也应该拿出来与大家分享。
下面我们以xtreg命令为例说明上述命令的基本使用方法。xtreg命令主要用于估计以下四种基本的线性面
板数据模型:固定效应模型(Fixed-effect)、随机效应模型(Random-effect)、组间效应模型(Between-effect)和样本平均模型(Population-average)。基本命令格式如下:xtreg depvar [varlist] [if exp] , model_type [level(#) ]
其中,model_type与上述提到的四种模型有如下对应关系:
model_type Models
be between-effects estimator
fe fixed-effects estimator
re GLS random-effects estimator
pa GEE population-averaged estimator
mle maximum-likelihood random-effects estimator
这里有三点需要说明:其一,model_type并非可选项,如果不填该项,则STATA默认采用GLS方法估计随机效应模型;其二,mle项事实上是估计随机效应模型的另一种方法而已;其三,我们上面给出的命
令格式只是一个基本形式,对于不同模型的估计,还有一些相当灵活的控制选项,读者可以参考STATA帮助。
level(#)选项用于标明显著水平,默认值为95%,如果需要将显著水平设定为99%,那么可以将该选项设定为level(99)即可。
下面,我们通过一个具体实例来说明上述命令的使用方法。我们采用STATA8.0自带的范例数据,文件名为grunfeld.dta。里面包含了六个变量,其中company和year分别表示样
5搜索方法为,点击STATA主窗口中help—〉search—〉search all,然后输入你要搜索的关键词即可。在这之前,如果你的电脑无法直接登录国际网,你可能还需要设定STATA内部的代理服务器选项,具体方法为:点击STATA主窗口中preference—〉General preferences—〉Internet prefs,然后输入代理服务器和端口即可。
本公司的代码和观察的年份,相当于我们前面提到的截面变量和时间变量;invest表示公司的投资额;mvalue表示公司的市场价值;kstock表示公司的资本存量。我们的目的是看公司的投资额和资本存量如何影响公司的市场价值。
第一步,声明截面变量和时间变量。命令为:
tsset company year
命令执行后屏幕上会显示:
panel variable: company, 1 to 10
time variable: year, 1935 to 1954
这告诉STATA我们的数据格式为面板数据。
第二步,进行样本的描述性统计。首先我们看看样本的大体分布情况,命令为:
xtdes
我们发现,我们的样本中包含10家公司(n=10),每家公司有20年的资料(T=20,1935-1954),整体上为平行面板数据,因为各个百分位上的T_i均为20。接着,我们列示出样本中主要变量的基本统计量,命令为:
xtsum invest mvalue kstock
命令执行后,屏幕上会显示:
Variable Mean Std. Dev.Min Max Observations invest overall 145.9583216.87530.931486.7N = 200 between 198.8242 3.0845608.02n = 10
within 106.1986-204.3621024.638T = 20
mvalue overall 1081.6811314.4758.126241.7N = 200 between 1334.91770.9214333.845n = 10
within 340.5421-459.9642989.536T = 20
kstock overall 276.0172301.10390.82226.3N = 200 between 200.9701 5.9415648.435n = 10
within 232.6603-369.6181853.882T = 20
当然,你也可以采用sum命令来得到基本统计量,而且在正是写论文时,所需列示的结果并不要求像上面那么详细,此时sum命令反而更实用。命令格式为:
sum invest mvalue kstock
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论