楼主: cym1110
4988 5

[面板数据求助] 使用高维固定效应命令(reghdfe/ppmlhdfe)后如何找到回归中真实使用的观测值 [推广有奖]

  • 0关注
  • 0粉丝

大专生

98%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.4500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
106 点
帖子
7
精华
0
在线时间
122 小时
注册时间
2020-5-11
最后登录
2024-1-28

楼主
cym1110 发表于 2022-10-22 11:17:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教各位老师,在使用高维固定效应命令后,许多观测值由于singletons会被自动删除,我们应该如何找到这部分被删除的观测值呢?以便获取回归中真实使用样本的描述性统计。希望各位老师能够帮学生答疑解惑,谢谢大佬们了!
二维码

扫码加我 拉你入群

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

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

关键词:固定效应 观测值 REG GHD PML Stata 高维面板HDEF 高维度之固定效应 reghdfe命令 ppmlhdfe

沙发
黃河泉 在职认证  发表于 2022-10-22 16:15:14
請看看 (last row)
  1. webuse grunfeld, clear

  2. set seed 1213
  3. gen r = runiform()
  4. replace invest = . if r < 0.5

  5. drop if company == 1 & year > 1937

  6. reghdfe invest mvalue kstock, a(company year) vce(robust)
  7. gen d = e(sample)
复制代码

藤椅
cym1110 发表于 2022-10-22 16:22:09
黃河泉 发表于 2022-10-22 16:15
請看看 (last row)
黄老师您太牛了!问题已解决,学生感激不尽啊!!

板凳
shuangshuangle 在职认证  发表于 2022-10-22 19:41:47
nice to share

报纸
dll下 在职认证  发表于 2024-6-19 16:54:54
你好,如果用删除singletons前的样本做描述性统计是否可行,同时我回归表格中汇报的也是删除前的观测值数,这样是可以的吗?

地板
赵安豆 发表于 2024-7-2 14:30:16
当你在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学术大模型生成,添加下方二维码,优先体验功能试用



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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-6 23:47