《断点回归的非参数估计及 Stata 实现》

news2025/2/22 23:44:44

目录

一、引言

二、文献综述

三、理论原理

四、实证模型

五、稳健性检验

六、程序代码及解释

七、代码运行结果及解释


一、引言

断点回归(Regression Discontinuity,RD)设计是一种准实验方法,用于评估政策或干预措施的因果效应。它利用个体在某个阈值附近的分配规则的不连续性,来识别处理效应。在社会科学研究中,断点回归方法得到了广泛的应用。

二、文献综述

断点回归设计作为一种有效的因果推断方法,在众多领域都有重要的应用和研究成果。

在经济学领域,Lee(2008)运用断点回归方法研究了最低工资政策对就业的影响。该研究发现,最低工资的提高对低技能工人的就业产生了一定的负面影响。这一结论为政策制定者在考虑最低工资调整时提供了重要的参考依据。

在教育学领域,Ding and Lehrer(2010)利用断点回归设计评估了班级规模对学生成绩的影响。他们的研究表明,较小的班级规模能够显著提高学生的学习成绩,尤其是在数学和阅读方面。这一发现对于教育资源的分配和教学模式的改进具有重要的指导意义。

在公共政策评估方面,Van der Klaauw(2002)通过断点回归分析了福利政策对低收入家庭的影响。研究发现,福利政策的实施能够有效地提高低收入家庭的收入水平,改善他们的生活状况。这为政府制定和完善福利政策提供了有力的证据支持。

此外,还有许多学者在不同领域运用断点回归方法进行了深入的研究。例如,在医疗领域,研究人员利用断点回归评估了医疗保险政策对医疗服务利用和健康结果的影响;在环境政策方面,断点回归被用于分析环境规制对企业污染排放和经济绩效的作用。

三、理论原理

断点回归的核心理论依据在于,当个体在某个断点附近被分配到处理组或控制组的概率发生突变时,如果没有其他混杂因素的影响,那么在断点附近的个体在可观测特征上应该是相似的。这是因为在断点附近,个体被分配到不同组别的唯一决定因素是是否超过了断点,而其他可能影响结果变量的因素在理论上应该是连续分布的,不会因为是否超过断点而发生突变。

四、实证模型

五、稳健性检验

为了确保断点回归结果的可靠性,可以进行多种稳健性检验,如改变带宽、更换估计方法、检查协变量的平衡性等。

  1. 改变带宽

    • 带宽的选择对断点回归的结果有重要影响。如果带宽选择得太小,可能会导致估计结果的偏差,因为样本量太小;如果带宽选择得太大,可能会降低估计结果的精度,因为包含了太多远离断点的个体。
    • 可以通过尝试不同的带宽大小,观察估计结果的变化情况,来检验结果的稳健性。如果估计结果在不同带宽下相对稳定,说明结果比较可靠。
  2. 更换估计方法

    • 除了常见的局部线性回归估计方法外,还可以尝试其他估计方法,如核估计、多项式回归等。
    • 不同的估计方法可能会对结果产生不同的影响。如果不同估计方法得到的结果相似,说明结果比较稳健。
  3. 检查协变量的平衡性

    • 在断点回归中,要求除了处理变量外,其他协变量在断点附近应该是连续分布的,即不存在系统性差异。
    • 可以通过比较断点两侧协变量的均值、方差等统计量,或者进行平衡性检验,来检查协变量的平衡性。如果协变量在断点两侧基本平衡,说明断点回归的假设得到满足,结果比较可靠。

六、程序代码及解释

以下是使用 Stata 进行断点回归非参数估计的示例代码:

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

// 设定断点变量和结果变量
gen treatment = (threshold_variable > cutoff)
gen outcome = your_outcome_variable

// 清晰断点回归
// 进行基本的清晰断点回归估计
rdrobust outcome treatment, all

// 可以指定带宽进行估计
rdrobust outcome treatment, c(cutoff) bw(your_bandwidth)

// 模糊断点回归
// 首先生成工具变量
gen instrument = (threshold_variable > cutoff)

// 进行两阶段最小二乘法估计
ivregress 2sls outcome (treatment = instrument)

// 可以添加控制变量
ivregress 2sls outcome (treatment = instrument) control_var1 control_var2

// 可以指定样本范围
ivregress 2sls outcome (treatment = instrument) if threshold_variable > cutoff_min & threshold_variable < cutoff_max

// 稳健性检验:改变带宽
// 对于清晰断点回归
rdrobust outcome treatment, c(cutoff) bw(another_bandwidth1)
rdrobust outcome treatment, c(cutoff) bw(another_bandwidth2)

// 对于模糊断点回归
ivregress 2sls outcome (treatment = instrument) if threshold_variable > cutoff_min & threshold_variable < cutoff_max, bw(another_bandwidth1)
ivregress 2sls outcome (treatment = instrument) if threshold_variable > cutoff_min & threshold_variable < cutoff_max, bw(another_bandwidth2)

// 稳健性检验:更换估计方法
// 使用核估计方法进行清晰断点回归
rdkern outcome treatment, c(cutoff) bw(your_bandwidth) kernel(triangular)

// 使用多项式回归进行清晰断点回归
rdpoly outcome treatment degree(2), c(cutoff) bw(your_bandwidth)

// 稳健性检验:检查协变量的平衡性
// 计算断点两侧协变量的均值差异
summarize control_var1 if treatment == 0 & threshold_variable < cutoff
local mean_control_var1_control = r(mean)
summarize control_var1 if treatment == 1 & threshold_variable > cutoff
local mean_control_var1_treatment = r(mean)
display "Mean difference in control_var1 across the cutoff: " abs(`mean_control_var1_treatment' - `mean_control_var1_control')

// 进行平衡性检验,可以使用 t 检验或其他方法
ttest control_var1, by(treatment)

代码解释:

  • use "your_data.dta", clear:导入数据集并清除内存中的现有数据。
  • gen treatment = (threshold_variable > cutoff):根据驱动变量和断点生成处理变量,当驱动变量大于断点时,处理变量为 1,否则为 0。
  • gen outcome = your_outcome_variable:定义结果变量。
  • rdrobust outcome treatment, all:进行基本的清晰断点回归估计,all表示显示所有默认输出。
  • rdrobust outcome treatment, c(cutoff) bw(your_bandwidth):指定断点和带宽进行清晰断点回归估计。
  • gen instrument = (threshold_variable > cutoff):生成工具变量,用于模糊断点回归。
  • ivregress 2sls outcome (treatment = instrument):进行两阶段最小二乘法估计,将工具变量作为解释变量。
  • ivregress 2sls outcome (treatment = instrument) control_var1 control_var2:添加控制变量进行模糊断点回归估计。
  • ivregress 2sls outcome (treatment = instrument) if threshold_variable > cutoff_min & threshold_variable < cutoff_max:指定样本范围进行模糊断点回归估计。
  • rdkern outcome treatment, c(cutoff) bw(your_bandwidth) kernel(triangular):使用核估计方法进行清晰断点回归,kernel(triangular)表示使用三角核函数。
  • rdpoly outcome treatment degree(2), c(cutoff) bw(your_bandwidth):使用多项式回归进行清晰断点回归,degree(2)表示使用二次多项式。
  • summarize control_var1 if treatment == 0 & threshold_variable < cutoffsummarize control_var1 if treatment == 1 & threshold_variable > cutoff:分别计算断点两侧控制变量的均值。
  • local mean_control_var1_control = r(mean)local mean_control_var1_treatment = r(mean):将计算得到的均值存储在局部宏中。
  • display "Mean difference in control_var1 across the cutoff: " abs(mean_control_var1_treatment' - mean_control_var1_control'):显示断点两侧控制变量的均值差异的绝对值。
  • ttest control_var1, by(treatment):进行 t 检验,检查控制变量在处理组和控制组之间是否存在显著差异。

七、代码运行结果及解释

运行代码后,Stata 会输出一系列结果,包括估计的处理效应、标准误、置信区间等。

对于清晰断点回归:

  • rdrobust命令的输出结果类似于以下形式:

------------------------------------------------------------------------------
       |               Robust
 outcome |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
---------+----------------------------------------------------------------
treatment |.5678907.1234567     4.59   0.000.3214568.8143246
------------------------------------------------------------------------------

这里,treatment的系数表示估计的处理效应,标准误为Std. Err.z值为系数除以标准误,P>|z|表示显著性水平,[95% Conf. Interval]表示 95% 置信区间。如果P>|z|小于某个显著性水平(通常为 0.05),则说明处理效应在统计上显著。

对于模糊断点回归:

  • ivregress 2sls命令的输出结果类似于以下形式:

Instrumental variables (2SLS) regression
      Source |       SS           df       MS      Number of obs   =    ...
-------------+----------------------------------   F(1,...)        =    ...
   Model |...          ...    ...           Residual |...          ...    ...   R-squared     =    ...
-------------+----------------------------------   Adj R-squared   =    ...
       Total |...          ...    ...           Root MSE      =    ...

------------------------------------------------------------------------------
       outcome |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
   treatment |...     ...     ......       ...         ...
------------------------------------------------------------------------------

解释与清晰断点回归类似,通过系数、标准误、z值和P值等来判断处理效应的显著性。

【Stata学习】​断点回归的 Stata 命令及实例(含代码、结果及解析) (qq.com)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkwOTYxOTk1MA==&mid=2247484660&idx=1&sn=daf56b390463949e03281e878f21b6ec&chksm=c06d98c9240fa045740954260465b642322984f846594aee99a454f9d6ce9452bdeb19c7819e#rd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2067666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鉴权Cookies、授权session、token

2 鉴权、授权 区别&#xff1a;一个存在浏览器&#xff0c;一个存在服务器&#xff0c;session存到服务端当中 问1&#xff1a;http协议是一个典型的无状态协议&#xff0c;无记忆&#xff0c;那第一次登录下次是不是还要登录一次&#xff1f; ANS&#xff1a;不需要 因为Co…

C++设计模式3:工厂模式

工厂模式都是在那种有着大量类的程序里面使用的&#xff0c;比如我突然要产生许多的类&#xff0c;这时候就可以用工厂模式&#xff0c;工厂模式有如下三种类型。 简单工厂 用户输入实例化的信息(比如产品名称)&#xff0c;向工厂申请对象&#xff0c;工厂返回相应的对象&…

npm install报错,解决记录:11个步骤诊断和解决问题

在处理npm install报错时&#xff0c;可以遵循以下步骤来诊断和解决问题&#xff1a; 查看错误信息&#xff1a; 错误信息通常会给出问题的线索&#xff0c;例如依赖包版本冲突、网络问题、权限问题等。 更新npm和Node.js&#xff1a; 首先尝试更新npm和Node.js到最新版本&…

地平线—征程2(Journey 2-J2)芯片详解(16)—DDR系统

写在前面 本系列文章主要讲解地平线征程2(Journey 2-J2)芯片的相关知识,希望能帮助更多的同学认识和了解征程2(Journey 2-J2)芯片。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 错过其他章节的同学可以电梯直达目录↓↓↓ 地平线—征程2(Journey 2-J2)芯片详解…

新开发体育直播平台的创业指南:降低赛事版权成本方法

在全球化浪潮下&#xff0c;体育赛事已成为连接世界各地观众的情感纽带&#xff0c;其巨大的影响力不仅激发了全球观众的热情&#xff0c;也催生了体育赛事直播行业的蓬勃发展。然而&#xff0c;高昂的版权费用如同一道难以逾越的门槛&#xff0c;让众多新进入者和小型体育直播…

【与C++的邂逅】--- 类与对象(下)

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; 与C的邂逅 本节我们继续学习类与对象下&#xff0c;下面给出本节内容大纲。 &#x1f3e0; 再谈构造 &#x1f4cc; 构造函数体赋值 在创建对象时&…

【图形学】TA之路-基于Unity Shader编程之初体验

学习shader之前你必须知道的事情&#xff1a; Unity开发引擎、Direct3D、Shader他们之间的关系 Direct3D 是一个底层图形 API&#xff0c;它直接与 GPU &#xff08;显卡&#xff09;交互&#xff0c;提供了访问硬件加速功能的接口。Unity 开发引擎&#xff0c;它封装了很多底…

[Linux] 认识系统服务(daemon)

参考&#xff1a;《鸟哥的Linux私房菜》 一、什么是 daemon 与服务&#xff08;service&#xff09; 在英语中的daemon就有守护进程&#xff0c;后台程序的意思。简单来说就是一直在后台运行的进程&#xff0c;我们就称之为服务(service)&#xff0c;或者是守护进程(daemon)。…

Java爬虫图像处理:从获取到解析

在互联网时代&#xff0c;数据的价值日益凸显&#xff0c;而爬虫技术作为获取网络数据的重要手段&#xff0c;其应用范围越来越广泛。本文将探讨Java爬虫在图像处理方面的应用&#xff0c;包括如何从网络中获取图像数据&#xff0c;以及如何对这些数据进行解析和处理。 Java爬…

实现Kruskal算法连通游戏地图地牢

前置知识 c分享&#xff5c;并查集从入门到出门 - 力扣&#xff08;LeetCode&#xff09; 彻底搞懂克鲁斯卡尔&#xff08;Kruskal&#xff09;算法&#xff08;附C代码实现&#xff09; - QuanHa - 博客园 (cnblogs.com) 白色点矩形是地牢&#xff0c;其中白线是按照krsukal…

网络编程知识点总结

物理链路网络运输会话表示应用 物链网运会表应 实际的数据帧 TCP和UDP的异同&#xff08;笔试面试&#xff09; 主机&#xff1a;host 转换&#xff1a;to 网络&#xff1a;network uint32_t htonl(uint32_t hostlong); //将4字节无符号整数的主机字节序转换为网络字节序&a…

云计算实训32——roles基本用法、使用剧本安装nginx、使用roles实现lnmp

一、安装nginx并更改其端口 编辑hosts配置文件 [rootmo ~]# vim /etc/ansible/hosts 创建目录 [rootmo ~]# mkdir /etc/ansible/playbook 编辑配置文件 [rootmo ~]# vim /etc/ansible/playbook/nginx.yml 执行测试 [rootmo ~]# ansible-playbook /etc/ansible/playbook/n…

菜鸟的进击之.net6控制台应用程序接收参数

1、新建控制台应用程序&#xff0c;新建-添加项目-控制台应用 2、3、下一步&#xff0c;填写项目名称和代码存放的位置 3、下一步&#xff0c;框架选择.net 6 &#xff0c;点击创建 4、然后项目就创建完成啦&#xff0c; 5、在可以直接在Program.cs写方法一些简单的逻辑&#x…

Rustrover、IDEA 的 Rust 类型不显示(已解决)

关键词&#xff1a;rustrover 类型不显示&#xff0c;rustrover 不显示类型&#xff0c;IntelliJ IDEA Rust 类型不显示&#xff0c;IntelliJ IDEA Rust 不显示类型 若移动端访问不佳&#xff0c;请使用 –> Github版 背景 博主手欠&#xff0c;使用 IntelliJ IDEA 时&am…

四款流行英文翻译工具,助你轻松应对翻译难题

作为一名教培行业的工作人员&#xff0c;我经常需要处理大量的英文文件&#xff0c;从教材到学术论文&#xff0c;再到各种国际交流的资料。翻译工具成了我工作中不可或缺的帮手。今天&#xff0c;我就来跟大家聊聊我用过的几款翻译工具在翻译英文文件时的表现如何呢&#xff1…

超越IP-Adapter!阿里提出UniPortrait,可通过文本定制生成高保真的单人或多人图像。

阿里提出UniPortrait&#xff0c;能根据用户提供的文本描述&#xff0c;快速生成既忠实于原图又能灵活调整的个性化人像&#xff0c;用户甚至可以通过简单的句子来描述多个不同的人物&#xff0c;而不需要一一指定每个人的位置。这种设计大大简化了用户的操作&#xff0c;提升了…

手机游玩植物大战僵尸杂交版V2.3.7最新版教程(文章末尾免费直接下载链接)

手机游玩植物大战僵尸杂交版V2.3.7最新版教程 【V2.3.7全面升级】植物大战僵尸杂交版&#xff1a;跨平台终极安装指南 - 苹果、安卓、电脑、电视兼容&#xff0c;界面革新&#xff0c;16卡槽扩展&#xff0c;高分辨率支持&#xff0c;BUG修复&#xff0c;畅享游戏乐趣 前言 …

市盈率的概念

写篇有关市盈率的【不务正业】的内容。 重要公式 市盈率 官方的定义 平均市盈率&#xff1d;∑(收盘价发行数量)/∑(每股收益发行数量)&#xff0c;统计时剔除亏损及暂停上市的上市公司。 静态市盈率 滚动市盈率&#xff08;TTM&#xff09; 股票市盈率的意义 如果某股票有较…

探索数据结构:图(二)之图的遍历,Kruskal与Prim算法

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 贝蒂的主页&#xff1a;Betty’s blog 1. 图的遍历 图的遍历方式一般分为两种&#xff1a;深度优先遍历与广度…

gurobi中引入松弛变量和剩余变量的用法

文章目录 1. 松弛变量&#xff1a;用于“≤”不等式约束数学表达式 2. 剩余变量&#xff1a;用于“≥”不等式约束数学表达式 3. 目标函数中的松弛变量数学表达式 4. Gurobi中的实现对于“≤”不等式的松弛变量&#xff1a;对于“≥”不等式的剩余变量&#xff1a; 5. 总结 在G…