凡是搞计量经济的,都关注这个号了
稿件:econometrics666@126.com
所有计量经济圈方法论丛的code程序, 宏微观数据库和各种软件都放在社群里.欢迎到计量经济圈社群交流访问.
与队列关键词相关的1.截面/队列DID大有前途, 让微观调查数据得以与DID方法结合起来,2.那个发AER的中国学者又用‘队列DID’方法与世界计量院士合作在JDE上发文了!3.AER中截面数据(队列)DID的程序和数据开放下载!来自中国四学者的最新研究!
不过本文主要讲Age-Period-Cohort分析,所谓的年龄—时期—队列分析及其实现过程,以及相应的经典书籍。计量经济圈公众号搜索功能及操作流程演示
正文
首先看看为什么进行Age-Period-Cohort分析,所谓的年龄-时期-队列分析的优势何在?
在趋势研究中虽然我们可以主要关注一种时间维度,例如,幸福感随时期的变化,但是在实际研究中会不可避免地同时涉及年龄、时期和队列三种维度。当忽略年龄和队列而讨论时期变化时,其潜在的假设是,对于每一个观测时期,年龄和队列的构成基本相似或者不同的年龄和队列不会对观测的因变量产生分化影响。而在现实情况中,这样的假设常常不成立,那么我们观察到的主观幸福感随时期的变化可能还混入了因为队列构成不同所产生的队列效应。因此,要真正了解主观幸福感在时期维度上的变化,需要分离出其中可能的队列和年龄效应,也就是进行所谓的年龄、时期和队列( APC) 分析。当然进行APC 分析的目的不仅仅限于对趋势的获取上。获得真实的年龄、时期和队列效应对理解趋势的形成机制及其影响因素具有重要的意义。年龄效应通常指代与生理年龄改变相关的生理、心理及社会地位转变所引起的变化。在本文中,年龄效应反映了由年龄主导的身体机能的改变以及社会角色的转换等内在力量对个人生活满意度的影响。时期效应代表着与时期变化相联系的改变,它们通常是由外部环境因素在某个时期的瞬时作用所引起的,包括特殊历史事件、社会经济环境的改变以及新技术的突破等。时期效应最显著的特征是它的影响力会一致地波及同一个时期所有年龄段的人群。众多研究所关心的经济发展产生的影响通常以时期效应的方式直接作用在个体的幸福感上。队列效应,则体现在它的影响集中在对同一时间出生的群体上。这些个体共同经历的一些历史事件或者社会变迁,逐渐在他们身上产生相同的烙印,以外力( 例如社会重大事件) 与内力( 例如个体发展过程)交互作用的方式通过缓慢积累或者延迟发生来对个体幸福感产生影响。可以看出,幸福感在不同时间维度上的趋势有其独特意义。过分聚焦时期维度,会在一定程度上忽略驱动幸福感变化的一些重要机制以及对整体趋势的解读。特别的,在对我国居民主观幸福感趋势的研究中引入队列维度具有重要意义。因为针对我国居民主观幸福感的调查所涵盖的时期都相对较短( 大部分在20 世纪90 年代以后) ,而通过对队列的划分,可以利用同样的数据获得幸福感在更长时间范围内的变化趋势,因而可以在更大时间尺度上关注宏观因素的历史作用。但正如上面所讨论的,宏观因素在时期和队列上的作用机制是有差异的。如果说时期趋势体现了外部因素的瞬时效应,那么队列趋势则反映了外部因素与个体内在发展的交互作用,即外部的历史因素作用于不同生命阶段的个体,从而对人群产生了分化。因此,我们需要用生命历程的视角来解释这些宏观因素在队列中的效用。要同时估计年龄、时期和队列的趋势效应,并且破除它们之间的相互干扰因素,需要进行APC分析。但在实际应用中要执行有效的APC 模型非常困难,其主要原因是APC 这三个维度间的完全共线性,即只要知道三个因素中的任意两个,第三个因素将会被唯一决定。因此,普通线性分析无法得出三者的唯一解。这就是APC 分析中著名的“不确定性问题( identification problem) ”。近些年来,APC 分析有了一些新发展,其中最具代表性的是杨扬( Yang) 和兰德( Land) 提出的以分层随机效应模型方法来解决共线性问题。这种方法不仅开启了APC 分析的新思路,也可以更直接方便地用来分析以问卷调查为基础的微观数据。杨扬利用该模型分析了美国居民主观幸福感的时期和队列趋势,并验证了作为队列因素的“婴儿潮( baby boom) ”对主观幸福感的负面影响。
然后看看,当前估计年龄-时期-队列效应的主要方法?APC 分析因其三者天然的共线性而无法获得有效分解。近年来,一个比较突出的解决方法是杨扬和兰德提出的分层APC 交叉分类随机效应模型( Hierarchical APC-Cross-Classified Random Effects Models,HAPC-CCREM)。此模型假设APC 三元素中,年龄为固定效应,时期和队列为随机效应。这种构成打破了三者的简单线性关系,使得APC 互相间的线性约束不再成为问题。具体来说,分层随机模型使得三元素不再处于同一个层面,而是产生了嵌套关系。这样高阶层面的时间维度在某种意义上变成了环境变量,它对个体层面的影响体现在对回归系数和截距的影响上。另一个突出的优点是,该方法可以直接用在微观调查数据上,从而大大拓宽了APC 方法的使用范围。
具体来说,这个方法利用重复测量的横截面数据,首先,把队列组合成一系列队列组( 在此研究中三年分为一个队列组) ,每个队列组的长度应该是两年或者两年以上。如果是单年队列同时对应单年时期,那么在每一个队列x 时期的小格子里都只有一个年龄组,无法完成分层效应的估计。当把几个队列合并成一个队列组时,所暗含的假设是这些组内的队列效应相同或者非常相似。其次,把数据排列成队列组x 时期的形式。我们一共有25 个队列组和6 个时期形成25 × 6 的数据矩阵。每一个个体测量数据会根据自己所属的队列组与时期被纳入对应的小格子里,形成嵌入式的分层数据结构。依据以上说明,HAPC-CCREM 方法的数学表达式如下。
上述文字来自于《哪一代人更幸福?———年龄、时期和队列分析视角下中国居民主观幸福感的变迁》,文后小程序里有pdf版本。
再就是介绍一下这种方法在软件中的实现过程,以及该程序相关介绍。
第一种实现方式对应的程序为apc_ie.
apc_ie 使用 Yang、Fu 和 Land (2004) 描述的内在估计量 (intrinsic estimator,IE) 估计具有年龄、时期和队列效应的广义线性模型。设计矩阵(design matrix)的结构——即年龄组和时间段的数量——可能会影响从传统 CGLIM 估计中获得的估计值(参见 apc_cglim)。IE 采用特殊的主成分回归,消除了设计矩阵的空(列)空间对估计量的影响。IE 估计一个受约束的参数向量,该向量对应于模型参数在设计矩阵的非空(列)子空间上的投影。apc_ie 通过特殊的主成分回归计算这个受约束的参数向量。估计算法首先将正交矩阵变换应用于线性模型的 X'X 矩阵(或其在广义线性模型中的等价物)。此变换产生矩阵的非零特征值和相应的特征向量。然后通过使用这些特征向量作为变量来估计主成分回归。在估计主成分回归模型后,为了便于解释,反向使用正交化矩阵变换将估计的回归系数转换回原始年龄、时期和队列效应。IE 没有从每组指示变量中省略一个参考类别,而是使用每组中系数之和为零的约束条件。apc_ie 中的算法为年龄、时期和队列的每个唯一值设置一个指示变量,并将其加到到自变量列表中,但为计算的目的,需要为每个年龄、时期和队列省略一个类别。因为年龄+队列=时期,额外的指示变量就显得多余了。因此,apc_ie 将 A-1+P-1+C-1 指示变量替换为对应于非零特征值的 A-1+P-1+C-2 主成分。估计主成分回归后,IE 使用零和约束来获得删除的年龄、时期和队列类别的估计值。因为IE——包括从零和约束得到的系数——是主成分模型中系数的线性变换,所以IE的方差-协方差矩阵为V_ie=BV_pcB',其中B为 一个变换矩阵,V_pc 是主成分估计值的方差-协方差矩阵。有关在广义线性模型中计算方差-协方差矩阵的选项,请参见 glm;;apc_ie 只是将转换应用于你选择计算的任何方差-协方差矩阵。IE 始终基于设计矩阵的主成分来定义,该设计矩阵的每个年龄单元格有一个观察值。每个单元格的缺失数据或多个观察值不会影响计算 IE 时使用的主成分。同样,主成分不依赖于独立变量或权重。但是,如果任何独立变量与年龄、时期或队列共线,或者如果年龄-时期矩阵中有太多单元格没有数据,则仅消除一个主成分并不能解决识别问题。发生这种情况时,apc_ie 会返回错误。age(varname)、period(varname) 和cohort(varname) 指定年龄、时期和队列变量。必须指定这三个中的至少两个。如果指定了所有三个,则它们必须满足 age+cohort=period。如果只指定两个,则根据age+cohort=period 生成缺失变量。Yang, Y., Fu, W., and Land, K. 2004. A Methodological Comparison of Age-Period-Cohort Models: The Intrinsic Estimator and Conventional Generalized Linear Models. Sociological Methodology 34(1), 75-110.Stata codes for the IE results:#step 1: data preparation
insheet using all_mortality_f.txt
#step 2: run model
apc_ie death if age<=85 & age>=20,
age(age) period(period) cohort(cohort) family(poisson) link(log)
exposure(exp);
estimates store IE;第二种实现方式对应的程序为apc-cglim。
apc_cglim 估计年龄-时期-队列模型,其中对系数使用单个等式约束来解决年龄-时期-队列识别问题。apc cglim为年龄、时期和队列的每个唯一值赋值一个指示变量,并将其添加到自变量列表中,在对这些指示变量施加约束后执行glm回归。注意,尽管 CGLIM 模型通常可以涉及多个约束,但 apc_cglim 仅施加一个约束。有关 CGLIM 模型的讨论,请参见 Yang、Fu 和 Land (2004) 以及 Mason 和 Smith (1985)。从指示变量集里省略了年龄、时期和队列中的第一类。必须对另一个指示变量的系数加以约束以实现识别目的。apc_cglim depvar [indepvars] [if exp] [in range] [weight] , constraint(constraintspec) agepfx(string) periodpfx(string) cohortpfx(string) [age(varname) period(varname) cohort(varname) generate(newvarname) glm_options]apc_cglim 允许施加如下约束:一个指示变量的系数等于另一个指示变量的系数。constraintspec 是“r#=s#”形式的字符串,其中 r 和 s 可以分别是 a、p 或 c,其中 # 可以是出现在数据集中的年龄、时期或队列的任何值。例如,constraint("a2=c6") 将年龄=2 的指示变量的系数设置为队列=6 的指示变量的系数。第一个系数的值不能是该类别的最低值,因为最低的指示变量已经被省略。要将系数约束为零,请将约束中的第二个系数设为该类别中的最小值,例如 a2=a1,如果年龄的最小值为 1,并且你希望将 age=2 指标上的系数约束为零。agepfx(string)、periodpfx(string) 和 crowdpfx(string) 为生成的指示变量指定存根名称。名称出现在输出结果中,指示变量在使用后将出现在数据集中。具有这些名称的变量必须不存在。age(varname)、period(varname) 和cohort(varname) 指定年龄、时期和队列变量。必须指定这三个中的至少两个。如果指定了所有三个,则它们必须满足 age+cohort=period。如果只指定两个,则根据age+cohort=period 生成缺失变量。generate(newvarname) 将生成的年龄、时期或队列值存储在新变量中。Stata codes for the CGLIM 3 results:apc_glim death if age<=85 & age>=20,
age(age) period(period) cohort(cohort)
agepfx(“_A”) periodpfx(“_P”) cohortpfx(“_C”) family(poisson) link(log)
exposure(exp) constraint(“C1=C2”);
estimates store CGLIM3;导入数据如下,age为年龄,year为时期,cohort为队列,因变量为death_f,自变量可以根据自己的因变量进行选择。
使用apc_cglim做的APC分析,其结果如下:
数据和代码如下,可以自行前往Yang Yang主页下载运行,社群群友可以在社群提取使用:
这是一本经典的年龄—时期—队列分析书籍
长按以上小程序即可下载文中提及到的中文和这本英文APC分析书籍PDF
Yang Yang的主页: https://yangclaireyang.web.unc.edu/age-period-cohort-analysis-new-models-methods-and-empirical-applications/chapter-5/
关于DID,参看:1.120篇DID双重差分方法的文章合集, 包括代码,程序及解读, 建议收藏!2.诚实双重差分法DID, 面板事件研究法和Bacon分解的经典应用文!3.前沿: 多期或渐进或交叠DID, 如何进行平行趋势检验呢?4.多期DID或渐进DID或交叠DID, 最新Stata执行命令整理如下供大家学习,5.DID前沿: 5种方法估计事件研究的因果效应, 并使用绘制系数和置信区间, 详细代码和数据,6.事件研究法开展政策评估和因果识别, 分享8篇提供数据和代码的文章,7.推荐用渐进(多期)DID和事件研究法开展政策评估的论文及其实现数据和代码!8.机器学习已经与政策评估方法, 例如事件研究法结合起来识别政策因果效应了!
下这些短链接文章属于合集,可以收藏起来阅读,不然以后都找不到了。