Stata应用记录 | 如何计算CFPS数据库的家庭人口数量?

发布时间:2024年01月14日

温馨提示:本文内容为个人研究过程中的经验总结,仅供参考

示例数据:CFPS 2020年家庭关系数据库,文件名为cfps2020famconf_202306

数据下载链接: _中国家庭追踪调查 (pku.edu.cn)

使用情境

在CFPS问卷中未能找到对受访者子女数量的自答问题,所以使用CFPS的家庭关系数据库间接计算每个家庭的未成年人数量作为参考。

变量生成思路

由于CFPS将“经2010年基线调查界定出来的所有基线家庭成员及其今后的血缘/领养子女将作为CFPS的基因成员”作为永久追踪对象,所以尝试计算同一家庭内年龄在0-18岁之间的成员数量,作为家庭子女数量的参考变量。并使用数据库中的“familysize20”变量进行检验。

CFPS相关变量解释

变量名

变量标签

算法简要描述

familysize20

家庭成员人数

汇总同一个家庭编码内部co_a20_p=1的人员总数

co_a20_p=1

个人是否与该家庭经济上是一家人

优先以离家人主观判断是否经济独立为准,其次以原生家庭的主观判断来界定

tbiy_a_p

个人出生年

新采集信息及往年已有出生年信息的综合

表格内容参考CFPS《中国家庭追踪调查2020年数据库介绍及数据清理报告》https://www.isss.pku.edu.cn/cfps/docs/20230629171546061292.pdf

Stata参考代码

**生成年龄变量
gen age=2020-tb1y_a_p if tb1y_a_p>0
//计算受访者调查当年的年龄,即调查当年年份-个人出生年

tab age
//检查是否有负数等异常值

drop if co_a20_p==0
//由于此处计算家庭内子女数量,故删去“与该家庭经济上非一家人”的数据


**计算家庭未成年人数量
gen m=1 if age<18 & age>=0
replace m=0 if m==.
//生成新变量m,基于年龄给数据库中的未成年人打标签

bys fid20: egen child=sum(m)
//基于家庭编码fid20分组,计算每个家庭的未成年人总数

**计算家庭成年人数量
gen n=1 if age>=18
replace n=0 if n==.
//生成新变量n,基于年龄给数据库中的成年人打标签

bys fid20: egen adult=sum(n)
//基于家庭编码fid20分组,计算每个家庭的成年人总数

**数据验证
gen fsize=child+adult
//生成新变量家庭规模=未成年人总数+成年人总数

tab fid20 if fsize!=familysize20
//列出手动生成的家庭规模变量fsize与数据库中已有的家庭规模变量familysize20不相等的家庭编码,如果显示“no observation”就大功告成!

Tips

  1. 选用家庭关系数据库的原因在于,个人问卷中不含部分0-16岁使用代答问卷的少儿,而家庭关系数据库能包含该家庭所有成员的样本;

  2. 部分年份的数据库可能出现个人出生年(即tb1y_a_p变量)部分数据缺失的情况,影响家庭未成年人数量计算的准确性,并在进行数据验证时出现fsize与familysize20不相等的情况;

  3. 使用此方法可以计算家庭中任意年龄段的人口数量,同样适用于计算家庭劳动年龄人口、老年人口等变量。

文章来源:https://blog.csdn.net/Alice_loong/article/details/135492293
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。