You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stata中如何计算分年龄组婚姻率年度变化率并绘制趋势图

解决方案

1. 计算婚姻率年度变化率

你的代码问题出在括号位置错误,正确的变化率公式应为(本期值 - 上期值)/上期值,每个年龄组的第一年没有上期数据,会自动生成缺失值,这是合理的。

方法一:手动修正公式

直接调整括号位置,重新生成变量:

bysort age (year): gen marriage_growth = (prop.married - prop.married[_n-1]) / prop.married[_n-1]

如果需要将变化率转为百分比,乘以100即可:

bysort age (year): gen marriage_growth_pct = 100 * (prop.married - prop.married[_n-1]) / prop.married[_n-1]

方法二:用Stata内置growth命令

Stata有专门计算增长率的命令,写法更简洁:

bysort age (year): gen marriage_growth = growth(prop.married)

该命令会自动计算(x_t / x_{t-1}) - 1,和手动公式结果一致,同样第一年为缺失值。

2. 绘制各年龄组折线图

用line命令即可实现分组折线图,x轴为年份,y轴为变化率,按年龄组区分线条:

分图展示各年龄组趋势

line marriage_growth year, by(age) /// 每个年龄组单独生成一幅图
    title("婚姻率年度变化率趋势") /// 总标题
    ytitle("年度变化率") /// y轴标题
    xtitle("年份") /// x轴标题
    legend(off) /// 按组分开后无需图例

同图对比所有年龄组趋势

line marriage_growth year, by(, title("婚姻率年度变化率趋势")) /// 统一总标题
    ytitle("年度变化率") xtitle("年份")
    legend(label(1 "27-31") label(2 "32-36") label(3 "37-41") label(4 "42-45") label(5 "X-X")) /// 根据实际年龄组修改标签

如果想绘制婚姻率本身的时间趋势(而非变化率),把代码中的marriage_growth替换为prop.married即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:06:52