You need to enable JavaScript to run this app. Stata中纳入抽样权重统计年度符合条件个体观测数量的方法咨询
优惠活动
大模型
产品
解决方案
定价
更多

Stata中纳入抽样权重统计年度符合条件个体观测数量的方法咨询

Stata纳入抽样权重的分年度计数实现方法

实现逻辑

你需要统计的加权个体数本质是符合var1==1 | var1==2条件的观测的抽样权重总和,对应抽样设计下的目标群体规模估计值。

代码实现

方案1:兼容原有循环逻辑(改动最小)

把原有count命令替换为带权重参数的summarize命令,调用返回值r(sum_w)(权重总和)即可:

gen var1_weighted_count = .
foreach i of numlist 1997/1999 {
    summarize weight if (var1==1 | var1==2) & time==`i' [pweight=weight]
    replace var1_weighted_count = r(sum_w) if time==`i'
}

以你提供的示例数据运行后,各年度结果如下:

  • 1997年:413.2(权重400+13.2加总)
  • 1998年:200(仅ID1的观测符合条件)
  • 1999年:0(无符合var1条件的观测)

方案2:无需循环的简洁写法

* 生成符合筛选条件的标识
gen eligible = (var1==1 | var1==2) if !missing(var1)
* 按年度分组直接计算加权总和
bysort time: egen var1_weighted_count = total(eligible * weight)

方案3:需要输出标准误的统计推断场景

如果需要同时输出加权计数的标准误,可使用svy系列命令:

* 先声明抽样设计
svyset [pweight=weight]
* 按年度输出符合条件的加权计数及标准误
svy, subpop(if eligible == 1): tab time, count se

注意事项

  • 不要使用summarize返回的r(sum)作为结果,该值是变量weight的加权统计量,不是权重本身的加总
  • 如果存在缺失值,建议提前对var1、time、weight字段做缺失值筛查,避免统计结果偏差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 21:45:04