如何在Stata中基于家庭成员年龄计算家庭得分?
Stata 家庭得分计算实现方案
以下是满足需求的Stata命令步骤,逻辑清晰且易于验证:
核心命令序列
* 1. 按家庭计算所有成员的基础贡献总和 egen base_score = total(cond(Age > 14, 0.5, 0.3)), by(Household_ID) * 2. 标记家庭是否存在年龄超过14岁的成员(1=存在,0=不存在) egen has_adult = max(Age > 14), by(Household_ID) * 3. 计算最终得分:基础分 + 额外加分(有成年成员则加0.5) gen Score = base_score + has_adult * 0.5 * 可选:清理中间变量 drop base_score has_adult
命令说明
cond(Age > 14, 0.5, 0.3):对每个成员判断年龄,超过14岁贡献0.5,14岁及以下贡献0.3total(..., by(Household_ID)):按家庭分组,把所有成员的贡献值求和得到基础得分max(Age > 14, by(Household_ID)):检查家庭中是否有成员年龄>14,只要有一个就返回1,否则返回0- 最终得分通过基础分加上额外的0.5(当存在成年成员时)得到,同一家庭的所有成员会自动拥有相同的
Score值
示例验证
以无子女的成年夫妇为例:
- 两个成员年龄都>14,基础分总和为
0.5 + 0.5 = 1 has_adult为1,额外加0.5,最终得分为1 + 0.5 = 1.5,符合需求描述
内容的提问来源于stack exchange,提问作者mostlyharmless563
相关产品推荐
相关产品推荐

