简介
在采用传统统计手段的经济学,心理学等学科中,通常是在阅读大量文献的基础上,提出自己的理论假设,并建立模型,收取一定量(通常是几百)的样本数据来验证自己的假设。其中就包含了调节,中介变量这类非常容易发论文的模型。而在学习中我们会发现老师让我们使用SPSS的PROCESS插件来处理这类模型。但是SPSS收费(虽然用的通常是破解版),PROCESS插件安装麻烦,于是我想到了python,今天就来教大家使用python的PyProcessMacro开源库来进行调节中介模型的统计检验。
事前准备
关于搭建python环境的内容,这里就不多说了,可以下载安装Anaconda的集成环境,当然更好的选择是使用云IDE,这里向大家推荐一下Datalore,Jetbrains出品的云IDE,包含了各种科学计算必须库,需要的库也可以很方便的搜索安装,这里是链接:
https://datalore.jetbrains.com/notebooks
只要注册账户就能使用基本的计算引擎,满足一般使用。
接下来安装必要的库:
pip install pyprocessmacro
anaconda prompt里输入以上pip安装指令,或者在datalore里:
搜索pyprocessmacro,然后点击Install,安装完毕弹出右下角提醒,点击restart kernel重启内核,就安装完毕了!
在安装完库之后:
我们还需要process的模型图,
百度文库链接点这
里面定义好的是各式各样的模型图和相应的计算模型,我们需要找到我们研究符合的模型,记住它的序号,这里以8号模型为例:
其中X是自变量,Mi是多个中介变量,Y是因变量,W是调节变量。
实例
(以下使用数据为真实采集样本数据,出于隐私安全不公开)
在准备好我们需要的库,模型之后,我们就可以开始实际的分析了,首先呢,我们需要把我们的变量和模型对应上,本案例中的模型是这样子的:
和上面我们找的8号模型对比基本一致,Uncertainty是自变量,State_N是中介变量,Condition是调节变量,MIL是因变量,只不过多了一个Trait_N作为控制变量。
首先我们把我们需要的变量读出来:
import pandas as pd
df = pd.read_excel('xxx.xlsx')
df_X = df[['Condition','Uncertainty','State_N','MIL','Trait_N']
这里给没有了解过基本语法的小白说几句,使用.info()方法可以轻松的看到整个数据框的基本信息,图中包含了694条非空数据,以及5个变量,使用.head()方法可以打印出前五条信息进行速览,使用.tail()方法可以看到倒数前五条信息,使用.describe()方法可以对数据进行描述统计,打印出频数,均数,标准差,最小值,四分位差,最大值信息。
接下来我们进行检验,并打印出模型的总结信息:
from pyprocessmacro import Process
p = Process(data=df_X, model=8, x="Uncertainty", y="MIL", w="Condition",m=["State_N"],controls=