首页 > 其他分享 >倾向匹配得分模型 PSM 及 Stata 具体操作步骤

倾向匹配得分模型 PSM 及 Stata 具体操作步骤

时间:2024-08-16 17:58:05浏览次数:13  
标签:得分 组和 对照组 匹配 变量 PSM 处理 Stata 操作步骤

目录

一、引言

二、文献综述

三、理论原理

四、实证模型

五、程序代码及解释

六、代码运行结果

七、稳健性检验

八、结论


一、引言

倾向匹配得分模型(Propensity Score Matching,PSM)是一种在观察性研究中用于减少选择偏差的常用方法。通过估计个体接受某种处理(例如参与某个项目、接受某种治疗等)的概率,即倾向得分,然后基于倾向得分对处理组和对照组进行匹配,以构建类似于随机实验的样本,从而使得处理组和对照组在可观测特征上具有可比性。

二、文献综述

在社会科学和医学研究等领域,PSM 方法得到了广泛的应用。Rosenbaum 和 Rubin(1983)首次提出了倾向得分匹配的概念和方法,为后续的研究奠定了基础。他们指出,通过倾向得分进行匹配,可以有效地控制观察性研究中的混杂因素,从而更准确地评估处理效应。

例如,Smith 和 Todd(2005)在研究教育政策对学生成绩的影响时,运用 PSM 方法来解决样本选择偏差问题,使得研究结果更具可靠性。Athey 和 Imbens(2006)则在处理经济数据时,采用 PSM 方法来评估政策干预的效果,为政策制定提供了有力的依据。

此外,Hirano 和 Imbens(2001)对 PSM 的理论和应用进行了深入的探讨,进一步完善了该方法的理论框架。在医学领域,Austin(2011)等人利用 PSM 方法评估了不同医疗治疗方案的效果,为临床决策提供了重要的参考。

这些研究都充分展示了 PSM 方法在解决观察性研究中选择偏差问题的有效性和实用性。

三、理论原理

倾向匹配得分模型(PSM)的理论基础建立在反事实框架和条件独立性假设之上。

在观察性研究中,我们通常将个体分为处理组(接受了某种处理或干预)和对照组(未接受处理或干预)。然而,由于个体并非随机分配到处理组和对照组的,可能存在一些混杂因素导致两组个体在特征上存在系统性差异,从而影响对处理效应的准确评估。

四、实证模型

  1. 估计倾向得分
    • 通常采用 Logistic 回归或 Probit 回归来估计倾向得分。假设处理变量为 Treatment,协变量为 X1X2、... 、Xn,则 Logistic 回归模型可以表示为:

    logit Treatment X1 X2... Xn

或者 Probit 回归模型表示为:

    probit Treatment X1 X2... Xn

回归模型会输出各个协变量的系数,这些系数反映了协变量对个体接受处理的概率的影响程度。

  1. 匹配方法

    • 常见的匹配方法包括:
      • 最近邻匹配:为处理组中的每个个体在对照组中寻找倾向得分最接近的一个或几个个体进行匹配。
      • 半径匹配:设定一个半径范围,将处理组中个体的倾向得分与对照组中在该半径范围内的个体进行匹配。
      • 核匹配:基于核函数为处理组中的每个个体在对照组中寻找匹配个体,匹配权重由核函数决定。
     

    以最近邻匹配为例,可使用以下代码:

    psmatch2 Treatment, outcome(var_name) neighbor(1) ate  // var_name 为结果变量

这里的 neighbor(1) 表示 1:1 匹配,即每个处理组个体匹配一个对照组个体。

  1. 匹配后处理

    • 匹配完成后,需要对匹配后的样本进行处理和分析。
    • 可以计算平均处理效应(Average Treatment Effect,ATE)、处理组平均处理效应(Average Treatment Effect on the Treated,ATT)等。
     

    例如,计算 ATT 可以使用以下代码:

    attnd Treatment var_name, comp(group_variable)  // group_variable 为分组变量

  1. 评估匹配质量
    • 通过共同支撑假设检验和平衡性检验来评估匹配的质量。
    • 共同支撑假设检验:检查处理组和对照组的倾向得分分布是否有足够的重叠部分。可以通过绘制倾向得分的分布直方图来直观判断。
    • 平衡性检验:比较匹配前后处理组和对照组在协变量上的均值差异是否显著减少。使用以下代码进行平衡性检验:

    psbalance Treatment X1 X2 X3  // 检验匹配前后协变量的平衡性

五、程序代码及解释

以下是一个更详细的示例代码,包括数据导入、倾向得分估计、不同匹配方法的实现、匹配结果查看以及平衡性检验:

// 导入数据
use "your_data.dta", clear

// 定义处理变量和结果变量
gen treatment = (condition == 1)  // 假设 condition 为 1 表示处理组,0 表示对照组
gen outcome = outcome_variable  // 定义结果变量

// 估计倾向得分(以 Logistic 回归为例)
logit treatment covariate1 covariate2 covariate3  // 假设 covariate1、covariate2、covariate3 为协变量

// 输出结果:会给出 Logistic 回归的系数估计值、标准误、z 值和 p 值。系数反映了协变量对个体进入处理组概率的影响方向和强度。显著的 p 值表示相应协变量对处理组归属有显著影响。

// 计算倾向得分
predict ps_score

// 最近邻匹配(1:1 匹配)
psmatch2 treatment, outcome(outcome) neighbor(1) ate
// 输出结果:
// 1. `summarize treatment _treated _weight`会给出处理组和对照组的数量、均值等基本统计信息,帮助了解匹配情况。
// 2. 可通过查看 `_treated` 变量的值来确定个体是否被匹配。
// 3. 共同支撑假设检验:绘制匹配前后倾向得分的核密度图。若处理组和对照组的核密度图有较大重叠部分,说明满足共同支撑假设。

// 半径匹配(半径为 0.05)
psmatch2 treatment, outcome(outcome) radius(0.05) ate
// 输出结果类似于最近邻匹配,包括匹配情况的统计信息和对共同支撑假设的初步判断。

// 核匹配
psmatch2 treatment, outcome(outcome) kernel ate
// 输出结果同样包括匹配情况的统计描述。

// 平衡性检验(以最近邻匹配为例)
psbalance treatment covariate1 covariate2 covariate3
// 输出结果:会给出每个协变量在匹配前后处理组和对照组之间均值差异的 t 检验统计量(t 值)、p 值和标准化差异。p 值较大且标准化差异较小说明匹配后协变量在两组间达到了较好的平衡。

六、代码运行结果

  1. 估计倾向得分的步骤:

    • 回归结果中,显著的系数表示相应协变量对个体进入处理组的概率有显著影响。例如,如果协变量 covariate1 的系数为正且显著,说明该协变量的值越大,个体进入处理组的概率越高。
    • 可以通过查看伪 R-squared 来评估模型对倾向得分的解释能力。较高的伪 R-squared 值表示模型能够较好地预测个体进入处理组的概率。
  2. 最近邻匹配:

    • summarize 命令的结果中,关注 treatment 变量的均值和数量。处理组和对照组的数量应该相对平衡。如果处理组和对照组数量差异过大,可能需要重新考虑匹配方法或调整参数。
    • 核密度图中,如果处理组和对照组的倾向得分分布有较大重叠部分,表明共同支撑假设成立,匹配效果较好。如果重叠部分较小,可能意味着部分处理组个体难以找到合适的对照组匹配,需要进一步检查数据或调整匹配方法。
  3. 半径匹配:

    • 类似于最近邻匹配,检查匹配后的处理组和对照组数量以及分布情况。同时,需要关注所设定的半径大小是否合适。如果半径过大,可能会引入过多不相似的匹配对;如果半径过小,可能导致匹配不足。
    • 可以通过比较不同半径下的匹配结果,选择最合适的半径值。
  4. 核匹配:

    • 同样关注匹配后的组间平衡和数量分布。不同的核函数和带宽选择可能会影响匹配结果,需要根据数据特点进行尝试和优化。
  5. 平衡性检验:

    • 对于每个协变量,如果 t 检验的 p 值大于预设的显著性水平(通常为 0.05),说明匹配后该协变量在处理组和对照组之间的均值差异不显著,即达到了较好的平衡性。
    • 标准化差异的绝对值较小(通常小于 10% 或 20%)也表明平衡性较好。如果某些协变量的平衡性未达到要求,可以考虑增加或调整协变量,或者尝试其他匹配方法。

需要注意的是,实际运行结果会因数据的特点和具体的分析需求而有所不同。在解读结果时,应结合研究问题和相关理论进行综合判断。同时,还可以进行敏感性分析,以评估结果的稳健性。

七、稳健性检验

  1. 共同支撑假设检验

    • 除了通过直观观察倾向得分的核密度图来判断共同支撑假设是否成立外,还可以进行更严格的统计检验。例如,可以计算处理组和对照组倾向得分的均值和方差,并进行 t 检验或 F 检验,以确定两者是否存在显著差异。
    • 另一种方法是检查在共同支撑范围内,处理组和对照组个体的分布情况。如果分布不均匀,可能会影响匹配的效果和结果的可靠性。
  2. 平衡性检验

    • 除了比较匹配前后协变量的均值差异外,还可以比较中位数差异、方差差异等。
    • 可以使用其他平衡性检验方法,如标准化均值差(Standardized Mean Difference,SMD)、方差比检验等。
    • 进行多重平衡性检验,并综合考虑多个协变量的平衡情况,以更全面地评估匹配的质量。
  3. 不同匹配方法和参数的比较

    • 尝试使用多种匹配方法(如最近邻匹配、半径匹配、核匹配等),并比较它们的结果。
    • 对于每种匹配方法,调整不同的参数(如最近邻匹配中的匹配比例、半径匹配中的半径大小等),观察结果的变化。
    • 选择最能满足研究需求和假设的匹配方法和参数组合。
  4. 样本量的影响

    • 分析不同样本量对匹配结果和处理效应估计的影响。
    • 可以通过随机抽样或子样本分析来考察样本量变化时结果的稳定性。
  5. 协变量的选择

    • 研究不同协变量组合对匹配结果和处理效应估计的影响。
    • 尝试添加或删除一些协变量,观察其对平衡性和处理效应的改变。

通过进行上述稳健性检验,可以更全面地评估 PSM 分析的可靠性和稳定性,提高研究结论的可信度。

八、结论

倾向匹配得分模型 PSM 为观察性研究提供了一种有效的手段来控制选择偏差,从而更准确地估计处理效应。然而,在实际应用中,需要谨慎选择协变量、匹配方法,并进行充分的稳健性检验,以确保分析结果的可靠性和有效性。Stata 提供的强大功能为实现 PSM 分析提供了便利,但正确和恰当的运用需要深入理解其理论基础和实际操作要点。

倾向得分匹配模型 (qq.com)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzI4MjIxMzE2OA==&mid=2247484175&idx=1&sn=86c01f6da6ddf3d4060c30e881e6c52e&chksm=eb9c2d50dceba4467afb9398ef44fa27cd035130d10b65f7b5d9cf6201d3e9e77b7981130106#rd

标签:得分,组和,对照组,匹配,变量,PSM,处理,Stata,操作步骤
From: https://blog.csdn.net/a519573917/article/details/141266125

相关文章

  • Heckman 模型及 Stata 具体操作步骤
    目录一、文献综述二、理论原理三、实证模型四、稳健性检验五、程序代码及解释六、代码运行结果一、文献综述Heckman模型自提出以来,在众多领域得到了广泛且深入的应用。例如,在劳动经济学领域,Heckman(1979)率先将该模型应用于劳动力供给的研究,成功解决了样本选择偏差......
  • SpringBoot修改内置tomcat版本的操作步骤
    一:由于Tomcat高危漏洞影响,本文介绍了如何查询和修改Springboot内嵌的Tomcat版本,包括通过POM文件或mvnrepository查询版本,以及通过添加properties配置更改版本。此外,还提到了遇到缺少tomcat-juli依赖时的解决办法。最近Tomcat爆出高危漏洞,基本影响所有的Tomcat版本,故需要对sprin......
  • (PSM) 认证培训课程:精通Scrum,提升项目管理技能
    ​在快速变化的商业环境中,高效的项目管理和团队协作是企业成功的关键。作为一种广泛认可的敏捷框架,Scrum已成为推动项目成功和提高团队效率的重要工具。为了帮助专业人士掌握Scrum方法和实践,Scrum.org推出了ProfessionalScrumMaster(PSM)官方认证班,专为希望提升项目管理能力......
  • 短面板数据实证模型及 Stata 具体操作步骤
    目录一、文献综述二、理论原理三、实证模型四、稳健性检验五、程序代码及解释六、代码运行结果一、文献综述在当今的经济和社会科学研究中,短面板数据的应用日益广泛。众多学者借助短面板数据进行深入的实证分析,为各领域的理论发展和政策制定提供了有力的支持。例......
  • openmediavault 7.0 安装和配置详细操作步骤
    OpenMediaVault(OMV)7.0是一个基于Debian12Linux的开源网络附加存储(NAS)解决方案,它提供了丰富的功能来管理和共享数据。一、安装OpenMediaVault7.01.准备安装材料U盘:一个8G以上容量的U盘,建议16-32GB,用于制作安装盘。电脑或服务器:一台用于安装OMV7.0的电脑或服务器。......
  • stata 代码实现熵值法计算 含常见问题解答
    适用:面板数据均可stata版本:无要求例如,使用了一个10年的省级面板数据,含15个指标,现在来计算各地区的熵值法得分。其中,x1x2x3x4x6x7x8x9x11x12x13x14x15是正向指标;而x5x10是负向指标。1.定义面板,定义指标的正负。tssetidyearglobalxlist1"x1x2x3x4x6x......
  • stata 空间计量模型实证全过程
    ***描述性统计sumyx1x2x3x4logout,save(Descriptive)wordreplace:sumyx1x2x3x4//***输出描述性统计结果,点击Descriptive.rtf,即可出现word版本的描述性统计表***空间相关性检验(莫兰检验)clearcd"C:\ProgramFiles(x86)\Stata14\ado"//定义路径,自己建立......
  • 【学习笔记】Kylin-Desktop-V10-SP1 麒麟系统安装CrossOver软件的详细操作步骤
    一、前期准备1.关于CrossOverCrossOver是一款系统兼容软件,它让您可以在Mac和Linux系统上直接运行Windows应用,不用安装虚拟机;直接通过CrossOver软件,从dock直接启动Windows应用说明:CrossOver软件是一款付费使用软件,但支持14天试用期2.安装麒麟系......
  • 使用注册表进行映像劫持,将 notepad.exe 替换为 notepad2.exe 的操作步骤如下:
    使用注册表进行映像劫持,将notepad.exe替换为notepad2.exe的操作步骤如下:打开注册表编辑器:按 Win+R 组合键打开运行对话框。输入 regedit 并按Enter打开注册表编辑器。导航到指定路径:在注册表编辑器中,依次展开以下路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microso......
  • 人渣生存scum因丢失x3daudio启动受阻:X3daudio1_7.dll丢失或找不到错误操作步骤解析
    当您在运行《人渣生存》(Scum)时遇到“x3daudio1_7.dll丢失或找不到”的错误,这通常意味着系统中缺少该特定的动态链接库文件。以下是详细的解决步骤:方法一:更新显卡驱动程序有时候,这个文件的丢失可能是由于显卡驱动程序过时或损坏。更新显卡驱动程序是解决x3daudio1_7.dll丢......