全部版块 我的主页
论坛 计量经济学与统计论坛 五区 数据交流中心 数据求助
691 0
2025-07-16
在 Stata 里跑 空间杜宾模型(SDM)最常用、最稳的两条命令就是:  
1) 截面/面板通用→ `xsmle`(官方套件)  
2) 传统截面→ `spreg` / `spregxt`(用户包)  


✅ 1. 面板 SDM:xsmle(官方推荐)
(1)安装与帮助
```stata
ssc install xsmle, replace
help xsmle
```

(2)语法骨架
```stata
1. 声明面板
xtset id year             // id 为地区,year 为时间

2. 读入空间权重矩阵(已做行标准化)
spmat import W using "W.spmat", replace

3. 估计面板 SDM
xsmle y x1 x2 x3,        ///
      wmat(W)            /// 空间权重
      model(sdm)         /// 指定 SDM
      fe                 /// 固定效应(也可选 re 随机效应)
      vce(cluster id)    /// 稳健标准误
      durbin(x1 x2)      /// 这些变量生成 WX 项
      effects            /// 输出直接/间接/总效应
```

(3)结果解读
- 系数表:ρ(Wy)显著 → 存在空间滞后;θ(Wx)显著 → 解释变量存在溢出效应。  
- `effects` 选项会自动给出 直接效应 / 间接效应 / 总效应。

---

✅ 2. 截面 SDM:spreg / spregxt
(1)安装
```stata
ssc install spreg, replace
```

(2)截面语法
```stata
读入空间权重(邻接或距离)
spatwmat using "w.dta", name(W) standardize

跑截面 SDM
spreg y x1 x2, model(durbin) wmat(W) wlag(x1 x2)
```

---

⚠️ 常见报错速查
| 报错 | 原因 | 解决 |
|---|---|---|
| `1/max eigenvalue of W` 缺失 | 权重矩阵未标准化 | 用 `spmat ... , normalize(row)` |
| `durbin() only allowed with model(sdm)` | 误把 `xsmle` 写成 `spreg` | 检查命令,面板用 `xsmle` |
| `_mata_matrices_xsmle() not found` | Mata 文件未加载 | `mata: mata mlib index` 后重启 Stata |

---

📌 一句话总结
- 面板数据→ `xsmle ..., model(sdm)` 最省心,官方维护、效应分解一步到位。  
- 截面数据→ `spreg ..., model(durbin)` 轻量快速。  

把权重矩阵标准化、变量顺序对齐后,直接复制上面模板即可跑通。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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