1352 1

[问答] 多期DID平行趋势检验drop掉前一期怎样在图中将点标出 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

0%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
10 点
帖子
0
精华
0
在线时间
0 小时
注册时间
2025-1-16
最后登录
2025-1-16

楼主
美国道指06838 发表于 2025-1-16 17:31:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
在 Stata 中进行多期DID分析时,平行趋势检验是关键步骤之一。如果您在平行趋势检验中 **drop 掉前一期(例如 `time=-1`)** 的处理效应,但仍希望在图中对该点进行标注,可以通过以下方法实现。具体操作包括标记被删除的点,并将其在图中用特定的符号或文字进行可视化。
以下是完整的实现步骤:
---
### **1. 数据准备**
假设您已经基于多期DID估计出了时间点对应的处理效应及置信区间,并存储在一个数据集中。例如,数据可能如下:
| `time` | `coef` | `ci_low` | `ci_high` |
|--------|--------|----------|-----------|
| -3     |  0.1   | -0.05    |  0.25     |
| -2     |  0.05  | -0.1     |  0.15     |
| -1     |  .     |   .      |    .      |  *(被 drop 的点)*  
|  0     |  0.2   |  0.1     |  0.3      |
|  1     |  0.3   |  0.2     |  0.4      |
|  2     |  0.4   |  0.3     |  0.5      |
其中:
- `time` 是时间点。
- `coef` 是处理效应系数。
- `ci_low` 和 `ci_high` 分别是置信区间的下界和上界。
- `time=-1` 是前一期时间点,已在分析中被 drop 掉。
---
### **2. 绘制基础平行趋势图**
使用 `twoway` 绘制有效时间点的处理效应和置信区间。
#### 绘制处理效应和置信区间:
```stata
twoway (rcap ci_low ci_high time) /// 置信区间
       (scatter coef time, msymbol(O)) /// 处理效应点
```
---
### **3. 标注被 drop 的点**
在图中标注被 drop 的点,可以通过以下方法:
#### **
(1) 创建一个标记 drop 点的新变量**
为被 drop 的时间点(例如 `time=-1`)创建一个数据点,用于标注:
```stata
gen dropped_point = 0 if time == -1
```
- `dropped_point` 为新变量,其值为 0(或其他默认值),被 drop 的点会显示在 x 轴(`time=-1`)上。
若需要为被 drop 的点添加特殊的文字标注:
```stata
gen dropped_label = "Dropped" if time == -1
```
#### **
(2) 在图中添加点和标注**
将被 drop 的点添加到原图中,并用文字说明标记:
```stata
twoway (rcap ci_low ci_high time) /// 置信区间
       (scatter coef time, msymbol(O)) /// 处理效应点
       (scatter dropped_point time, msymbol(D) mcolor(red)) /// 标记 drop 的点
       (scatteri 0 -1, mlabel(dropped_label) mlabsize(small) mlabcolor(red)) /// 添加文字标注
```
- `scatter dropped_point time`:用红色的符号(例如 `D`)标记被 drop 的点。
- `scatteri`:手动添加文字标记。
---
### **4. 完整实现代码**
以下是完整的 Stata 示例代码:
```stata
* 示例数据
clear
input time coef ci_low ci_high
-3  0.1  -0.05  0.25
-2  0.05 -0.1   0.15
-1  .     .      .    // 前一期被 drop
0  0.2   0.1    0.3
1  0.3   0.2    0.4
2  0.4   0.3    0.5
end
* 创建被 drop 点的标记变量
gen dropped_point = 0 if time == -1
gen dropped_label = "Dropped" if time == -1
* 绘制图表
twoway (rcap ci_low ci_high time) /// 置信区间
       (scatter coef time, msymbol(O)) /// 有效处理效应点
       (scatter dropped_point time, msymbol(D) mcolor(red)) /// 红色标记被 drop 的点
       (scatteri 0 -1, mlabel(dropped_label) mlabsize(small) mlabcolor(red)) /// 添加文字说明
```
运行上述代码后,您将获得一张图表,其中:
- 有效时间点的处理效应用圆圈表示。
- 被 drop 的时间点(如 `time=-1`)用红色符号 `D` 标记。
- 图中显示文字说明 "Dropped"。
---
### **5. 高级改进**
如果需要进一步优化图表设计,可以尝试以下方法:
#### **
(1) 添加网格线和参考线**
添加辅助线(如 x 轴的基准线)以便于解释:
```stata
twoway (rcap ci_low ci_high time) ///
       (scatter coef time, msymbol(O)) ///
       (scatter dropped_point time, msymbol(D) mcolor(red)) ///
       (scatteri 0 -1, mlabel(dropped_label) mlabsize(small) mlabcolor(red)) ///
       , yline(0, lstyle(dash)) /// 添加水平基准线
         xlabel(-3
(1)
2) ylabel(-0.2(0.1)0.5)
```
#### **
(2) 调整点的颜色和大小**
通过 `msymbol()` 和 `mcolor()` 自定义点的样式:
- `msymbol(O)`:定义圆圈样式。
- `mcolor(blue)`:定义点的颜色。
例如:
```stata
scatter coef time, msymbol(O) mcolor(blue)
```
#### **
(3) 自动调整文字位置**
如果需要自动调整标注文字的相对位置,可以使用 `mlabposition()`。
```stata
scatteri 0 -1, mlabel(dropped_label) mlabposition
(12)
```
---
### **6. 输出效果**
最终图表:
- 有效时间点显示处理效应及其置信区间。
- 被 drop 点(如 `time=-1`)用红点标记,并附有文字说明 "Dropped"。
- 图表清晰标识了每个时间点的处理效应和特殊处理的时间点。
---
二维码

扫码加我 拉你入群

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

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

关键词:drop DID position dropped Scatter

沙发
汉语国际教育12024 发表于 2025-1-17 17:35:06

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

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