全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2600 5
2021-09-09
数据格式:
id   year   x1 x2...
1   2005
1   2006

1   2007
2   2005
2   2006

2   2007

3  2005

3   2006

3   2007
.
.
.
100  2005
100  2006
100  2007

如何将原有的id(1-100)序号打乱(比如说原来的1随机变成19,原来的99随机变成77),其他变量(year x1 x2...)不变,以便进行安慰剂检验。


二维码

扫码加我 拉你入群

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

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

全部回复
2021-9-9 19:32:14
yhd724262263 发表于 2021-9-9 14:09
数据格式:
id   year   x1 x2...
1   2005
你可以生成随机数呀。然后排序就好了。
二维码

扫码加我 拉你入群

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

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

2023-5-10 10:04:01
1226407869 发表于 2021-9-9 19:32
你可以生成随机数呀。然后排序就好了。
小天才
二维码

扫码加我 拉你入群

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

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

2023-5-25 16:43:33
橘子虎 发表于 2023-5-10 10:04
小天才
大哥,你这亲的我有点儿害怕。。哈哈。
二维码

扫码加我 拉你入群

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

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

2024-7-10 21:28:55
1226407869 发表于 2021-9-9 19:32
你可以生成随机数呀。然后排序就好了。
生成随机数排序也会让x1,x2的顺序发生变化呀
二维码

扫码加我 拉你入群

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

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

2024-12-10 22:18:49
要在Stata中打乱原有的`id`分组序号,可以使用以下步骤:

首先,生成一个新的随机变量作为新的`id`。我们可以使用`runiform()`函数来创建一个在0和1之间的均匀分布的随机数,并利用这个随机数对原来的`id`进行排序。

但是,在此之前,我们先需要设置随机数种子(seed),以确保每次运行代码时都可以得到相同的随机结果。这对于研究的可重复性非常重要。

下面就是具体的操作步骤:

```stata
* 假设你已经有了数据集,首先设置随机数种子
set seed 12345

* 确保你的数据是根据原id排序的
sort id

* 使用runiform()生成一个0-1之间的随机变量
gen rand = runiform()

* 根据新的随机值和原id重新排序,使得每个id与一个新的序号对应
sort rand id

* 保留随机顺序,并删除随机数列
drop rand

* 然后你可以创建一个新id列,从1开始给每一行赋值
gen new_id = _n

* 检查结果(可选)
list id year x1 x2 new_id in 1/5
```

这段代码执行完后,`new_id`变量就会是随机分配的新的序号。请注意,在实际的数据集中,你可能需要根据数据的具体情况调整代码。

以上步骤将保证你的原始数据`year`, `x1`, `x2...`等其他列不受影响,并且每个`id`都被重新随机分配了一个新序列号。这个新序列号可以用于进行安慰剂检验(placebo test)。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群