You need to enable JavaScript to run this app. Stata基于失业指示变量按多维度分组计算失业率及可视化实现问询
优惠活动
大模型
产品
解决方案
定价
更多

Stata基于失业指示变量按多维度分组计算失业率及可视化实现问询

分组自动计算失业率的Stata实现

核心逻辑

你的unemp是0/1二元变量,1代表失业、0代表就业,任意分组的失业率 = 组内所有有效样本的unemp均值 × 100,和你手动算的逻辑完全一致:全样本unemp均值是20/100=0.2,乘100就是20%的总体失业率,完全替代你之前手动填数值的低效操作。

你之前写的代码为什么报错

bysort educ: summarize unemp只是在Stata结果窗口输出每组的统计值,summarize本身不会把算出来的均值变成可以赋值给变量的数值,直接用它当replace的赋值来源肯定会报错。

能直接用、可复用的计算方法

不管是按教育、性别、地区分组,核心逻辑都不用变,只要换一下分组变量就行。

教育分组失业率计算

用Stata做组内统计的标准写法,用egen的mean()函数搭配bysort,会自动跳过unemp是缺失值的样本,统计口径和你之前手动tabulate出来的有效样本数完全对得上:

* 按educ分组算失业率,直接得到百分比形式的数值
bysort educ: egen unemp_educ_pct = mean(unemp*100)

顺便给教育变量加个值标签,不然后续画图的时候x轴只会显示1、2、3、4的数字,分不清分组:

* 给educ的编码对应上文字标签
label define educ_lbl 1 "初等教育以下" 2 "初等教育" 3 "中等教育" 4 "高等教育"
label values educ educ_lbl

直接对接原有可视化代码

算出来的unemp_educ_pct可以直接替换你示例代码里的变量,生成横向条形图:

graph hbar (mean) unemp_educ_pct, over(educ) ///
    ytitle("失业率(%)") blabel(bar, format(%9.1f))

注:同一教育组里每个样本的unemp_educ_pct都是同一个数,绘图时用(mean)聚合不会改变结果,完全兼容原有绘图语法。

跨场景复用方法

后面要算性别、年龄段、省份的失业率,完全不用改计算逻辑,只要把分组变量换掉就行,比如性别变量为female:

* 按性别分组计算失业率
bysort female: egen unemp_gender_pct = mean(unemp*100)
* 对应可视化
graph hbar (mean) unemp_gender_pct, over(female) ytitle("失业率(%)")

统计口径调整方法

如果不想把所有非缺失unemp的样本都算进分母,比如仅纳入16-65岁的劳动年龄人口,直接在命令里加筛选条件即可:

* 仅对16-65岁的样本计算教育分组失业率
bysort educ: egen unemp_educ_pct = mean(unemp*100) if age >=16 & age <=65

内容的提问来源于stack exchange,提问作者maldini425

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.02 19:45:07