当你在Stata中使用`reghdfe`或`ppmlhdfe`命令时,确实会有部分观测值因为所谓的singletons(即某一固定效应类别中仅有一条观察数据)而被自动剔除。这是因为高维固定效应回归模型依赖于在同一组内有多个观测值来进行估计,单个观测值的组别将不会为模型提供有用的信息并可能引发共线性问题。
为了找到哪些观测值在使用`reghdfe`或`ppmlhdfe`命令后被剔除,你可以采用以下步骤:
1. **保存回归前的样本状态**:在运行回归之前,使用`preserve`命令来保存当前的数据集。这样,在执行完所有操作后,你仍然可以恢复到原始数据集的状态。
```stata
preserve
```
2. **运行你的高维固定效应回归模型**:使用`reghdfe`或`ppmlhdfe`命令进行回归分析,这会自动剔除那些含有singletons的观测值。确保你指定了所有的固定效应变量。
3. **获取保留样本的状态**:运行完回归后,你可以通过检查`e(sample)`矩阵来识别哪些观测值被用于估计模型(即非0值)。这是Stata为回归命令自动生成的一个矩阵,其中包含了每个观测值是否被使用的指示器。1表示使用该观察值进行了回归。
```stata
generate used = e(sample)
```
4. **比较样本变化**:使用`restore`返回到保存的原始数据集状态(即步骤1中执行`preserve`后),然后再次生成`used`变量以标记所有观测值。现在,你可以通过对比两个`used`变量来识别哪些观测值在回归过程中被剔除了。
```stata
restore
generate used_original = 1 // 假设所有原始数据都被使用(或根据需要调整)
```
5. **找出被删除的观察值**:现在,你可以通过比较`used`和`used_original`来找出哪些观测值在回归中被剔除了。
```stata
replace used = 0 // 确保所有原始样本标记为未使用(用于后续对比)
predict double used, xb if e(sample) /* 这里假定你已经运行了回归 */
label define use_status 1 "Used in regression" 0 "Not used"
label values used use_status
```
请注意,上述步骤中有些命令可能需要根据你的具体需求进行调整。特别是`predict double used, xb if e(sample)`部分的使用方式取决于你使用的模型类型和目的。
最后,请记住在执行任何复杂的Stata操作时,始终保存数据并小心处理每个步骤以避免丢失或损坏数据集。希望这些信息对你有所帮助!如果还有其他问题,欢迎继续提问。
此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用