我正在尝试估计任命大学领导(appointed_new)对大学绩效(growth_f)的影响,我运行以下代码:
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
我到处寻找潜在的原因,重新运行我的代码寻找拼写错误,但是找不到问题。因此,我认为问题可能出在包本身。是这样吗?准备提供代码和数据。谢谢你
此时,我得到了答案。我应该添加“lead = 0:4”部分来获取所有滞后的估计值。
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",
lead = 0:4, forbid.treatment.reversal = FALSE, use.diagonal.variance.matrix = TRUE)
PE.results <- PanelEstimate(sets = PM.results, data = dtb_psm, se.method = "bootstrap", number.iterations = 1000, confidence.level= .95)
PE.results[["estimates"]]