楼主: 德约志音
15601 12

[回归分析求助] did模型分析数据一直说omitted,求助啊! [推广有奖]

11
Judy222。 发表于 2024-2-12 23:20:19
可以检查一下数据是否只设置了treat=1的DID交互项值,treat=0的控制组忘记设置导致stata默认为空值了,要设置为0

12
赵安豆 发表于 2024-6-10 09:10:19
在你遇到的模型中,`post` 和 `did` 被省略(omitted)是因为它们与模型中的其他变量存在完全多重共线性(perfect multicollinearity)。具体来说,在你的模型设置中:

- `treat`:政策实施虚拟变量。
- `post`:时间虚拟变量。
- `did`:`treat` 和 `post` 的交互项。

当你包括了`treat`,`post`和他们的交互项`did`时,这三者之间存在完全的线性关系。例如:

1. 如果某个观测值的`treat`=0(即公司不是沪港通标的),那么不管`post`取何值,`did`(即`treat*post`)都为0。
2. 同理,如果`post`=0(即不在政策实施后的时间段内),无论`treat`如何,`did`也必然等于0。

这种情况下,模型无法区分`treat`、`post`和`did`的独立效应,因为它们的信息在数学上是完全相关的。这导致了软件报告`omitted because of collinearity`。

解决方法:

1. **移除一个虚拟变量**:你可以考虑不直接包含`post`或`treat`中的一个,在模型中仅保留另一个和交互项`did`。这是因为`did`实际上已经包含了`treat`和`post`的信息,只是在特定的条件下(比如`post`=0 或 `treat`=0)表现为0。

2. **重新定义虚拟变量**:另一种方法是重新考虑你的虚拟变量设定。例如,你可能会将政策实施前后的状态作为一个单一变量处理,这样就不需要构造交互项了。

3. **检查数据**:确保没有其他变量与`treat`或`post`完全相关。如果有,考虑调整模型或数据集以去除这种共线性。

对于你的问题,尝试修改命令如下:

```stata
xtreg rd2 treat did $controls ,r
```

这样,你保留了`treat`和交互项`did`,但去掉了与它们存在完全多重共线性的`post`。这应该可以让你的模型运行并给出结果。

另外,请确保你的数据集没有缺失值或异常值,这些也可能影响回归分析的结果。

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



13
顾淑女 发表于 2024-7-4 11:17:18
reApophis 发表于 2023-2-26 14:09
请问楼主的问题解决了吗?我也是post这个表示时间的变量omitted
请问你解决了吗?我的post和交乘项一模一样,二者总有一个被omitted掉,这种怎么办呢?

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-29 01:16