当前位置: 首页 > news >正文

实证分析 | 中介效应检验原理与Stata代码实现

前言

本文是温忠鳞和叶宝娟2014年刊载于《心理科学进展》的论文《中介效应分析:方法和模型发展》的简要笔记与拓展。

温忠麟、叶宝娟:《中介效应分析:方法和模型发展》,《心理科学进展》,2014年第5期

中介效应检验

要了解中介效应,首先要引入中介变量的概念。考虑自变量 X X X Y Y Y的影响,如果 X X X通过影响变量 M M M而对 Y Y Y产生影响,则称 M M M为中介变量。

在回归模型的体现
Y = c X + e 1 M = a X + e 2 Y = c ′ X + b M + e 3 \begin{aligned} Y &= cX + e_1 \\ M &= aX + e_2 \\ Y &= c^{\prime}X + bM + e_3 \end{aligned} YMY=cX+e1=aX+e2=cX+bM+e3
其中,模型(1)的系数 c c c是自变量 X X X对因变量的 Y Y Y的总效应,模型(2)的系数 a a a为自变量 X X X对中介变量 M M M的效应,模型(3)的系数 b b b是控制了自变量 X X X的影响后,中介变量 M M M对因变量 Y Y Y的效应,系数 c ′ c^{\prime} c是在控制了中介变量 M M M的影响后,自变量 X X X对因变量 Y Y Y的直接效应。

直观理解,自变量 X X X变化1个单位,通过直接效应影响因变量 Y Y Y c ′ c^{\prime} c个单位,通过间接效应影响中介变量 M M M a a a个单位,进而通过中介变量 M M M影响因变量 Y Y Y a b ab ab个单位。也就是说,自变量 X X X变化1个单位,对因变量 Y Y Y的总效应是 c ′ c^{\prime} c个单位加上 a b ab ab个单位,即
c = c ′ + a b c = c^{\prime} + ab c=c+ab
检验中介效应是否显著,就是检验系数的乘积 a b ab ab是否显著异于0,即检验 H 0 : a b = 0 H_0:ab=0 H0:ab=0

中介效应检验方法的演进

一、逐步法

分三步,首先检验自变量 X X X对因变量的 Y Y Y的总效应是否显著,然后检验自变量 X X X对中介变量 M M M的效应是否显著,最后检验控制自变量 X X X后,中介变量 M M M对因变量 Y Y Y的效应是否显著。本质上就是对模型(1)-(3)依次进行回归,若上述都得到显著结果,则可以说明中介效应显著。但是逐步法的缺陷是,当系数 a a a或者系数 b b b其中有一个不显著时,无法判断中介效应是否显著。

二、Sobel法

当发现系数 a a a或者系数 b b b其中有一个不显著时,可以利用统计检验的方法检验系数乘积 a b ab ab是否显著异于0。Sobel法就是通过构建系数乘积 a b ab ab的统计量 z z z来估计其置信区间,判断其是否显著异于0。但是Sobel法构建的统计量的推导需要假设 a ^ b ^ \hat{a}\hat{b} a^b^服从正态分布,假设要求较高。
z = a ^ b ^ / s a b ,   s a b = a ^ 2 s b 2 + b ^ 2 s a 2 z=\hat{a}\hat{b}/s_{ab},\,s_{ab}=\sqrt{\hat{a}^2s_b^2+\hat{b}^2s_a^2} z=a^b^/sab,sab=a^2sb2+b^2sa2
三、Bootstrap法

bootstrap法是一种从样本中重复取样的方法,前提条件是样本能够代表总体。一般的取样方法是有放回地重复取样。例如,将一个样本量为500的样本当作Bootstrap总体,从中有放回地重复取样(有放回意味着同一个样本会在同一次取样中可以被抽取多次),可以得到一个Bootstrap样本(样本量还是500),然后进行回归得到系数 a a a和系数 b b b。类似地,可以重复有放回地抽样1000次,进而可以得到1000个系数 a a a和系数 b b b成绩的估计值。将系数乘积 a b ab ab按照数值大小排序,那么第2.5个百分位点和第97.5百分位点就构成了系数乘积 a b ab ab在95%统计水平下的置信区间,进而可以判断系数乘积 a b ab ab是否显著异于0。

Bootstrap法不涉及总体分布及其参数(因而不要求正态假设,优于sobel法),利用样本所推导的经验分布代替总体分布,属于非参数方法。前提条件是样本能够代表总体

检验流程

在回归中,如果系数 c c c a a a b b b都显著,则逐步法检验结果强于Bootstrap法。因此,先进行逐步法检验,当出现 a a a b b b至少有一个不显著时,才需要利用Bootstrap法进行显著性判断,具体流程如下:

温忠麟和叶宝娟(2014)

Stata实现

逐步法就是分三步回归,比较简单此处不再展示

bootstrap检验代码

*--- bootstrap重复取样1000次 ---*

* 参考文献:罗勇根,杨金玉,陈世强.空气污染、人力资本流动与创新活力——基于个体专利发明的经验证据[J].中国工业经济,2019(10):99-117.

bootstrap r(ind_eff) r(dir_eff), reps(1000): sgmediation Patent, mv(Health) iv(AQI) cv(L_Patent Team Tenure Size Firm_age lnsale GDP CPI CitySewage)

* ind_eff表示间接效应
* dir_eff表示直接效应
* Patent为因变量
* Health为中介变量
* AQI为自变量
* cv为控制变量

特别针对利用stata进行中介效应Bootstrap检验时,出现以下错误

'r(ind_eff)' evaluated to missing in full sample
r(322);

主要原因是sgmediation这个ado包里面没有计算r(ind_eff)和r(dir_eff)。因此,在进行中介效应检验时,需要保证下载了一个正确的sgmediation的ado文件包

然而,据反映直接在stata中用findit 和help或者ssc install已经无法下载到sgmediation的ado文件包

我们在经管之家找到了大佬手动修正的sgmediation的ado文件包,可以在后台回复“sgmediation”获得,下载后放在ado\\base\s文件路径下(注意查看是否有重名的文件包),即可运行成功

参考资料

[1]温忠麟,叶宝娟.中介效应分析:方法和模型发展[J].心理科学进展,2014,22(05):731-745.

[2]罗勇根,杨金玉,陈世强.空气污染、人力资本流动与创新活力——基于个体专利发明的经验证据[J].中国工业经济,2019(10):99-117.

[3] https://bbs.pinggu.org/thread-7280176-1-1.html

相关文章:

几个代码画出漂亮的词云图,python最简单的词云图教程(建议收藏)

在开始编写程序之前,我们先了解一下词云图的作用,我们拿到一篇文章,想得到一些关键词,但文章篇幅很大,无法短时间得到关键词,这时我们可以通过程序将文章中的每个词组识别出来,统计每个词组出现…...

mac m1,m2 安装 提供GPU支持的pytorch和tensorflow

mac m1,m2 安装 提供GPU支持的pytorch和tensorflowAnaconda安装测试Pytorch参考链接安装步骤安装 Xcode创建conda环境测试加速效果注意Tensorflow参考链接安装步骤安装 Xcode指定安装环境加速效果测试The Endmac m1 刚出的时候,各种支持都不完善。那时候要使用conda…...

如何用Python优雅的合并两个Dict

假设有两个dict x和y,合并成一个新的dict,不改变 x和y的值,例如 x {a: 1, b: 2}y {b: 3, c: 4} 期望得到一个新的结果Z,如果key相同,则y覆盖x。期望的结果是 >>> z {a: 1, b: 3, c: 4} 在PEP448中&#xff…...

python读取文件的几种方式

下面是不同场景较为合适的数据读取方法: 1.python内置方法(read、readline、readlines) 纯文本格式或非格式化、非结构化的数据,常用语自然语言处理、非结构文本解析、应用正则表达式等后续应用场景下,Python默认的三…...

python常用模块大全

目录 时间模块time() 与 datetime()random()模块os模块sys模块tarfile用于将文件夹归档成 .tar的文件shutil 创建压缩包,复制,移动文件zipfile将文件或文件夹进行压缩 shelve 模块 json和pickle序列化hashlib 模块subprocess 模块re模块 时间模块time() 与 datetime() time()模…...

成本降低90%,OpenAI正式开放ChαtGΡΤ

今天凌晨,OpenAI官方发布ChαtGΡΤ和Whisper的接囗,开发人员现在可以通过API使用最新的文本生成和语音转文本功能。OpenAI称:通过一系列系统级优化,自去年12月以来,ChαtGΡΤ的成本降低了90%;现在OpenAI用…...

Python:ModuleNotFoundError错误解决

前言: 大家都知道python项目中需要导入各种包(这里的包引鉴于java中的),官话来讲就是Module。 而什么又是Module呢,通俗来讲就是一个模块,当然模块这个意思百度搜索一下都能出来,Python 模块(…...

python案例——利用python画图

1、画直线 问题描述: 利用python中的 turtle (海龟绘图)模块提供的函数绘制直线 算法设计: turtle.penup(): 画笔抬起turtle.color(): 设置颜色turtle.goto(): 画笔移动到下一目标turtle.pendown(): …...

pandas.DataFrame设置某一行为表头(列索引),设置某一列为行索引,按索引取多行多列

pandas读取文件 pandas.DataFrame 设置索引 pandas.DataFrame 读取单行/列,多行多列 pandas.DataFrame 添加行/列 利用pandas处理表格类型数据,快捷方便,不常用但是有的时候又是必要技能,在这里记录一下一些常用函数和自己的踩坑…...

主成分分析(PCA)算法模型实现及分析(MATLAB实现)PCA降维

主成分分析(PCA)算法模型实现及分析(源码在文章后附录)1 引言2 关于PCA原理和算法实现2.1 PCA基本原理2.2 协方差计算2.3 PCA实现步骤  (1)PCA算法实现步骤  (2)基于特征值分解协…...

python 识别图片验证码/滑块验证码准确率极高的 ddddocr 库

前言 验证码的种类有很多,它是常用的一种反爬手段,包括:图片验证码,滑块验证码,等一些常见的验证码场景。 识别验证码的python 库有很多,用起来也并不简单,这里推荐一个简单实用的识别验证码的…...

华为OD机试 - 称砝码(Java JS Python)

题目描述 现有n种砝码,重量互不相等,分别为 m1,m2,m3…mn ; 每种砝码对应的数量为 x1,x2,x3...xn 。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。 输入描述 对于每组测试数据: 第一行:n --- 砝码的种数(范围[1,10]) 第二行:m1 m2 m3 ... m…...

DataFrame转化为json的方法教程

网络上有好多的教程,讲得不太清楚和明白,我用实际的例子说明了一下内容,附档代码,方便理解和使用 DataFrame.to_json(path_or_bufNone, orientNone, date_formatNone, double_precision10, force_asciiTrue, date_unitms, defau…...

requests库的使用(一篇就够了)

urllib库使用繁琐,比如处理网页验证和Cookies时,需要编写Opener和Handler来处理。为了更加方便的实现这些操作,就有了更为强大的requests库。 request库的安装 requests属于第三方库,Python不内置,因此需要我们手动…...

Pytorch+PyG实现MLP

文章目录前言一、导入相关库二、加载Cora数据集三、定义MLP网络四、定义模型五、模型训练六、模型验证七、结果完整代码前言 大家好,我是阿光。 本专栏整理了《图神经网络代码实战》,内包含了不同图神经网络的相关代码实现(PyG以及自实现&a…...

PYcharm怎么用,一篇教会你

文章目录一、界面介绍二、设置中文(无需汉化包)三、常用快捷键四、Python 标识符和关键字1、标识符2、 关键字五、行和缩进六、Python 引号七、Python注释1、单行注释2、多行注释八、Python空行九、输入和输出1、print 输出2、input 输入十、多行语句一、…...

如何在pycharm中使用anaconda的虚拟环境

最近项目中有许多同学咨询如何在pycharm中使用anaconda的虚拟环境(envs),这里就给大家简单介绍一下。 首先我们需要安装anaconda,这里就不在追述了,网上安装教程非常多。anaconda的安装路径大家需要记着因为后面会使用…...

Pytorch环境安装+Pycharm环境安装

我的配置: CUDA版本:11.7 Pytorch版本:1.13.0 Anaconda版本:anaconda3.2022.10(64-bit) Pycharm版本:2022社区版 具体配置过程如下: 1.Anaconda安装 本次安装的anaconda为win6…...

csapp第三章(2) --- 程序的机器级表示

csapp第三章(1) --- 程序的机器级表示https://blog.csdn.net/m0_63488627/article/details/129470787?spm1001.2014.3001.5501本章大纲 目录 3.4.过程 3.4.1运行中的栈 3.4.2转移控制 3.4.3数据传送 3.4.4栈上的局部存储 3.4.5栈的递归实现 3.5.数组分配和访问 3.6结…...

使用Ananconda进行Pytorch配置

为什么选择pytorch: 活跃度:逐渐形成了完整的开发生态,资源多。动态图:动态图架构,且运行速度较快。代码简洁:易于理解,设计优雅,易于调试。 可能有的疑惑: 深度学习框架太多不知道…...

python实现定时任务的8种方式详解

在日常工作中,常常会用到需要周期性执行的任务,一种方式是采用 Linux 系统自带的 crond 结合命令行实现。另外一种方式是直接使用Python。 当每隔一段时间就要执行一段程序,或者往复循环执行某一个任务,这就需要使用定时任…...

强大的数据分析工具——Pandas操作、易错点、知识点三万字详解

一、 Pandas数据结构 1.Series 2.DataFrame 3.从DataFrame中查询出Series DataFrame: 二维数据、整个表格、多行多列 Series:一维数据,一行或者一列 import pandas as pd import numpy as np 1、Series Series是一种类似于一维数组的对象,它由一组数…...

第一章 使用 matplotlib 绘制折线图

系列文章目录 第一章 使用 matplotlib 绘制折线图 第二章 使用 matplotlib 绘制条形图 第三章 使用 matplotlib 绘制直方图 第四章 使用 matplotlib 绘制散点图 第五章 使用 matplotlib 绘制饼图 第六章 使用 matplotlib 绘制热力图 第七章 使用 matplotlib 绘制堆叠条形图 第…...

jupyter notebook运行代码没反应且in[ ]没有*

前言: 在刚解决jupyter notebook打不开网页的问题后,我迫不及待地写了Python的代码,看看运行的结果如何。于是,我输入了print("Hello, world"),期待地点了一下运行,结果它直接跳到下一行了......…...

(超详细)python环境安装

耀风也是python初学者,文章可能会有不严谨的地方,如有发现希望帮我指正 1.python环境的安装 (1)为什么要安装python环境? python是一个解释性语言,所谓解释性语言就是代码不会进行预编译,而是…...

matplotlib绘图设置刻度线朝内、不显示刻度等常用代码

文章内容设置刻度线朝里坐标轴不显示刻度设置x轴0刻度从y轴开始绘制直线x某个值设置刻度线朝里 plt.rcParams[‘xtick.direction’] ‘in’ # 将x轴的刻度线方向设置向内 plt.rcParams[‘ytick.direction’] ‘in’ # 将y轴的刻度线方向设置向内 坐标轴不显示刻度 plt.xti…...

用Python实现ModbusTcp协议

用Python实现ModbusTcp协议 去年2021年写了两篇用Python实现Modbus-RTU串行通信协议的文章,今年有个项目用现场上位计算机通过ModbusTcp网关来读写现场的Modbus-RTU协议的仪表设备和IO设备。我则写了一个Python程序来测试采购的这台ModbusTcp网关设备。 首先是需要设…...

python绘制混淆矩阵

之前就了解过混淆矩阵,但是一直没有实践,今天刚好有数据实践一下,这里记录一下代码实现过程,方便以后查阅。 python绘制混淆矩阵matplotlib实现sklearn实现sklearn.metrics.ConfusionMatrixDisplayfrom_estimatorfrom_predictions…...

如何快速下载Python解决在官网下载缓慢问题以及如何安装Python

不知道你们碰到过这样的情况没有,在Python官网下载Python却很慢,刚开始我还以为是被限速了,后来才了解到这是因为Python官网的服务器是在外网,所以呢那我找到了一个Python的国内下载网址:CNPM Binaries Mirror (npmmir…...

FPN网络详解

1 特征金字塔 特征金字塔(Feature Pyramid Networks, FPN)的基本思想是通过构造一系列不同尺度的图像或特征图进行模型训练和测试,目的是提升检测算法对于不同尺寸检测目标的鲁棒性。但如果直接根据原始的定义进行FPN计算,会带来大额的计算开…...

python操作Excel

前言: Python操作Excel需要三方库的支持,如果要兼容Excel 2007以前的版本,也就是xls格式的Excel文件,可以使用三方库xlrd和xlwt,前者用于读Excel文件,后者用于写Excel文件。如果使用较新版本的Excel&#…...

Anaconda内安装OpenCV最有效的方法

问题背景: 如果你试过在Anaconda内安装opencv的诸多方法都不奏效,那么本文的这个方法可以从根本上解决这个问题。 安装准备: 在Anaconda3内的python建议为3.6版本,安装的opencv最好为对应的3.4.1.15版本,安装的open…...

Python你绝对不知道的15个小技巧,知道的算我输

名字:阿玥的小东东 学习:Python语言、正在学习c++语言 主页:阿玥的小东东 目录 前言 1.all or any 2.bashplotlib 3.collections 4.dir 5.from __future__ import...

2023美赛C题【分析思路+代码】

以下内容为我个人的想法与实现,不代表任何其他人。 文章目录问题一数据预处理时间序列模型创建预测区间单词的任何属性是否影响报告的百分比?如果是,如何影响?如果不是,为什么不是?问题二问题三难度评估模型…...

华为OD机试 - 对称美学(Java JS Python)

题目描述 对称就是最大的美学,现有一道关于对称字符串的美学。已知: 第1个字符串:R第2个字符串:BR第3个字符串:RBBR第4个字符串:BRRBRBBR第5个字符串:RBBRBRRBBRRBRBBR相信你已经发现规律了,没错!就是第 i 个字符串 = 第 i - 1 号字符串取反 + 第 i - 1 号字符串; …...

Python两种读取txt与csv文件方式(利用numpy处理数据)

数据集 csv文件内容 一共80个数据(只截取前10个数据) 在excel中显示的内容 在pycharm中显示的内容 txt文件内容 一共80个数据 在记事本中显示的内容 在pycharm中显示的内容 利用pandas方式读取 一、csv文件 1、读取所有内容 import pandas as pd…...

智能优化算法之灰狼优化算法(GWO)的实现(Python附源码)

文章目录一、灰狼优化算法的实现思路1、社会等级结构分级2、包围猎物3、攻击猎物4、搜索猎物二、算法步骤三、实例一、灰狼优化算法的实现思路 灰狼优化算法(Grey Wolf Optimizer,简称GWO)是由Seyedali Mirjalili等人于2014年提出的一种群智…...

简单研究一下 OpenAI 的官方文档

文档地址:https://platform.openai.com/docs/ 接口说明:https://platform.openai.com/docs/api-reference 一、概览 OpenAI API 可直接调用模型接口,也可在线微调(不过只能微调GPT-3系列模型)。 本小节主要介绍 toke…...

opencv的安装+pycharm中安装cv2库

简单记录一下本次cv2库的安装流程。 opencv的安装: 1.下载 阿里云 Simple Index 中国科技大学 Simple Index 豆瓣(douban) Simple Index 清华大学 Simple Index 中国科学技术大学 Simple Index 我在这里找到的: https://www.lfd.uci.edu/~gohlk…...

python操作abaqus建模教程①

参考资料: 1. pyabaqus库使用指引(官方):GitHub - haiiliin/pyabaqus: Type hints for Abaqus/Python scripting (The repo has been transferred to https://github.com/haiiliin/abqpy).Type hints for Abaqus/Python scriptin…...

超详细Ubuntu安装Anaconda步骤+Anconda常用命令

目录1. 下载Anconda安装包方法1:网页手动下载方法2:wget命令下载2. 安装AnacondaSTEP1:使用bash命令安装AnacondaSTEP2:阅读并接受安装协议STEP3:确认安装位置STEP4:初始化Anaconda(包含环境变量…...

关于anaconda navigator打不开问题的解决

1.找到路径C:\Users\Administrator下的.condarc,用记事本方式打开,将如下内容插入文件: channels:- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free ssl_verify: true s…...

PyCharm与Anaconda超详细安装配置教程

摘要:本文详细介绍如何在Windows 10中安装PyCharm和Anaconda这两款Python中必备的软件,博文中每一步均有详细截图和步骤讲解,最后介绍如何使用Anaconda创建虚拟环境并在PyCharm中配置该环境。所提供的软件安装步骤在Windows 10系统中进行了测…...

读取xlsx文件错误:xlrd.biffh.XLRDError: Excel xlsx file; not supported

利用Python库xlrd中的xlrd.open_workbook()函数读取自定义xlsx表格文件时出错如下&#xff1a; Traceback (most recent call last):File "C:/Users/llll/PycharmProjects/pythonProject1/RandomForestRegression.py", line 96, in <module>x_train , y_train…...

PyTorch安装教程(最简单方法)

注意&#xff1a;在安装之前确定你要安装的pytorch版本&#xff0c;然后在PyTorch和CUDA版本对应关系中查找对应版本&#xff0c;再进入正式安装环节 之前使用anaconda进行安装&#xff0c;下载速度实在太慢&#xff0c;安装几次都失败了。后听我朋友建议采用pip进行安装&…...

【Pycharm教程】PyCharm 配置 Python 项目运行和调试

PyCharm 使用运行/调试配置来运行、调试和测试您的代码。每个配置都是一组命名的启动属性&#xff0c;它们定义要执行的内容以及应该使用的参数和环境。 使用不同的启动属性&#xff0c;您可以定义 PyCharm 用来执行脚本的不同方式。例如&#xff0c;您可以使用不同的 Python 解…...

python中list列表删除元素的4种方法

在python列表中删除元素主要分为以下3种场景&#xff1a; 根据目标元素所在的索引位置进行删除&#xff0c;可以使用del关键字或pop()方法&#xff1b;根据元素本身的值进行删除&#xff0c;可使用列表&#xff08;list类型&#xff09;提供的remove()方法&#xff1b;将列表中…...

2021电赛F题智能送药小车方案分析(openMV数字识别,红线循迹,STM32HAL库freeRTOS,串级PID快速学习,小车自动返回)

2021全国大学生电子设计竞赛F题智能送药小车 前提&#xff1a;本篇文章重在分享自己的心得与感悟&#xff0c;我们把最重要的部分&#xff0c;摄像头循迹&#xff0c;摄像头数字识别问题都解决了&#xff0c;有两种方案一种是openARTmini摄像头进行数字识别加寻迹&#xff0c;…...

Python图形界面不够美?三行代码全面美化你的Tkinter界面

文章目录前言简单的初探ttkbootstrap&#xff0c;深入了解靠你自己安装ttkbootstrap简单的主题调用结尾前言 当你构造了自己的图形界面之后&#xff0c;我想下一步要想的就是界面的美化吧。最开始&#xff0c;我们大多会通过“前后对正、左右标齐”的思维合理安排自己的小部件…...

已解决WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python

已解决&#xff08;pip升级报错&#xff09; WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Requirement already satisfied: pip in …...