1378 1

[编程问题求助] 如何用stata【分组】做有放回抽样? [推广有奖]

  • 2关注
  • 1粉丝

VIP1

博士生

4%

(VIP/贵宾)八级

91%

威望
0
论坛币
9016 个
通用积分
1162.4838
学术水平
135 点
热心指数
136 点
信用等级
135 点
经验
7837 点
帖子
254
精华
0
在线时间
196 小时
注册时间
2020-10-2
最后登录
2023-9-2

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
几年前的一个帖子:
如何用stata做有放回抽样?
比如说我现在有一列叫做v1的数据,一共有10个值,我想从中随机抽取一个值,并把这个值赋值给一个标量s,要怎么做?
注意因为要重复抽样,所以原始数据也就是v1是不能改变的,只是随机从中选择一个值。
用sample似乎没法对特定的变量进行抽样,要抽就所有变量一起抽,而且把没抽中的都删除掉,所以似乎不行。
最佳答案:di v1[_N*uniform()]


现在如果这一列数据v1是按照id分组的(面板数据),一共有n个id,我想从中随机抽出一个组,一共抽取n次,并将抽取的值赋值给一个新的变量v2,该怎么做?
同样保持原始数据不能改变。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Stata tata 如何用 Uniform Sample

沙发
罗润万(|Toby) 学生认证  发表于 2021-7-20 10:57:38 |只看作者 |坛友微信交流群
用for循环写了这样的代码:
   g  v2 = 0
   forvalues i = 1/n {
   local x = n*uniform()
     forvalues j=1/t {         //t为每组组内变量个数
         local y=floor(`x')*t+`j'
         local a=`i'*t+`j'-t
     replace v2=v1[`y'] in `a'
         }
   }
但是感觉很麻烦,有没有简单点的办法呢。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
MarryW + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-28 22:04