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

如何基于学生层面数据在学校层面生成十分位?含学习不平等指数需求

解决学校层面学习不平等指数的Stata代码优化

原代码的核心问题是没有按学校内部分组生成成绩十分位,xtile命令默认是全局计算分位数,导致分位划分不是基于每所学校的学生群体,而是所有学生的整体分布。不需要用foreach循环,用bysort配合xtile就能实现校内分位划分,修正后的代码如下:

* 1. 按学校分组,生成每所学校内部的成绩十分位
bysort IDSCHOOL: xtile pv_deciles = avg_pv, nq(10)

* 2. 计算每所学校后50%学生(第1-5分位)的平均成绩
bysort IDSCHOOL: egen school_pv_bottom50 = mean(avg_pv) if pv_deciles <= 5
bysort IDSCHOOL: replace school_pv_bottom50 = max(school_pv_bottom50), by(IDSCHOOL)

* 3. 计算每所学校前10%学生(第10分位)的平均成绩
bysort IDSCHOOL: egen school_pv_top10 = mean(avg_pv) if pv_deciles == 10
bysort IDSCHOOL: replace school_pv_top10 = max(school_pv_top10), by(IDSCHOOL)

* 4. 生成学校层面的学习不平等指数(前10%与后50%的成绩差)
gen school_inequality = school_pv_top10 - school_pv_bottom50

* 5. 保留学校层面的唯一观测值
bysort IDSCHOOL: keep if _n == 1
isid IDSCHOOL  // 验证每所学校仅保留一行数据

代码说明:

  • bysort IDSCHOOL: xtile ...:强制在每所学校内部划分成绩十分位,确保分位是校内相对排名
  • 用replace + max(...)替代原代码的额外egen max_...,直接把缺失值替换为学校内的对应平均值,简化步骤
  • bysort IDSCHOOL: keep if _n == 1:替代原代码的重复值处理逻辑,更简洁地保留学校层面唯一值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 01:35:27