PanelMatch包PanelEstimate输出异常问题咨询
PanelEstimate仅返回t+0估计值,而非多期滞后对应的处理效应
我正在用PanelMatch估计大学校长任命(appointed_new)对学校绩效(growth_f)的处理效应,设置了lag = 4,协变量平衡检测能正常返回4个滞后周期的结果,但调用PanelEstimate时仅输出t+0的估计值,无其他期数的处理效应结果,已排查拼写错误和代码逻辑,怀疑是包本身的问题,希望得到解决思路。
我的PanelMatch代码
PM.results <- PanelMatch(lag = 4, time.id = "year", unit.id = "new_id", treatment = "appointed_new", refinement.method = "mahalanobis", data = dtb_psm, match.missing = TRUE, covs.formula = ~ vpm + n_staff_mon, verbose = TRUE, exact.match.variables = list("special_status", "u_spec"), size.match = 5, qoi = "att" ,outcome.var = "growth_f", forbid.treatment.reversal = FALSE, use.diagonal.variance.matrix = TRUE)
协变量平衡检测结果(正常返回4个滞后项)
> get_covariate_balance(PM.results$att, data = dtb_psm, covariates = c("vpm", "n_staff_mon"), plot = FALSE) vpm n_staff_mon t_4 0.06799907 0.04820720 t_3 0.06818579 0.02313124 t_2 0.08272747 0.03660561 t_1 0.10501971 0.03450425
PanelEstimate异常输出
PE.results <- PanelEstimate(sets = PM.results, data = dtb_psm, se.method = "bootstrap", number.iterations = 1000, confidence.level= .95) PE.results[["estimates"]] t+0 -160.4326
排查与解决思路
- 检查包版本:旧版
PanelMatch存在PanelEstimate默认仅返回当期效应的bug。先运行packageVersion("PanelMatch")查看版本,若低于1.0.0,直接升级到最新版:install.packages("PanelMatch") - 显式指定效应期数:在
PanelEstimate中添加lead参数,强制指定要计算的处理效应期数,比如要算t+0到t+3的效应,代码如下:PE.results <- PanelEstimate(sets = PM.results, data = dtb_psm, se.method = "bootstrap", number.iterations = 1000, confidence.level= .95, lead = c(0,1,2,3)) - 验证数据完整性:确认
dtb_psm中处理组单位在接受任命后,有t+1、t+2等后续年份的growth_f数据。如果处理组没有后续期的绩效观测,工具无法计算滞后效应 - 检查匹配集有效性:运行
summary(PM.results)查看匹配集构造情况,确认各滞后期是否有有效匹配对。如果t+1及以后期数没有足够的控制组匹配单位,也会仅返回t+0结果
内容的提问来源于stack exchange,提问作者Daria
相关产品推荐
相关产品推荐

