Stata数据集生成随机分配的50%0/50%1虚拟变量求助
Stata生成50%比例的随机虚拟变量
要生成与DATA列无关、满足50%为1、50%为0的虚拟变量,有两种实用方法:
方法1:近似50%比例(快速简便)
利用Stata的runiform()函数生成0到1之间的均匀随机数,当随机数小于0.5时赋值为1,否则为0,结果近似50%的比例:
generate Dummy = runiform() < 0.5
注:受随机性影响,实际比例可能和50%有微小偏差,但样本量越大越接近理论值。
方法2:严格50%比例(精准控制)
如果需要确保恰好一半观测为1,一半为0,可以结合sample命令实现:
// 先将Dummy初始化为0 generate Dummy = 0 // 随机选取50%的观测(count选项保证数量精确) sample 50, count replace // 将选中的观测的Dummy赋值为1 replace Dummy = 1 if e(sample)
这种方法会严格按照观测数的一半分配1,适合对比例精度要求高的场景。
两种方法生成的虚拟变量都和DATA列的城市ID完全无关,满足需求。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

