matlab回归分析怎么求标准化斜率_回归分析中的简单斜率检验:用SPSS或jamovi实现...

matlab回归分析怎么求标准化斜率_回归分析中的简单斜率检验:用SPSS或jamovi实现..._第1张图片

哈哈,不简单的“简单效应”,How old are you?

之前的两篇文章,我们已经深入探讨了如何用SPSS做方差分析中的简单效应检验,并且最终得到结论:要用GLM语句,不需要再用MANOVA语句。

【文章1】SPSS方差分析中的简单效应检验:完整教程

【文章2】SPSS简单效应检验的终极解决方案:MANOVA?GLM!

然而随着自己科研工作的推进,终于还是遇到了之前在本科阶段没有理解透彻的“大魔王”——回归分析中的简单斜率检验

方差分析是回归分析的一个特例,简单效应也是简单斜率的一个特例——都属于一般线性模型(GLM)。所以“简单斜率检验”这个“大魔王”,实至名归。既然我们专栏叫“只求甚解”,那么简单斜率的问题一定是要解决清楚的!

开始之前先解释一下,我是拿到了我导发给我的一个关于如何做简单斜率检验的SPSS语句模板,才知道原来做简单斜率可以这样写语句。但是知其然不知其所以然啊,看了语句之后似懂非懂,就产生了一种欲望想去推导一遍为什么可以这样做。所以,如果读者只是对具体操作方法感兴趣,可以跳过第1节,直接阅读第2节。

那么我们开始吧。

1 / 原理推导

已知有因变量y自变量x调节变量a,且均为连续变量(如果调节变量是分类变量,方法以此类推,不再赘述)。在分析a对x的调节作用时,需要对x和a进行中心化(目的是减少x、a、int之间的多重共线性对结果的影响),并计算其乘积,生成一列新的变量——交互作用项int,记为

于是我们有了最原始的回归方程(当然你也可以对x、a变量本身进行中心化处理,但最终改变的只是截距,而对回归系数没有影响):

OK,如果交互项显著,就需要进一步做简单斜率检验。理论上来说需要在a的不同取值水平下分别做回归分析以检验所谓的“x在a不同水平下的简单斜率”是否显著。但是,由于a是一个连续变量,不可能在所有取值下都做,而且我们不建议采用“27%高低分组”的方法,这会使统计检验力降低,也会失去很多信息——所以,研究者一般默认取a的三个特殊值来代表其不同水平:

(“Low”)、
(“Mean”)、
(“High”)

这意味着什么呢?通过移项整理不难发现,x前面真正的系数是

,所以对于一个加入了交互项的回归方程而言,x的回归系数会随着a取值的变化而变化:
本身其实就是当
时的系数;同理,当
时,
;当
时,
这些会变化的回归系数就是我们想要的简单斜率。

重点来了!!!虽然我们可以直接算出来简单斜率的值,但是单凭这一点无法获得它们的各项统计指标!!!所以在具体操作时,研究者想出了一个办法:可以对原始的a减去一个数

(其实就是上述三个特殊值),然后
生成三列新的交互项
,最后用x、a和新交互项进行三次回归分析,
得到的x的回归系数就等于我们想要的简单斜率

为什么可以这样做呢?我们不妨先来看看这一系列新的回归方程与最原始的方程有何联系(新的回归系数用大写B表示,以示区别):

所以经过一番变换可以发现新旧方程回归系数之间的联系:

也就是说,新的回归方程里除了截距,只有

会随着
的变化而变化——发现了吗?这正是我们想要的结果!因为:

① 当

时,回归方程和最原始的方程一模一样,

② 当

时,

② 当

时,

因此,这三个新的回归方程里

的各项统计指标(显著性、置信区间、标准化系数等),就是我们苦苦寻觅的“简单斜率”的各项统计指标!

2 / SPSS实现

下面的代码块就是在我导发给我的Syntax基础之上经过改编后的模板,直接复制改改变量名和数字就能用(当然你要有Syntax的入门基础),该注释的也都注释了,请笑纳。

哦对了,最关键的部分是COMPUTE后面的,而像REGRESSION,菜单操作就能点出来,我这里只不过是把完整的分析过程贴出来而已。

*** Simple slope test (SPSS syntax template) ***
Note:
IV = independent variable
DV = dependent variable
MOD = moderator
CTRL = control variable (optional).

MEANS IV MOD.
* Example:
IV:
  M = 4.00
MOD:
  M = 3.50
  SD = 1.50.

* Moderator at Mean (the same as original).
COMPUTE IVxMOD_mean=(IV-4.00)*(MOD-3.50).
EXECUTE.
REGRESSION
  /DESCRIPTIVES MEAN STDDEV
  /MISSING LISTWISE
  /STATISTICS COEFF OUTS CI(95) R ANOVA TOL CHANGE ZPP
  /CRITERIA=PIN(.05) POUT(.10)
  /NOORIGIN 
  /DEPENDENT DV
  /METHOD=ENTER IV MOD IVxMOD_mean CTRL1 CTRL2 CTRL3.

* Moderator at (M - 1SD).
COMPUTE IVxMOD_low=(IV-4.00)*(MOD-(3.50-1.50)).
EXECUTE.
REGRESSION
  /DESCRIPTIVES MEAN STDDEV
  /MISSING LISTWISE
  /STATISTICS COEFF OUTS CI(95) R ANOVA TOL CHANGE ZPP
  /CRITERIA=PIN(.05) POUT(.10)
  /NOORIGIN 
  /DEPENDENT DV
  /METHOD=ENTER IV MOD IVxMOD_low CTRL1 CTRL2 CTRL3.

* Moderator at (M + 1SD).
COMPUTE IVxMOD_high=(IV-4.00)*(MOD-(3.50+1.50)).
EXECUTE.
REGRESSION
  /DESCRIPTIVES MEAN STDDEV
  /MISSING LISTWISE
  /STATISTICS COEFF OUTS CI(95) R ANOVA TOL CHANGE ZPP
  /CRITERIA=PIN(.05) POUT(.10)
  /NOORIGIN 
  /DEPENDENT DV
  /METHOD=ENTER IV MOD IVxMOD_high CTRL1 CTRL2 CTRL3.

3 / jamovi实现

还没听说过jamovi?

jamovi是一款未来有望全面取代SPSS的新款统计软件,功能强大,操作简单,基于R语言,拥有赏心悦目的图形用户界面。请移步官网(jamovi - Stats. Open. Now.)并下载之。

至于为什么好用,谁用谁知道。

至于到底怎么用,试试就知道。

由于它的操作实在太简洁,我不忍心做过多的描述,所以就把一个分析的实例给大家截图呈现一下好了。

matlab回归分析怎么求标准化斜率_回归分析中的简单斜率检验:用SPSS或jamovi实现..._第2张图片
第一步:安装GAMLj模块

matlab回归分析怎么求标准化斜率_回归分析中的简单斜率检验:用SPSS或jamovi实现..._第3张图片
第二步:选择一般线性模型(GLM)

matlab回归分析怎么求标准化斜率_回归分析中的简单斜率检验:用SPSS或jamovi实现..._第4张图片
第三步:把变量放对位置,把交互作用项选上

matlab回归分析怎么求标准化斜率_回归分析中的简单斜率检验:用SPSS或jamovi实现..._第5张图片
第四步:发现交互作用显著,做简单斜率检验

matlab回归分析怎么求标准化斜率_回归分析中的简单斜率检验:用SPSS或jamovi实现..._第6张图片
最后一步:如果你还想做个图

matlab回归分析怎么求标准化斜率_回归分析中的简单斜率检验:用SPSS或jamovi实现..._第7张图片
漏了什么:为什么没有做中心化?因为人家都默认帮你处理好了

4 / 作图

jamovi输出的图,好看是好看,还有置信区间,棒棒哒。但是作为一个强迫症深度患者,还是想自己作图调参数。所以……最最最原始但靠谱的方法来了——我们亲爱的Excel!

我改了一下“前人”的作图模板,把它改成了下面这样,允许有控制变量的加入,并且可以直接算出非标准化和标准化回归系数。

matlab回归分析怎么求标准化斜率_回归分析中的简单斜率检验:用SPSS或jamovi实现..._第8张图片
简单斜率检验作图模板

Syntax模板和作图模板均已共享到百度网盘:https://pan.baidu.com/s/1N_p55LsDOdGA-eAoPCrclw(密码:nmgq)

见笑了!

你可能感兴趣的:(matlab回归分析怎么求标准化斜率_回归分析中的简单斜率检验:用SPSS或jamovi实现...)