精华内容
参与话题
问答
  • 面板数据分析

    2020-09-02 21:52:33
    文章目录前言一、面板数据数据性质变量相关性二、三大问题截面相关自相关异方差三、FE VS RE 前言 面板数据(panel data)在现代社会中十分重要,常见在计量经济学之中。截面数据与时间序列数据,是其退化版本,本文...

    本文是浙江大学方红生教授的课堂笔记,来自

    https://www.icourse163.org/course/ZJU-1206581810


    前言

    面板数据(panel data)在现代社会中十分重要,常见于计量经济学之中。截面数据与时间序列数据,是其退化版本,本文通过stata软件对此类数据进行分析。


    一、面板数据

    数据性质

    面板数据拥有双重下标,如yity_{it}
    i=1,2,...,NNt=1,2,...,TTi=1,2,...,N代表N个不同的个体 \\ t=1,2,...,T代表T个观测时间点
    可分为:短面板与长面板,动态面板与静态面板,平衡与非平衡面板。

    stata命令:(请注意,stata更多的类似于图形界面软件,因而其代码大多是逐行输入并运行)

    * 导入数据
    use "D:\data.dta"
    import delimited "D:\data.dta"
    
    * 设置时间与个体变量, 不可颠倒
    xtset i year
    * 如果i不是stata支持的变量类型,可以使用如下命令进行重新编码
    encode i, gen(newi)
    
    * 查看数据类型
    des 
    * 指定变量
    des varlist
    # 查看每个截面的数据个数
    tab year, gen(year)
    
    * 描述性分析
    sum varlist
    tabstat varlist, s(min p25 p50 p75 max) format(%6.3f) c(s)
    
    * 修改变量值
    replace x = 2
    * 修改变量的第五个观测值
    replace x = 2 if _n=5
    

    变量相关性

    确定每个解释变量和被解释变量之间的关系是十分重要的,

    * 画散点图,添加拟合曲线
    twoway (scatter y lgb)(lfit y lgb)
    
    * 在查看之间必须进行ols估计,才可以查看偏自相关图
    reg depvar varlist
    avplot varlist
    avplots
    
    * 时间序列图
    xtline y
    

    二、短面板数据(short panels)

    1)三大问题

    对于每一个面板数据来说,必须正视三大问题(即异方差、自相关和截面相关问题),否则估计结果将没有说服力。本节我们主要探讨短面板数据的相关问题。

    截面相关

    对于不同的面板类型来说,估计方法不尽相同。当不同的方法出现矛盾时,应该观察数据的种类,如下表:

    commands blanced unblanced dynamic common
    pes + + + --------
    fri + -------- -------- --------
    fre + --------- --------- +

    p<αp值 < \alpha时,表示拒绝H0H_0,即认为存在截面自相关。

    * 进行估计时,必须先选定模型进行估计,这里使用固定效应模型
    xtreg depvar varlist, fe 
    
    * 使用xtcsd命令,必须先安装它
    . xtcsd, pes
    
    Pesaran's test of cross sectional independence =     
    
    . xtcsd, fri
     
    Friedman's test of cross sectional independence =  
    
    . xtcsd, fre 
     
      Frees' test of cross sectional independence =     
    |-------------------------------------------------|
      Critical values from Frees' Q distribution
                          alpha = 0.10 :   0.4127
                          alpha = 0.05 :   0.5676
                          alpha = 0.01 :   0.9027
    

    对于不同的面板数据来说,截面自相关的存在与否决定着估计的方法,影响着估计的精度。

    * 存在截面自相关
    xi:xtscc depvar varlist, i.state 
    
    * 对虚拟变量进行F检验
    testparm _Istate*
    
    * 不存在截面自相关
    xi:reg depvar varlist, i.state, cluster(state)
    
    * 对虚拟变量进行F检验
    testparm _Istate*
    

    自相关

    xtreg depvar varlist, re
    * 检查序列是否存在一阶自相关
    xttest0/xttest1
    
    . xttest0
    Test:   Var(u) = 0
    	chibar2(01) =   338.52
    	Prob > chibar2 =   0.0000
    

    异方差

    xtreg depvar varlist, fe
    * 检查序列是否存在异方差
    . xttest3
    
    H0: sigma(i)^2 = sigma^2 for all i
    
    chi2 (31)  =   52663.93
    Prob>chi2 =      0.0000
    

    2)FE and RE

    混合效应模型:
    yit=α+βxit+εit,εitN(0,σ2)y_{it}=\alpha+\beta x_{it}+\varepsilon_{it}, \quad \varepsilon_{it}\sim N(0, \sigma^2)

    单向固定效应模型:
    yit=α+βxit+μi+εit,εitN(0,σ2)y_{it}=\alpha+\beta x_{it}+\mu_{i}+\varepsilon_{it}, \quad \varepsilon_{it}\sim N(0, \sigma^2)

    双向固定效应模型:
    yit=α+βxit+μi+λt+εit,εitN(0,σ2)y_{it}=\alpha+\beta x_{it}+\mu_{i}+\lambda_t + \varepsilon_{it}, \quad \varepsilon_{it}\sim N(0, \sigma^2)

    随机效应模型:
    yit=αit+βxit+εit,εitN(0,σ2)y_{it}=\alpha_{it}+\beta x_{it} + \varepsilon_{it}, \quad \varepsilon_{it}\sim N(0, \sigma^2)

    stata代码如下:

    * 混合效应模型:
    reg depvar varlist
    * 单向固定效应模型
    xtreg depvar varlist, fe
    * 双向固定效应模型
    xtreg depvar varlist i.year, fe
    * 随机效应模型
    xtreg depvar varlist, re
    

    3)Hausmans Test

    在实际生活中,常常需要对固定效应模型(fixed effect model)和随机效应模型(random effect model)进行选择,其标准为Huasman test。然而,对于不同的数据,Huasman test的形式是不相同的。

    不存在截面相关和自相关

    若原假设成立时,则FE与RE共同收敛于真实参数值,而且RE是更有效的。
    在原假设不成立时,FE估计是一致的,RE估计是有偏的。
    缺点,在异方差时,检验是失效的。

    xtreg depvar varlist, fe
    est store fe
    xtreg depvar varlist, re
    est store re
    hausman fe re, sigmamore
    

    不存在截面相关

    在异方差存在时,要使用聚类稳健标准误处理问题。
    为此我们需要构建辅助回归方程:
    yitθ^yiˉ=(xitθ^xiˉ)β+(1θ^)ziδ+(xitxiˉ)γ+[(1θ^)μi+(εitθ^εi)ˉ]y_{it}-\hat {\theta} \bar{y_i} =(x_{it}-\hat {\theta} \bar{x_i}) \beta +(1-\hat{\theta})z^{'}_i\delta +(x_{it}-\bar{x_i})\gamma +[(1-\hat{\theta})\mu_i+(\varepsilon_{it}-\hat{\theta} \bar{\varepsilon_i)}]

    如果RE成立,则OLSE是一致的,即p(limnγ^)=γ=0p(\lim\limits_{n\to \infty}\hat{\gamma})=\gamma =0
    如果FE成立,则[(1θ^)μi+(εitθ^εi)ˉ][(1-\hat{\theta})\mu_i+(\varepsilon_{it}-\hat{\theta} \bar{\varepsilon_i)}](xitθ^xiˉ)(x_{it}-\hat {\theta} \bar{x_i})相关,OLSE估计时不一致的,即p(limnγ^)γ=0p(\lim\limits_{n\to \infty}\hat{\gamma})\neq \gamma =0

    * huasman test2
    quietly xtreg depvar varlist year1-t, re
    scalar theta = e(theta)
    global yand depvar varlist year1-t
    sort id *按照id排序,对应xtset state year中的state
    * 这只是个循环,如果出错可以手动设置,不必太过纠结
    foreach x of varlist $yand{
    	by id: egen mean`x' = mean(`x')
    			gen md`x'=`x'-mean`x'
    			gen red`x'=`x'-theta*mean`x'
    			}
    drop mdy
    quietly regdepvar redvarlist mdvarlist, vce(cluster id) *可采用md*, 注意没有mdy
    test mdvarlist
    

    存在截面相关和自相关

    用xtscc命令代替reg命令即可,但是会降低参数估计的精度

    xtscc reddepvar redvarlist mdvarlist
    test mdvarlist
    

    如何将上面的结果合并到一起呢?请看下文

    结果输出

    * 存在截面相关和异方差
    xtreg depvar varlist, fe
    est store Dris_Kraay
    * 不存在截面相关
    xtreg dep varlist, fe robust
    est store White
    * 啥都没有
    xtreg dep varlist, fe cluster(i)
    est store Rogers
    
    * 制成表格
    esttab Dris_Kraay Rogers White, b(%9.2f) p mtitle (Dris_Kraay Rogers White)
    * 输出csv文件
    esttab Dris_Kraay Rogers White using tab.csv , b(%9.2f) p mtitle (Dris_Kraay Rogers White)
    

    三、长面板数据

    上面所讲的都是对于短面板数据而言的,现在让我们进入长面板数据。
    对于short panels,不可观测的个体效应和三大问题是十分重要的。而对于long panels,需要关注时间效应和个体效应。

    1)三大问题

    主要使用xtpcse, xtscc, xtgls进行估计

    Test long panels short panels
    截面相关 xttest2 xtcsd
    自相关 xtserial xtserial
    异方差 xttest3 xttest3
    * 需要先对year 使用tab year, gen(year)构造year1到yearn共n个变量。
    * 原假设是没有一阶自相关
    xtserial depvar varlist year1-yearn
    
    * 异方差
    xtreg depvar varlist year1-yearn, fe
    * or
    xtgls depvar varlist year1-yearn
    xttest3
    
    * 截面相关
    xtreg depvar varlist year1-yearn, fe
    xttest2
    

    2)三种估计

    xtpcse命令,应当注意每一个估计的精度都是不同的。

    * 三大问题都不考虑
    xtpcse depvar varlist, independent
    * 仅考虑异方差
    xtpcse depvar varlist, hetonly
    * 考虑异方差和截面相关
    xtpcse depvar varlist
    
    * 考虑自相关
    xtpcse depvar varlist, corr(ar1)
    xtpcse depvar varlist, corr(psar1)
    xtpcse depvar varlist, corr(ind)
    
    * 都考虑
    xtpcse depvar varlist, corr(ar1)
    

    xtgls命令

    * 不存在三大问题
    xtgls depvar varlist, panels(iid)
    * 仅考虑异方差
    xtgls depvar varlist, panels(heteroskedastic)
    * 考虑异方差和截面相关
    xtgls depvar varlist, panels(correlated)
    
    * 考虑自相关
    xtpcse depvar varlist, corr(ar1)
    xtpcse depvar varlist, corr(psar1)
    xtpcse depvar varlist, corr(ind)
    
    * 都考虑
    xtgls depvar varlist, panels(correlated) corr(ar1)
    

    四、内生性变量

    在实际生活中,被解释变量和解释变量常常是互为因果的。比如在计量经济学之中,国民消费支出和经济发展就是如此,经济发展会促进国民消费支出的提高,国民消费支出的提高反过来又促进了经济发展,这些除了被解释变量之外的变量称为内生性变量。
    因而,使用单一的模型进行估计常常会高估或者低估参数,是不可靠的。

    联立方程组

    单一的方程估计,容易忽略格方程之间的联系,因而出现了联立方程组一起进行估计。

    通过建立内生性变量的方程,考虑内生性变量和被解释变量之间复杂的因果关系,从而更好的估计模型的参数。但两阶段最小二乘估计(2SLS)是一致的,但不是最有效的,我们需要采用3SLS。

    这是对3SLS的一个解释:https://bbs.pinggu.org/thread-2504611-1-1.html
    第一,利用最小二乘法估计结构模型对应的简化模型,得到各内生变量的拟合值。第二,将结构方程右边的内生变量用第一步得到的拟合值代替,再用最小二乘法估计替代后的方程,得到结构参数的估计值,然后计算各方程的残差值,利用残差值求得误差项方差以及跨方差协方差的一致估计值。第三,把第二步得到的误差项方差协方差矩阵作为加权阵,应用广义最小二乘法估计得到三阶段最小二乘估计值 。

    * SUR
    xi:reg3 (depvar instrument varlist_one)(instrument varlist_two), sure
    
    * 手动设置内生性变量
    * 请注意varlist_two 和varlist_one中的变量不能完全相同
    * endog包含没有在方程中提及的外生性变量
    * exdog包含方程右侧的内生性变量,不知道这个选项调用为何错误。
    xi:reg3(depvar1 varlist_one)(depvar2 varlist_two), endog(varlist)
    

    工具变量

    真实的model:
    y=α+βx+εCov(x,ε)=0y^* = \alpha+\beta x^* + \varepsilon \quad Cov(x^*,\varepsilon) = 0只能观测到x=x+μx=x^*+\mu, 得到模型y=α+βx+(εμ)y^* = \alpha+\beta x + (\varepsilon-\mu),此时Cov(x,(εμ))0Cov(x, (\varepsilon-\mu)) \neq 0
    只能观测到y=y+μy=y^*+\mu, 得到模型y=α+βx+(ε+v)y^* = \alpha+\beta x + (\varepsilon+v),此时Cov(x,(εv))0Cov(x, (\varepsilon-v)) \neq 0
    在这种情况下,OLSE都不是有效的,因而我们需要使用必要的工具变量(Instruments)。

    Instruments 的使用条件:
    1.核心解释变量与误差项相关
    2.工具变量与核心解释变量高度相关
    3.工具变量与误差项不相关

    两阶段最小二乘(2SLS)
    =f()+εy=f(,)+ε内生性变量 = f(工具变量,外生性变量)+\varepsilon \\ y = f(内生性变量, 外生性变量)+\varepsilon

    reg endog_var varlist1
    predict endog_var*
    red depvar endog_var* varlist2 
    

    IV估计

    Test long panels
    Cov()0Cov(核心解释变量,误差项) \neq 0 OLSE不是一致估计量
    Cov()0Cov()=0Cov(工具变量,误差项) \neq0\\Cov(核心解释变量,工具变量) =0 IV是一致估计量
    Cov()0Cov(核心解释变量,工具变量) \neq0 IV不是一致估计量,存在渐进误差

    iv估计

    ivreg depvar (endog_evar = instrument) varlist, first
    
    ivreg2 depvar (endog_evar = instrument) varlist
    

    相关性检验

    弱工具变量不仅会影响估计的精度,还会使接下来的Hausman Test变得不再可靠,因此对其进行检验是十分有必要的。

    method one:
    =f()+ε内生性变量 = f(工具变量,外生性变量)+\varepsilon

    reg reg endog_var varlist1
    * 查看方程的F值,大于10代表强相关
    

    method two:
    Stock-Yogo检验规则:弱识别检验的最小特征值 > Stock-Yogo的15% maximal IV size 的临界值

    . ivreg2 depvar (endog_evar = instrument) varlist
    reg reg endog_var varlist1
    Weak identification test (Cragg-Donald Wald F statistic):               86.008
    Stock-Yogo weak ID test critical values: 10% maximal IV size             16.38
                                             15% maximal IV size              8.96
                                             20% maximal IV size              6.66
                                             25% maximal IV size              5.53
    Source: Stock-Yogo (2005).  Reproduced by permission.
    

    method three:
    如果有更多的工具变量,则删除弱工具变量

    ivreg2 depvar (endog_evar = instrument) varlist, liml
    

    内生性检验

    假设存在内生性,做2SLS
    Hausman Test
    假设不存在内生性,做OLS
    ivreg depvar (endog_var = instrument) varlist
    * 此处可换成ivreg2, or xtivreg
    est store ivreg
    reg depvar endog_var varlist
    est store reg
    hausmna iv reg
    

    外生性检验

    检验外生性问题,需要先检验内生性问题,而且工具变量的数量要大于内生性变量。

    实例

    固定效应 VS 随机效应

    * 双向固定效应的两阶段最小二乘估计
    xtivreg depvar (endog_vars = instruments) varlist, fe
    est store FE2SLS
    
    * 随机效应的两阶段最小二乘估计
    * ec2sls
    xtivreg depvar (endog_vars = instruments) varlist, ec2sls
    est store EC2SLS
    
    hausman FE2SLS EC2SLS
    * 小于0.05,选择随机效应模型
    

    检验内生性问题

    * 随机效应的两阶段最小二乘估计
    xtivreg depvar (endog_vars = instruments) varlist, ec2sls
    est store EC2SLS
    
    * 随机效应的两阶段最小二乘估计
    xtreg depvar endog_vars varlist, re
    est store RE2SLS
    
    hausman EC2SLS RE2SLS, sigmamore
    * p值为1, 说明没有内生性问题
    在将ec2sls替换为re,看是否稳健
    xtivreg depvar (endog_vars = instruments) varlist, re
    est store re
    hausman re RE2SLS, sigmamore
    

    若选择FE,则观察三种估计的结果

    xtivreg depvar (endog_vars = instruments) varlist, fe first
    
    xtivreg depvar (endog_vars = instruments) varlist, fe endog(endog_vars)
    
    xtivreg depvar (endog_vars = instruments) varlist, fe endog(endog_vars) liml
    * 小于0.05,选择随机效应模型
    

    五、动态面板数据

    DIF-GMM

    一般说来,差分广义矩估计法(DIF-GMM)是对基本模型进行一阶差分来消除个体效应,但这有严重的内生性问题。
    这时,我们需要将滞后解释变量作为工具变量来消除内生性问题,而前提是解释变量是一阶自相关的,而且没有二阶自相关。

    前定变量:
    xitx_{it}为前定变量,则其与εit\varepsilon_{it}不相关,与εi,t1\varepsilon_{i,t-1}相关,可以使用xi,t1x_{i,t-1}作为工具变量。
    xitx_{it}为内生性变量,则xi,t1x_{i,t-1}为前定变量,xi,t2x_{i,t-2}为外生性变量, 可以作为工具变量。

    几个例子

    model:
    yitΔyit+Δ2yit+xit+Δxit+Δ2xit+X+λty_{it} \sim \Delta y_{it} +\Delta^2 y_{it} + x_{it}+\Delta x_{it} +\Delta^2x_{it} + X+\lambda_t

    xi:reg y l(1 2).y l(0 1 2).x varlist i.year
    

    LSDV估计:
    yitΔyit+Δ2yit+xit+Δxit+Δ2xit+X+μi+λty_{it} \sim \Delta y_{it} +\Delta^2 y_{it} + x_{it}+\Delta x_{it} +\Delta^2x_{it} + X+\mu_i+\lambda_t

    xi:reg y l(1 2).y l(0 1 2).x varlist i.year
    

    DIF-GMM估计

    * gmm中为前定变量,iv中为外生性变量
    xtabond2 depvar l(0 2).depvar l(0 1 2).varlist1 varlist2, gmm(l.depvar) iv(l2.depvar l(0 1 2).varlist1 varlist2) nolevel robust small nomata
    * 加入参数two,则进行两阶段最小二乘估计
    

    SYS-GMM

    xtabond2 depvar l(0 2).depvar l(0 1 2).varlist1 varlist2, gmmstyle(l.depvar) ivstyle(l2.depvar l(0 1 2).varlist1 varlist2) nolevel robust small nomata
    * 加入参数two,则进行两阶段最小二乘估计
    

    BCFE

    BCFE适用于小样本高阶滞后项动态面板数据模型,能够解决一般化异方差与当期截面自相关,优于DIF-GMM和SYS-GMM,不适用于大样本情况下(T<kN)。

    xtvcfe depvar varlist [, options]
    
    options参数
    resampling 默认mcho, 考虑截面相关时使用csd
    bicires 自助采样,需要大于50
    infiters 推测bootstrap样本的数量
    

    六、面板门限模型

    单门限模型

    yit=μi+β1citI(qitγ)+β2citI(qit>γ)+eity_{it} = \mu_{i} +\beta_1c_{it}I(q_{it}\leqslant \gamma) + \beta_2c_{it}I(q_{it}>\gamma)+e_{it}

    xthreg depvar varlist, rx(c) qx(q) thnum(1) grid(300) trim(0.01) bs(300)
    * thnum 表示门阈个数
    * trim 上下各删减1%
    * bs自助抽样
    
    * 加入时间因素
    xi:xthreg depvar varlist i.year, rx(c) qx(q) thnum(1) grid(300) trim(0.01) bs(300)
    
    * 观察
    _matplot e(LR), columns(1 2) yline(7.35, lpattern(dash)) connect(direct) msize(small) mlabp(0) mlabs(zero) ytitle("LR Statistics") xtitle("Threshold") recast(line) name(LR) 
    

    双门限模型

    yit=μi+β1citI(qitγ1)+β2citI(γ1<qitγ2)+β3citI(qit>γ2)+eity_{it} = \mu_{i} +\beta_1c_{it}I(q_{it}\leqslant\gamma_1) + \beta_2c_{it}I(\gamma_1<q_{it}\leqslant\gamma_2)+\beta_3c_{it}I(q_{it}>\gamma_2)+e_{it}

    请注意必须先估计面板单门限模型

    xthreg depvar varlist, rx(c) qx(q) thnum(2) grid(300) trim(0.01 0.01) bs(300 300)
    

    七、双重差分模型(DID)

    group Before change After change
    处理组 E(Yt1)E(Y_{t1}) E(Yt2)E(Y_{t2})
    对照组 E(Yc1)E(Y_{c1}) E(Yc2)E(Y_{c2})

    共同趋势假定:
    yit=β0+β1treati+β2Pt+βstreati×Pt+εity_{it} = \beta_0+\beta_1treat_i+\beta_2P_{t}+\beta_streat_i\times P_t+\varepsilon_{it}

    多组多期model:
    yist=β1Dst+β2Xist+μs+λt+εity_{ist} = \beta_1D_{st}+\beta_2X_{ist}+\mu_s + \lambda_t +\varepsilon_{it}
    注意点:
    DID不仅能估计政策效应,还能够识别出固定效应与时间效应。
    DID反映政策冲击的即时效应,但有时政策有滞后效应,需要使用lag(Dst)lag(D_{st})
    DID需要共同趋势假定——安慰剂检验,若不能满足共同趋势假定,需要合成一个虚拟对照组。

    stata代码如下:

    diff depvar, var(treat) p(var)
    

    八、合成控制法

    donor pool 选择标准:
    同样受到此政策影响的地区,删除
    在样本期间受到很大特殊冲击,删除
    限定为与处理地区具有相似特征的控制地区
    干预前的时间观测要足够长

    安慰剂检验:
    从donor pool构建一个虚拟对照组,进行安慰剂检验。
    基本思想是,合成的对照组在干预前能够很好的预测处理组的结果,而在干预后两者较大。
    MSPEpre=1T0t=1T(yitj=2J+1wjyjt)2MSPE_{pre} = \frac{1}{T_0} \sum_{t=1}^{T}(y_{it}- \sum_{j=2}^{J+1}w^*_jy_{jt})^2

    九、断点回归设计(EDD)

    可以将其看作面板门限模型的退化版本。
    LATE=E(y1ty0tx=c)=limxc+E(yitx)limxcE(yitx)Di=I(xic)LATE = E(y_{1t}-y_{0t}|x=c)=\lim_{x\to c^+}E(y_{it}|x)-\lim_{x\to c^-}E(y_{it}|x) \\ D_i = I(x_i \geqslant c)
    model:
    yi=α+β(xic)+τDi+γ(xic)Di+εiy_i=\alpha+\beta(x_i-c)+\tau D_i+\gamma(x_i-c)D_i+\varepsilon_i

    rdbobust *断点回归
    rdbselect *最优带宽
    rdbinselect *箱体
    
    rdrobust depvar var, c(var.mean) *采用平均值
    rdrobust depvar var, c(var.mean) bwselect(mserd)
    rdrobust depvar var, c(var.mean) bwselect(cerrd)
    
    展开全文

空空如也

1 2 3 4 5 ... 20
收藏数 1,370
精华内容 548
关键字:

面板数据分析