【问题标题】:Propensity score matching on statastata上的倾向得分匹配
【发布时间】:2016-03-16 22:19:32
【问题描述】:

我在一个国家/地区有一组经过处理的公司,对于每家公司,我想在该国其他地区的行业、规模和盈利能力方面找到最接近的匹配项。我正在研究Stata。我所需要的只是组成一个控制组——有人可以用代码指导我吗?那将不胜感激!我目前有以下内容,但无法满足我的需要:

psmatch2 (logpension) (处理过的扇区 logassets logebitda), logit ate

【问题讨论】:

  • 这很难,因为您没有关于此数据的距离度量。如果您有两家未经处理的公司,一家在规模上更接近,一家在盈利能力上更接近,您如何选择使用哪一家?基于处理概率(是规模等的函数)匹配公司会容易得多,因为它是一维的。另外,你想匹配还是不替换?其他用户在 Stata 中编写的匹配命令可以考虑 pscorematchcem 以及 Stata 自己的 teffects psmatch。我会先看看cem
  • 还有 mahapick 基于 Mahalanobis 评分。
  • 德米特里非常感谢您的回复。假设我只想匹配大小 - 你会推荐哪个命令?我一直在检查帮助文件和符号有点混乱。再次感谢!
  • 我要匹配替换!

标签: stata


【解决方案1】:

以下是一套完整的代码,您可以运行该代码来查找您对治疗对象的平均治疗效果(您最重要的指标结果),并检查数据是否平衡(您的结果是否有效)。在运行它之前,您需要确保您的治疗以下列方式标记:0 应标记为对照组,1 应标记为实验/治疗。 “neighbor(1)”表示我选择了最近邻匹配选项。它基本上将每个处理过的观察与倾向得分绝对值最接近的对照观察配对。

psmatch2 处理扇区 logassets logebitda,结果(logpension)neighbor(1) common

运行 psmatch 后,您需要确保数据是平衡的。所以你需要运行这个:

pstest 部门 logassets logebitda,处理(处理)

如果您的 t 检验显示低于 0.05 的任何显着性,则意味着您的数据不平衡。要直观地检查数据的余额,您还可以运行

ps图

在您的 psmatch2 命令之后。

祝你好运!

【讨论】:

    【解决方案2】:

    以下是您可以如何使用马氏距离作为度量来匹配 x1 和 x2,以获得治疗 t 对 y 的影响:

    use http://ssc.wisc.edu/sscc/pubs/files/psm, clear
    psmatch2 t, mahalanobis(x1 x2) outcome(y) ate
    

    变量 _n1 存储每个治疗观察的匹配对照观察的观察编号。

    【讨论】:

    • 非常感谢 Dimitriy,这很有帮助!
    • @İremErten 如果这解决了你的问题,你可以选择这个作为答案。
    • 抱歉评论旧帖。我正在尝试学习 PSM 技术,但无法访问上面链接中提供的公共数据集。如果可能,您能否提供对示例数据集的访问权限?谢谢。
    • @PGupta 它对我有用,但不清楚你的问题是什么。您可以尝试通过在 URL 末尾添加“.dta”来手动下载数据,例如this。如果这不起作用,最好开始另一个问题,详细说明什么不起作用,而不是在 cmets 中散列。
    • 链接没有损坏,因为你和我都可以下载文件。问题是该数据集是 Stata 版本 14 及更高版本(请参阅help dtaversion),因此您的 Stata 12 无法处理它。您可以通过谷歌搜索找到一些解决方案,但这里离题了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 2021-06-06
    • 2021-11-04
    • 1970-01-01
    相关资源
    最近更新 更多