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

Stata生成实验受试者首期贡献二进制ID并全期保留的实现问题

Stata固定受试者首轮贡献标识的代码调整方案

你原有代码的问题是仅对period==1的观测值做了赋值,其余轮次对应行的firstroundcont会保持初始赋值的0,无法将首轮身份同步到同一受试者的所有轮次。

可用实现代码

你可以通过分组取受试者首轮值的方式实现需求,默认以sessionID+subject作为受试者唯一识别维度,避免不同实验场次的受试者ID重复:

bysort sessionID subject (period): gen firstroundcont = (contribution[1] > 0)

代码逻辑说明

  • bysort sessionID subject (period):先按实验场次、受试者ID分组,每组内按轮次升序排序,保证每个受试者的第一条观测就是首轮数据
  • contribution[1]:调取每个受试者组内第一条观测(即首轮)的贡献值做判断
  • 生成的二进制标识会自动应用到该受试者的所有轮次观测中,全程保持固定不变

如果需要和你原有书写逻辑对齐,也可以拆分为两步写,执行效果完全一致:

gen firstroundcont = 0
bysort sessionID subject (period): replace firstroundcont = 1 if contribution[1] > 0

注意事项

如果你的受试者ID是全局唯一、不需要区分实验场次的话,删除bysort语句里的sessionID即可,仅保留bysort subject (period)做分组。

内容的提问来源于stack exchange,提问作者Simon Lunn Haubro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:06:05