You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用did_multiplegt_dyn加控制变量后出现“无观测值”错误求助

问题描述

使用De Chaisemartin, C., & d'Haultfoeuille, X.(2024)开发的Stata命令did_multiplegt_dyn执行多期DID回归时,不加控制变量的命令可正常运行:

// 无控制变量的命令
did_multiplegt_dyn outcome PLZ year treat_dummy, effects(8) placebo(6) cluster(PLZ)

但只要加入控制变量(即使是无缺失值的单一变量如age),就会触发“no observations”错误,命令示例:

// 含控制变量的命令
did_multiplegt_dyn outcome PLZ year treat_dummy, effects(8) placebo(6) cluster(PLZ) controls(age)

更换不同控制变量后问题依旧。

可能的原因及解决办法
  • 核心变量与控制变量的共同样本为空:单独检查控制变量无缺失不代表它和核心变量(outcome、PLZ、year、treat_dummy)的共同观测都无缺失。可以先运行无控制变量的回归,然后用count if e(sample)得到有效样本量;再用count if !missing(outcome, PLZ, year, treat_dummy, age)计算所有变量都无缺失的样本量,对比两者是否一致。如果后者为0,说明存在隐性缺失。
  • 命令强制要求平衡面板:部分DID命令在加入控制变量时会默认要求平衡面板,而无控制变量时允许非平衡数据。可以检查数据是否为平衡面板(用xtset PLZ year后看输出),如果是非平衡,尝试添加命令支持的unbalanced选项(需查阅命令文档确认是否存在该参数)。
  • 控制变量类型异常:确保控制变量是数值型,而非字符串类型。用describe age查看变量类型,若为字符串,可尝试转换为数值型(如destring age, replace)。
  • 命令版本或潜在bug:该命令为2024年新发布版本,可能存在未修复的样本筛选逻辑bug。尝试更新命令:ssc install did_multiplegt_dyn, replace,同时查看作者提供的官方示例,确认控制变量的使用格式是否符合要求。

内容的提问来源于stack exchange,提问作者mf_uni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:39:53