全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
5656 3
2017-11-09
做分组回归时,我用xtile将样本分组,例如分成4组:xtile xx=x, nq(4)
然后我取xx=1和xx=4的组做回归系数比较。
问题:xx=1的组和xx=4的组样本数量差距很大,我想保证这两组样本数量差不多,应该怎么做?
二维码

扫码加我 拉你入群

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

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

全部回复
2021-1-12 18:18:17
同问,楼主解决了吗??为什么分出来的样本数量差很多呢
二维码

扫码加我 拉你入群

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

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

2022-4-6 19:32:08
芝华塔内欧 发表于 2021-1-12 18:18
同问,楼主解决了吗??为什么分出来的样本数量差很多呢
我也遇到了这个问题,好像xtile是分位数分组,不是平均分组。
二维码

扫码加我 拉你入群

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

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

2024-9-24 21:11:37
在Stata中使用`xtile`命令分组时,默认是将数据按照值均匀分割(quantiles),并不直接保证各组中的观察数相等。如果你希望每组的样本量尽可能相同,可以尝试以下方法:

1. **先排序后分组:** 可以通过排序变量来间接控制分组内样本数量。比如你想对一个连续变量`x`按值均匀分割成4个组,但是想要各组样本数相近,你可以首先按照`x`的值进行排序,然后再使用`_n`(Stata中的观测序号)作为输入变量来分组。

    ```stata
    sort x
    xtile xx = _n, nq(16) // 先将数据分成16个小组
    replace xx = int(xx/4) + 1 if xx <= 12 // 然后重新定义xx,使最终分成4组
    ```

   这里用`_n`和`int()`函数来创建初步的细小分组,然后再将这些小分组合并成你想要的大组。但是这种方法可能仍然不会保证每组样本数量完全相同。

2. **使用模数运算:** 另一种方法是基于观测序号(或随机生成的序列)通过模数运算直接定义组别,以尽量平均分配样本。

    ```stata
    gen xx = floor(_n/ ( _N / 4 )) + 1 // 这里假设你希望数据分为4组
    ```

   此命令将每一行观测值根据其在数据集中的位置分配给不同的组。`_N`是Stata中表示样本总数的系统变量,通过除以期望的分组数(这里是4)并取下限整数来决定组别。

3. **随机抽样:** 如果你希望从每个量化组内抽取等量样本进行比较,可以考虑在每组内部进行随机抽样。首先用`xtile`按原计划分割数据,然后在每组中使用`sampling`或`bysort : sample`命令来随机抽取相同数量的观测值。

请根据你的具体需求选择合适的方法,并调整代码中的数字以匹配你的样本大小和分组数要求。如果样本量差异是由于异常值或者分布偏斜引起,你可能还需要对数据进行预处理或考虑使用不同的统计方法来控制这种偏差的影响。

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



二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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