-
*********
面板数据计量分析与软件实现
*********
说明:以下
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
)
***
说明:
< br>1-5
均用
STATA
软件实现
,
6
用
GAUSS
< br>软件实现。
*
生产效率分析(尤其指
TFP
):
数据包络分析(
DEA
)与随机前沿分析(
SFA
)
*** <
/p>
说明:
DEA
由
DEAP2.1
软件实现,
SFA
由<
/p>
Frontier4.1
实现,尤其后者,侧重于比较
C-D
与
Translog
生产函数,一步法与两步法的区别。常应用于地区经济差异、
FDI
< br>溢出效应(
Spillovers
Effect
)、
工业行业效率状况等。
*
空间计量分析:<
/p>
SLM
模型与
SEM
模型
*
说明:
< br>STATA
与
Matlab
结合
使用
。
常应用于空间溢出效应
(
R&D
)
、
财政分权
、
地方政府公共行为等。
*
---------------------------------
*
--------
一、常用的数据处理与作图
-----------
*
---------------------------------
*
指定面板格式
xtset id year
(
id
为截面名称,
year
为时间名称)<
/p>
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
格式出现
**
长数据和宽数据的转换
*
长
>>>
宽数据
p>
reshape wide logy,i(id)
j(year)
*
宽
>>>
长数据
reshape logy,i(id) j(year)
**
追加数据(用于面板数据和时间
序列)
xtset id
year
*
或者
xtdes
tsappend,add(5) /
表示在每个省份再追加
5
年,用于面板数据<
/p>
/
tsset
*
或者
tsdes
.tsappend,add(8) /
表示追加
8
年,用于时间序列
/
*
方差分解,
比如三个变量
Y,X,Z
都是面板格式的数据,
且满足
Y=X+Z
,
< br>求方差
var(Y),
协方差
C
ov(X,Y)
和
Cov
(
Z,Y
)
bysort
year:corr Y X Z,cov
**
生产虚拟变量
*
生成年份虚拟变量
tab year,gen(yr)
*
生成省份虚拟变量
tab id,gen(dum)
**
生成滞后项和差分项
xtset id year
gen ylag=l.y
/*
产生一阶滞后项
)
,同样可产生二
阶滞后项
*/
gen ylag2=L2.y
gen dy=D.y
/*
产生差分项
*/
*
求出各省
2000
年以前
的
open inv
的平均增长率
collapse (mean) open inv if
year<2000,by(id)
变量排序,当变量太多,按规律排列。可用命令
aorder
或者
order fdi open insti
*-----------------
*
二、静态面板模型
*-----------------
*---------
简介
-----------
*
面板
数据的结构
(
兼具截面资料和时间序列资料的特征
)
use , clear
browse
xtset id year
xtdes
*
---------------------------------
*
--------
固定效应模型
-----------
* ---------------------------------
*
实质上就是在传统的线性回归模型中加入
N-1
个虚拟变量,
*
使得每个截面都有自己的截距项
,
*
截距项的不同反映了个体的某些不随时间改变的特征
*
*
例如:
lny = a_i + b1*lnK +
b2*lnL + e_it
*
考虑中国
< br>29
个省份的
C-D
生产函数<
/p>
*******-------
画图
----
--*
*
散点图
+
< br>线性拟合直线
twoway (scatter
logy h) (lfit logy h)
*
散点图
+
二次拟合曲线
twoway (scatter logy h) (qfit logy h)
*
散点图
+
线性拟合直线
+
置信区间
twoway (scatter logy h) (lfit
logy h) (lfitci logy h)
*
p>
按不同个体画出散点图和拟合线,可以以做出
fe vs
re
的初判断
*
twoway
(scatter logy h if id<4) (lfit logy h if id<4)
(lfit logy h if id==1) (lfit
logy h
if id==2) (lfit logy h if id==3)
*
按不同个体画散点图
,so
beautiful!!!*
graph twoway scatter
logy h if id==1 || scatter logy h
if
id==2,msymbol(Sh) || scatter
logy
h
if
id==3,msymbol(T) ||
scatter
logy
h
if
id==4,msymbol(d)
||
,
legend(position(11)
ring(0) label(1
北京
天津
河北
<
/p>
山西
**<
/p>
每个省份
logy
与
h
的散点图,并将各个图形合并
twoway scatter logy h,by(id)
ylabel(,format(%3.0f)) xlabel(,format(%3.0f))
*
每个个体的时间趋势图
*
xtline h if id<11,overlay legend(on)
* <
/p>
一个例子:中国
29
个省份的
C-D
生产函数的估计
tab id, gen(dum)
list
*
回归分析
reg logy logk logl dum*,
est store m_ols
xtreg
logy logk logl, fe
est store
m_fe
est table m_ols m_fe, b(%6.3f)
star(0.1 0.05 0.01)
*
Wald
检验
test
logk=logl=0
test logk=logl
*
stata
的估计方法解析
*
目的:如果截面的个数非常多,那么采用虚拟变量的方式运算量过大
*
因此,要寻求合理的方式去除掉个体效应
*
因为,我们关注的是
x
的系数,而非每个截面的截距项
*
处理方法:
*
* y_it = u_i + x_it*b + e_it (1)
* ym_i = u_i + xm_i*b + em_i (2)
组内平均
* ym =
um + xm*b + em (3)
样本平均
* (1) -
(2),
可得:
*
(y_it - ym_i) = (x_it - xm_i)*b + (e_it - em_i)
(
4
)
/*within estimator*/
* (4)+(3),
可得:
* (y_it-
ym_i+ym) = um + (x_it-xm_i+xm)*b + (e_it-em_i+em)
*
可重新表示为:
* Y_it = a_0 + X_it*b + E_it
*
对该模型执行
OLS
估计,即可得到
b
的无偏估计量
**stata
后台操作,揭开
fe<
/p>
估计的神秘面纱!!!
egen
y_meanw = mean(logy), by(id)
/*
个体内部平均
*/
egen y_mean = mean(logy)
/*
样本平均
*/
egen
k_meanw = mean(logk), by(id)
egen
k_mean = mean(logk)
egen l_meanw =
mean(logl), by(id)
egen l_mean =
mean(logl)
gen dyw = logy - y_meanw
gen dkw =
logk - k_meanw
gen dlw=logl-l_meanw
reg dyw dkw dlw,nocons
est store m_stata
gen dy =
logy - y_meanw + y_mean
gen dk =
logk - k_meanw +k_mean
gen dl=logl-
l_meanw+l_mean
reg dy dk dl
est store m_stata
est table
m_*, b(%6.3f) star(0.1 0.05 0.01)
*
解读
xtreg,fe
的估计结果
xtreg
logy h inv gov open,fe
*-- R^2
* y_it = a_0 + x_it*b_o + e_it (1)
pooled OLS
* y_it = u_i +
x_it*b_w + e_it (2) within estimator
* ym_i = a_0 + xm_i*b_b + em_i (3)
between estimator
*
*
--> R-sq: within
模型
(2)
对应的
R2
,是一个真正意义上的
R2
* --> R-sq: between
corr{xm_i*b_w,ym_i}^2
* --> R-sq:
overall corr{x_it*b_w,y_it}^2
*
*-- F(4,373) =
855.93
检验除常数项外其他解释变量的联合显著性
*
*
*-- corr(u_i, Xb) = -0.2347
*
*-- sigma_u, sigma_e, rho
* rho = sigma_u^2 / (sigma_u^2 +
sigma_e^2)
dis e(sigma_u)^2 /
(e(sigma_u)^2 + e(sigma_e)^2)
*
*
个体效应是否显著?
*
F(28, 373) = 338.86 H0: a1 = a2 = a3 = a4 = a29
* Prob > F = 0.0000
表明,固定效应高度显著
*---
如何得到调整后的
R2,
即
adj-R2
?
ereturn list
reg logy h inv gov open dum*
*---
拟合值和残差
*
y_it = u_i + x_it*b + e_it
*
predict newvar, [option]
/*
xb xb, fitted
values; the default
stdp
calculate standard error of the fitted values
ue u_i + e_it, the
combined residual
xbu
xb + u_i, prediction including effect
u u_i, the fixed- or random-error
component
e e_it, the
overall error component */
xtreg logy logk logl, fe
predict y_hat
predict a , u
predict res,e
predict cres, ue
gen
ares = a + res
list ares cres in
1/10
* ---------------------------------
* ----------
随机效应模型
---------
* ---------------------------------
* y_it = x_it*b + (a_i +
u_it)
* = x_it*b + v_it
*
基本思想:将随机干扰项分成两种
*
一种是不随时间改变的,即个体效应
a_i
*
另一种是随时间改变的,即通常意义上的干扰项
u_it
*
估计方法:
FGLS
* Var(v_it) = sigma_a^2 +
sigma_u^2
* Cov(v_it,v_is) =
sigma_a^2
* Cov(v_it,v_js) =
0
*
利用
Pooled
OLS
,
Within Estimator,
Between Estimator
*
可以估计出
sigma_a^2
和
sigma_u^2,
进而采用
GLS
或
FGLS
* Re
估计量是
Fe
估计量和
Be
估计量的加权平均
* yr_it = y_it - theta*ym_i
* xr_it = x_it - theta*xm_i
* theta = 1 - sigma_u /
sqrt[(T*sigma_a^2 + sigma_u^2)]
*
解读
xtreg,re
的估计结果
use , clear
xtreg logy logk logl, re
*-- R2
*
--> R-sq: within corr{(x_it-xm_i)*b_r, y_it-
ym_i}^2
* --> R-sq: between
corr{xm_i*b_r,ym_i}^2
* --> R-sq:
overall corr{x_it*b_r,y_it}^2
*
上述
R2
都不是真正意义上的
< br>R2
,因为
Re
模型采用的是<
/p>
GLS
估计。
*
* rho = sigma_u^2 / (sigma_u^2 +
sigma_e^2)
dis e(sigma_u)^2 /
(e(sigma_u)^2 + e(sigma_e)^2)
*
* corr(u_i, X) = 0 (assumed)
*
这是随机效应模型的一个最重要,也限制该模型应用的
一个重要假设
*
然而,采用固
定效应模型,我们可以粗略估计出
corr(u_i, X)
xtreg market invest stock, fe
*
* Wald chi2(2) = 10962.50 Prob>
chi2 = 0.0000
*--------
时间效应、模型的筛选和常见问题
*----
-----
目录
--------
* 7.2.1
时间效应(双向固定
(
随机
)
效应模型)
* 7.2.2
模型的筛选
* 7.2.3
面板数据常见问题
* 7.2.4
面板数据的转换
* ----------------------------------
* ------------
时间效应
--------------
*
----------------------------------
*
单向固定效应模型
* y_it
= u_i + x_it*b + e_it
*
双向固定效应模型
* y_it
= u_i + f_t + x_it*b + e_it
qui tab year, gen(yr)
drop yr1
xtreg logy logk logl yr*,
fe
*
随机效应模型中的时间效应
xtreg logy logk logl yr*, fe
*
---------------------------------
*
-----------
模型的筛选
----------
* ---------------------------------
*
固定效应模型还是
Pooled
OLS
?
xtreg
logy logk logl yr*, fe /*Wald
检验
*/
qui tab id, gen(dum)
/*LR
检验
*/
reg
logy logk logl /*POLS*/
est
store m_ols
reg logy logk logl
dum*,nocons
est store m_fe
lrtest m_ols m_fe
est table m_*, b(%6.3f) star(0.1 0.05
0.01)
* RE vs Pooled
OLS
?
* H0:
Var(u) = 0
*
方法一:
B-P
检验
xtreg
logy logk logl, re
xttest0
* FE vs
RE?
* y_it = u_i + x_it*b + e_it
*--- Hausman
检验
---
*
基本思想:如果
Corr(u_i,x_it) = 0, Fe
和
Re
都是一致的,但
Re
更有效
*
如果
Corr(u_i,x_it)!= 0, Fe
p>
仍然有效,但
Re
是有偏的
*
基本步骤
***
< br>情形
1
:
huasman
为正数
xtreg logy
logk logl, fe
est store m_fe
xtreg logy logk logl, re
est store m_re
hausman m_fe m_re
***
情形
2
:
qui xtreg logy h inv gov open,fe
est store fe
qui xtreg logy h inv gov open,re
est store re
hausman fe re
* Hausman
检验值为负怎么办?
* <
/p>
通常是因为
RE
模型的基本假设
Corr(x,u_i)=0
无法得到满足
*
检验过程中两个模型的方差
-
协方差矩阵都采用
Fe
模型的<
/p>
hausman fe re,
sigmaless
*
两个模型的方差
-
协方差矩阵都采用
Re
模型的
hausman fe re,
sigmamore
*==
为何有些变量会被
dro
p
掉?
use ,
clear
tsset idcode year
xtreg ln_wage hours tenure ttl_exp, fe
/*
正常执行
*/
*
产生种族虚拟变量
tab
race, gen(dum_race)
xtreg ln_wage
hours tenure ttl_exp dum_race2 dum_race3, fe
*
为何
dum_race2
和
dum_race3
会被
dropped ?
*
固定效应模型的设定:
y_it = u_i +
x_it*b + e_it (1)
*
由于个体效应
u_i
不随时间改变,
*
因此若
x_it
包含了任何不随时间改变的变量,
*
都会与
u_i
构成多重共线性
,
Stata
会自动删除之。
*******
异方差、序列相关和
截面相关问题
* ----------------
简
介
-------------
* y_it =
x_it*b + u_i + e_it
*
*
由于面板数据同时兼顾了截面数据和时间序列的特征,
*
所以异方差和序列相关必然会存在于面板数据中;
*
同时,由于面板数据中每个截面(公司、个人、国家、地
区)之间还可能存在内在的联系,
*
所以,截面相关性也是一个需要考虑的问题。
*
*
此前的分析依赖三个假设条件:
*
(
1
)
Var[e_it] = sigma^2
同方差假设
* (2)
Corr[e_it, e_it-s] = 0
序列无关假设
* (3)
Corr[e_it, e_jt] = 0
截面不相关假设
*
*
当这三个假设无法得到满足时,便分别出现
异方差、序列相关和截面相关问题;
*
我们一方面要采用各种方法来检验这些假设是否得到了满足;
*
另一方面,也要在这些假设无法满足时寻求合理的估计方法。
*
----------------
假设检验
-------------
*==
组间异方差检验(截面数据的特征)
* Var(e_i) = sigma_i^2
* Fe
模型
xtreg logy logk logl, fe
xttest3
* Re
模型
* Re
本身已经较大程度的考虑了异方差问题,主要
体现在
sigma_u^2
上
*==
序列相关检验
* Fe
模型
*
xtserial Wooldridge(2002)
,若无序列相关,则一阶差分
后残差相关系数应为
-0.5
xtserial logy logk logl
xtserial logy logk logl, output
* Re
模型
xtreg logy logk logl, re
xttest1 /*
提供多个统计检验量
*/
*==
截面相关检验
* xttest2
命令
H0:
所有截面残差的相关系数都相等
xtreg
logy logk logl, fe
xttest2
*
由于检验过程中执行了
< br>SUE
估计,所以要求
T>N
xtreg logy logk logl if id<6, fe
xttest2
* xtcsd
命令(提供了三种检验方法)
xtreg logy logk logl, fe
xtcsd
, pesaran /*Pesaran(2004)*/
xtcsd , friedman /*Friedman(1937)*/
xtreg logy
logk logl, re
xtcsd , pesaran
* -----------------
估计方法
---------------------
*==
异方差稳健型估计
xtreg logy h inv gov open, fe
robust
est store fe_rb
xtreg logy h inv
gov open, fe robust
est store fe
*
结果对比
esttab fe_rb fe, b(%6.3f)
se(%6.3f) mtitle(fe_rb fe)
*==
序列相关估计
*
一阶自相关
xtregar, fe/re
*
模型:
y_it
= u_i + x_it*b + v_it (1)
* v_it = rho*v_it-1 + z_it (2)
xtregar logy h
inv gov open, fe
est store
fe_ar1
xtregar logy h inv gov
open,fe lbi /*Baltagi-Wu LBI test*/
*
说明:
* (1)
这里的
Durbin-Watson =1.280677
具有较为复杂的分布,
*
不同于时间序列中的
D-W
统计量。
* (2)
其临界值见
Bhargava et al. (1982,
The Review of Economic Studies 49:553-549)
* (3) Baltagi-Wu LBI = 1.4739834
基本上没有太大的参考价值,
*
因为他们并未提供临界值表,而该统计量的分布又相当复杂
xtregar logy h
inv gov open, re
est store
re_ar1
*
两阶段估计
xtregar logy h inv gov open, fe twostep
est store fe_ar1_two
*
结果对比
xtreg logy h inv gov open, fe
est store fe
local models
esttab `models', b(%6.3f)
se(%6.3f) mtitle(`models') r2 sca(r2_w corr)
*
高阶自相关
*
newey2
命令
newey2 logy h inv gov open, lag(2)
*==
组间相关(截面相关)
*
cluster
选项
use , clear
xtreg logy h inv
gov open, fe cluster(id)
est
store fe_cluster
xtreg logy h
inv gov open, re cluster(id)
est store re_cluster
************
看过去很晕,采用一种综合处理:
* xtgls
命令
* xtpcse
命令
*---
简介(
Greene, 2000,
chp15
)
*
*
模型
* y = X*b
+ U
*
重点在于考虑干扰项
U
的结构,包括
* (1)
异方差
(2)
序列相关
(3)
截面相关性
*
应用范围:多用于
“
大
T
p>
,小
N
”
型面板数
据,
*
因为,此时截面的异质性并不是重点关注的,而时序特征则较为明显
*
因此,模型设定中未考虑个体效果
* | y_1 | | X_1 | | e_1 |
* | y_2 | | X_2 | | e_2 |
* | . | | . | | . |
* | . | = | . | * b + | . |
* | . | | . | | . |
* | y_n | | X_n | | e_n |
*--
截面异方差
* E[e_i*e_i'] = s_i^2
*
* | s1^2
0 ... 0 |
* | 0
s2^2 ... 0 |
* |
. |
* V = | .
|
* | .
|
* | 0 0 ... sn^2 |
*--
截面相关
* E[e_i*e_i'] = s_ij^2
*
* | s_11
s_12 ... s_1n |
* | s_21
s_22 ... s_2n |
*
| . |
* V =
| . | * sigma^2
* | . |
* | s_n1 s_n2 ... s_nn |
*--
序列相关
* E[e_i*e_i'] = s_i^2 * M_i
*
* |
s1^2*M_1 0 ... 0 |
* | 0 s2^2*M_2 ... 0 |
* | .
|
* V = | .
|
* | .
|
* | 0 0
... sn^2*M_n |
* GLS
估计
* b =
[X'V^{-1}*X]^{-1}[X'V^{-1}y]
*
Var[b] = [X'V^{-1}*X]^{-1}
*---
估计和检验
-------------
*=== xtgls
命令
use ,
clear
xtgls market invest stock,
panels(iid) /*iid,
等同于
Pooled OLS*/
est store g_0
reg market invest
stock
est store g_ols
xtgls market invest stock, panel(het)
/*
截面异方差
*/
est store g_phet
xtgls market
invest stock, corr(ar1)
/*
所有截面具有相同的自相关系数
*/
est store g_par1
xtgls market invest stock, corr(psar1)
/*
每个截面有自己的自相关系数
*/
est store g_psar1
-
-
-
-
-
-
-
-
-
上一篇:(完整版)法律英语词汇大全(
下一篇:语言学学名词解释