R数据分析:多项式回归与响应面分析的理解与实操
今天给大家分享一个新的统计方法,叫做响应面分析,响应面分析是用来探究变量一致性假设的(Congruence hypotheses)。本身是一个工程学方法,目前在组织行为学,管理,市场营销等等领域中使用越来越多。
Congruence hypotheses state that the agreement (i.e., congruence) between two constructs should positively (or negatively) affect some outcome variable. Such hypotheses play a central role in many disciplines, for example, Marketing (Kim & Hsieh, 2003), Organizational Behavior (Caniëls & Veld, 2019), and Purchasing (Caniëls, Vos, Schiele, & Pulles, 2018).
响应面分析尤其是在探究一致性和不一致性作用的时候是最佳选择,就是说比如你有两个自变量,一个因变量,你想看看如果这两个自变量都同时一致性变化(同时增大或减小)和同时不一致变化(一个增大另一个减小)的情况下,因变量如何变化。这个时候一定记得使用响应面分析。
response surface analysis (RSA) is an approach that allows examining the extent to which combinations of two predictive variables relate to one outcome variable. The method is particularly interesting in cases where (in)congruence between the two predictive variables is a central consideration of the study.
一致性假设的检验需要涉及到多项式回归,而响应面分析的优势在于可以其可以将多项式回归的结果用3D画出来,从而使得我们看清楚各种自变量组合情形下因变量的变化情况。并且通过多项式的系数情况对相应假设进行证明。
The foundation of RSA is the visualization of the results of the regression equation on a three-dimensional graph . Instead of directly interpreting the results of the polynomial regression analysis, the coefficients are used to examine what is called a ‘response surface pattern’ . The response surface is a graph that provides a three-dimensional visual representation of the data to aid interpretation
并且响应面分析还可以检验交互,且不受线性假设限制,今天结合两篇比较有意思的文献给大家分享响应面分析的理解和具体做法。
理论理解
想想如果你不知道响应面分析,你想研究两个变量的不一致对结局的影响你会怎么做?比如你想研究父母期望x1和儿童兴趣x2对儿童成就y的影响,想要验证是不是父母期望和儿童兴趣的一致性越强,将来儿童的成就越高?你怎么做?
计算一个新变量?x1-x2再取个绝对值,作为新的自变量,叫做两者差距?用这个新变量去做y的回归分析?
估计大部分同学首先想到的就是这么样操作。
这里面有两个问题:1是信息丢失了;2是你不能知道同一个效果到底是x1比x2大造成的,还是x2比x1大造成的。
Initially, these approaches compute two predictor variables into a single score, which reduces the available information. For this reason, the difference scores confuse the effects of each of the component measures on the result. The difference scores do not tell us the extent to which each of the component measures contributes to the outcome variable
所以说这个想法就不好,不能说不对哈,只能说不好。
此时最正确的方法就是使用多项式回归:
上面的式子中xy为两个自变量,Z是因变量,式子中还有xy的2次项,对于这么一个式子我们可以对其图形化表达
图中两个自变量在xy轴上,因变量或者叫模型的响应值在z轴上,这样所有xy组合取值对应的模型响应值便成了一个曲面,叫做响应面。
比如对应特定的xy在底面对应的圈圈,其对应的Z值就是响应面上的星星。
看图的时候有两条线值得我们格外关注:图中的一致性线Line of congruence (LOC)和不一致线Line of incongruence (LOIC)
- 一致性线
一致性线就是所有xy相等的点组成的线,就是xy平面上的一条45°线,这条线对应的响应面就表示一致性变化时z值的变化。在图中就是上图中的红线对应的响应面,可以看到在xy一致的时候Z值始终是最大的。
- 不一致线
不一致线就是所有xy互为相反数的点组成的直线,就是xy平面上和一致性线垂直的线,在上图中就是xy平面上的蓝色的线,可以看到xy的差距越大,Z的值越低。
通过这么一种可视化的表达,我们就可以非常容易的知晓xy所有变化情况下,Z的具体变化情况。
并且结合多项式模型的系数情况我们还可以对相应的假设进行检验
我们回到一致性线所对应的响应面,在这个响应面上x=y,Z的表达式就成了一个二次函数:
Z = a1X + a2X2,其中a1 = b1 + b2 and a2 = b3 + b4 + b5
系数a2决定了对应的响应面是直线还是曲线,a1就决定了对应的响应面的斜率。
再看不一致线所对应的响应面,在这个响应面上x=-y,Z的表达式也是一个二次函数:
Z = a3X + a4X2,其中a3 = b1-b2 and a4 = b3-b4 + b5
系数a4决定了对应的响应面是直线还是曲线,a3就决定了对应的响应面的斜率
根据系数的不同组合反应在图中就有响应面的不同的形状:看下图,比如a1>0(一致性线对应的Z值为斜率向上的直线),a4<0(非一致性线对应的响应面为开口向下的曲线)的时候对应的图就是下面A图;比如a2和a4都<0时两条线对应的响应面都为开口朝下的曲线,整个响应面的形状就是下面D图:等等:
通过上面介绍的系数我们就可以对相应假设进行验证,接着往下我们来看两篇实际例文。
一篇文献名如下:
Bai, Q., Lei, L., Hsueh, F. H., Yu, X., Hu, H., Wang, X., & Wang, P. (2020). Parent-adolescent congruence in phubbing and adolescents’ depressive symptoms: A moderated polynomial regression with response surface analyses. Journal of Affective Disorders, 275, 127-135.
文章做了低头族这一行为习惯对抑郁发生的影响,同时考虑了父母低头和孩子低头,在形成了多项式回归模型后,选取变量进行了响应面分析,主要结果长这样:
作者把关心的两个自变量一个是父母低头,另一个是孩子自己低头,放在xy轴上;把因变量孩子抑郁放在z轴上,通过这样一种图形化表示就可以看得出来,x和y一致增大的时候和xy变化不一致的时候抑郁的变化,从而回答研究问题。
结果呈现上作者报告了一致性线的系数和p值,从而回答假设4:
就是一致性线的斜率是显著的正值,就意味着家长和孩子都是低头族(一致性的低头)孩子抑郁风险会增大。同时还有不一致性线的系数也是同理理解。
作者通过这么一个分析还检验了调节作用,方法部分的原文叙述见下图,用的方法叫做hierarchical regression analysis:
就是嵌套几个回归,然后比较模型的R方从而数据驱动的角度判断交互项是不是应该存在。原理在于:加上交互项后R方显著变大,说明交互项的加入可以显著地增大模型的解释力度。
再看一篇管理学领域的文章:
Lee, K., Woo, H. G., & Joshi, K. (2017). Pro-innovation culture, ambidexterity and new product development performance: Polynomial regression and response surface analysis. European Management Journal, 35(2), 249-260.
在验证下面两个假设的时候文章使用了响应面分析:
NPD performance will increase as both exploitation and exploration increase simultaneously.
NPD performance will decrease as the imbalance between exploitation and exploration increases in either direction.
依然是探讨两个自变量变化趋势的一致和不一致问题,作者给了图和表格来回答研究假设:
原文中假设5的意思是两个自变量同时变大的情况下,因变量也会随之增大,为了验证这个假设,文章是令将原来的多项式回归中的两个自变量相等,简化方程后看回归系数,回归方程简化后就是一个二次函数了,此时满足假设5的条件就是二次项的系数得为0(二次项得不显著,不然函数是个曲线,就不满足假设5因变量一直增长的假设,请回忆初中二次函数的知识点)然后一次项得是负值。
也就是上表中b1+b2得是正的,然后b3+b4+b5得不显著,因为第二个条件不满足所以作者得到了假设5不成立的结论。
同理,假设6认为,两个自变量不一致的情况下,因变量会变小,为了验证这个假设,文章是令两个自变量为相反数,此时要满足假设6的条件就需要,简化后的方程的一次项系数应该为显著的负值,二次项应该为0或显著负值。
也就是上表中b1-b2应该为显著负值,然后b3-b4+b5应该为0或负值,因为两个条件都不满足所以作者得到假设6不成立的结论。
通过这样的一图一表,文章就完成了对研究问题的回答。以上就是响应面分析的两个例文的简要介绍,详细写作请自己扒拉原文瞅瞅。我们接着看做法。
做法步骤
spss是可以做响应面分析的哈,不过我们依然只写用R的方法,做响应面分析步骤有二:
conceptually RSA is divided into two stages: (a) running a polynomial regression model and (b) using the results of the model to generate a response surface and analyze the importance of the effects
在R中做响应面分析可以用rsm包,第一步是拟合带有2次项的多项式回归,比如我现在有如下数据,x,y,z三个变量
首先我需要跑一个二次多项式回归:
rsm(z ~ SO(x, y), data = data)
运行后直接summary上面函数生成的对象即可得到二次多项式的结果
可以看到xy每个项的系数都有展示,我们就是结合这些系数来验证我们的研究假设。
第二步便是将模型结果通过响应面进行可视化展示,代码如下:
persp (rsm, ~x+y,
col = color,main="实例操练",
xlab=c("关注公众号","Codewar"),zlab = "示例",
r=50,d=30,expand=1,box = T,
#ltheta=10,lphi=99,
shade=0.1,theta=-15,phi=15,
#axes=F,
contour=list(z="bottom"),
cex.lab=1,
cex.axis=0.5,
ticktype="detailed",
at = xs(rsm))
上面代码中rsm为模型对象。运行后即可出响应面图如下:
通过上图就可以很直观地看到xy不同变化时,z值的对应变化。
到此响应面分析结束。
R数据分析:多项式回归与响应面分析的理解与实操的更多相关文章
- R数据分析:纵向分类结局的分析-马尔可夫多态模型的理解与实操
今天要给大家分享的统计方法是马尔可夫多态模型,思路来源是下面这篇文章: Ward DD, Wallace LMK, Rockwood K Cumulative health deficits, APO ...
- R数据分析:生存分析的列线图的理解与绘制详细教程
列线图作为一个非常简单明了的临床辅助决策工具,在临床中用的(发文章的)还是比较多的,尤其是肿瘤预后: Nomograms are widely used for cancer prognosis, p ...
- Android ANR(应用无响应)解决分析【转】
本文转载自:https://blog.csdn.net/u014630142/article/details/81709459 来自: http://blog.csdn.net/tjy1985/art ...
- HTTP 请求报文和响应报文分析和解刨!!
http请求和响应报文分析 一>http请求报文主要包括三个部分:1.请求行:2.请求头:3;请求体: 1,请求行一般包括三个部分:请求方式:请求url : http协议版本. 请求方法:大部分 ...
- R数据分析:跟随top期刊手把手教你做一个临床预测模型
临床预测模型也是大家比较感兴趣的,今天就带着大家看一篇临床预测模型的文章,并且用一个例子给大家过一遍做法. 这篇文章来自护理领域顶级期刊的文章,文章名在下面 Ballesta-Castillejos ...
- R数据分析:潜类别轨迹模型LCTM的做法,实例解析
最近看了好多潜类别轨迹latent class trajectory models的文章,发现这个方法和我之前常用的横断面数据的潜类别和潜剖面分析完全不是一个东西,做纵向轨迹的正宗流派还是这个方法,当 ...
- R数据分析:二分类因变量的混合效应,多水平logistics模型介绍
今天给大家写广义混合效应模型Generalised Linear Random Intercept Model的第一部分 ,混合效应logistics回归模型,这个和线性混合效应模型一样也有好几个叫法 ...
- R数据分析:如何简洁高效地展示统计结果
之前给大家写过一篇数据清洗的文章,解决的问题是你拿到原始数据后如何快速地对数据进行处理,处理到你基本上可以拿来分析的地步,其中介绍了如何选变量如何筛选个案,变量重新编码,如何去重,如何替换缺失值,如何 ...
- R数据分析:临床预测模型中校准曲线和DCA曲线的意义与做法
之前给大家写过一个临床预测模型:R数据分析:跟随top期刊手把手教你做一个临床预测模型,里面其实都是比较基础的模型判别能力discrimination的一些指标,那么今天就再进一步,给大家分享一些和临 ...
- R数据分析:扫盲贴,什么是多重插补
好多同学跑来问,用spss的时候使用多重插补的数据集,怎么选怎么用?是不是简单的选一个做分析?今天写写这个问题. 什么时候用多重插补 首先回顾下三种缺失机制或者叫缺失类型: 上面的内容之前写过,这儿就 ...
随机推荐
- DFS总结
常见剪枝方法 优化搜索顺序 优先搜索决策树较小的点,例如在165. 小猫爬山一题中,优先搜索体重较大的扩展出的情况较少 排除冗余信息 如果某些情况在此前已经被搜索过了,那么无需继续搜索 可行性剪枝 如 ...
- wx相关
1.vue图片预览放大 https://www.jianshu.com/p/e3350aa1b0d0 2.js图片文件格式的转换 https://www.jianshu.com/p/ea757f90b ...
- 端口转发、Http Tunnel、内网穿透
原文链接:https://www.yuque.com/tec-nine/architecture/mgxc71 SSH 命令帮助 命令行选项有: -a 禁止转发认证代理的连接. -A 允许转发认证代理 ...
- vue中实现video的动态src绑定
Vue中实现video的动态src 试了网上的$refs方法发现并没有用 解决方案: 通过require方法 <div> <video :src='url' @click= ...
- 系统评价——层次分析法AHP的R语言实现(四)
对一个事物的评价往往会涉及多个因素或者多个指标,评价是在多个因素相互作用下的一个综合判断.多指标综合评价方法具有以下的特点:包含若干个指标,分别说明被评价对象的不同方面,评价方法最终要对被评价对象作出 ...
- 【Note】倍增
真的不会.QAQ 目录 简介 大家都见过的应用:倍增求 \(\text{LCA}\) 倍增求 \(\text{LCA}\) ,但是动态加点,但是不会 \(lct\) 例题:[ZJOI2012]灾难(D ...
- 常用模块time模块
时间模块: 一:time import time time的解析: 时间分为三种格式: 第一种: 第二种: 第三种: 二:datatime import datatime #表达形式 print(d ...
- Python爬取pexels图片
研究Python爬虫,网上很多爬取pexels图片的案例,我下载下来运行没有成功,总量有各种各样的问题. 作为菜鸟初学者,网上的各个案例代码对我还是有不少启发作用,我用搜索引擎+chatGPT逐步对代 ...
- 如何使用Redis做缓存
如何使用Redis做缓存 我们都知道Redis作为NoSql数据库的代表之一,通常会用来作为缓存使用.也是我在工作中通常使用的缓存之一. 1.我们什么时候缓存需要用到Redis? 我认为,缓存可以分为 ...
- Ubuntu Server搭建个人服务器
Ubuntu Server20.04.5 LTS [参考资料] Ubuntu官方地址:https://www.ubuntu.com/ Ubuntu论坛地址:https://ubuntuforums.o ...