R数据分析:多项式回归与响应面分析的理解与实操

这篇具有很好参考价值的文章主要介绍了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

所以说这个想法就不好,不能说不对哈,只能说不好。

此时最正确的方法就是使用多项式回归:

R数据分析:多项式回归与响应面分析的理解与实操

 

上面的式子中xy为两个自变量,Z是因变量,式子中还有xy的2次项,对于这么一个式子我们可以对其图形化表达

R数据分析:多项式回归与响应面分析的理解与实操

 

图中两个自变量在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图:等等:

R数据分析:多项式回归与响应面分析的理解与实操

 

通过上面介绍的系数我们就可以对相应假设进行验证,接着往下我们来看两篇实际例文。

一篇文献名如下:

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.

文章做了低头族这一行为习惯对抑郁发生的影响,同时考虑了父母低头和孩子低头,在形成了多项式回归模型后,选取变量进行了响应面分析,主要结果长这样:

R数据分析:多项式回归与响应面分析的理解与实操

 

作者把关心的两个自变量一个是父母低头,另一个是孩子自己低头,放在xy轴上;把因变量孩子抑郁放在z轴上,通过这样一种图形化表示就可以看得出来,x和y一致增大的时候和xy变化不一致的时候抑郁的变化,从而回答研究问题。

结果呈现上作者报告了一致性线的系数和p值,从而回答假设4:

R数据分析:多项式回归与响应面分析的理解与实操

 

就是一致性线的斜率是显著的正值,就意味着家长和孩子都是低头族(一致性的低头)孩子抑郁风险会增大。同时还有不一致性线的系数也是同理理解。

作者通过这么一个分析还检验了调节作用,方法部分的原文叙述见下图,用的方法叫做hierarchical regression analysis:

R数据分析:多项式回归与响应面分析的理解与实操

 

就是嵌套几个回归,然后比较模型的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.

依然是探讨两个自变量变化趋势的一致和不一致问题,作者给了图和表格来回答研究假设:

R数据分析:多项式回归与响应面分析的理解与实操

 

R数据分析:多项式回归与响应面分析的理解与实操

 

原文中假设5的意思是两个自变量同时变大的情况下,因变量也会随之增大,为了验证这个假设,文章是令将原来的多项式回归中的两个自变量相等,简化方程后看回归系数,回归方程简化后就是一个二次函数了,此时满足假设5的条件就是二次项的系数得为0(二次项得不显著,不然函数是个曲线,就不满足假设5因变量一直增长的假设,请回忆初中二次函数的知识点)然后一次项得是负值。

也就是上表中b1+b2得是正的,然后b3+b4+b5得不显著,因为第二个条件不满足所以作者得到了假设5不成立的结论。

同理,假设6认为,两个自变量不一致的情况下,因变量会变小,为了验证这个假设,文章是令两个自变量为相反数,此时要满足假设6的条件就需要,简化后的方程的一次项系数应该为显著的负值,二次项应该为0或显著负值。

也就是上表中b1-b2应该为显著负值,然后b3-b4+b5应该为0或负值,因为两个条件都不满足所以作者得到假设6不成立的结论。

R数据分析:多项式回归与响应面分析的理解与实操

 

通过这样的一图一表,文章就完成了对研究问题的回答。以上就是响应面分析的两个例文的简要介绍,详细写作请自己扒拉原文瞅瞅。我们接着看做法。

做法步骤

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三个变量

R数据分析:多项式回归与响应面分析的理解与实操

 

首先我需要跑一个二次多项式回归:

rsm(z ~ SO(x, y), data = data)

运行后直接summary上面函数生成的对象即可得到二次多项式的结果

R数据分析:多项式回归与响应面分析的理解与实操

 

可以看到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为模型对象。运行后即可出响应面图如下:

R数据分析:多项式回归与响应面分析的理解与实操

 

通过上图就可以很直观地看到xy不同变化时,z值的对应变化。

到此响应面分析结束。文章来源地址https://www.toymoban.com/news/detail-467393.html

到了这里,关于R数据分析:多项式回归与响应面分析的理解与实操的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python多项式回归sklearn

    多项式回归是一种回归分析的方法,它通过使用多项式函数来拟合数据。与简单线性回归不同,多项式回归可以更灵活地适应数据的曲线特征,因为它可以包含多个特征的高次项。 多项式回归的一般形式为: 在实际应用中,可以通过调整多项式的次数来适应不同的数据特征

    2024年01月25日
    浏览(48)
  • Python 中的机器学习简介:多项式回归

            多项式回归可以识别自变量和因变量之间的非线性关系。本文是关于回归、梯度下降和 MSE 系列文章的第三篇。前面的文章介绍了简单线性回归、回归的正态方程和多元线性回归。         多项式回归用于最适合曲线拟合的复杂数据。它可以被视为多元线性回

    2024年02月13日
    浏览(45)
  • 无涯教程-分类算法 - 多项式逻辑回归模型函数

    Logistic逻辑回归的另一种有用形式是多项式Lo​​gistic回归,其中目标或因变量可以具有3种或更多可能的 unordered 类型,即没有定量意义的类型。 现在,无涯教程将在Python中实现上述多项式逻辑回归的概念。为此,使用来自sklearn的名为 digit 的数据集。 首先,需要导入必要的

    2024年02月10日
    浏览(40)
  • pytorch 欠拟合和过拟合 多项式回归

        训练误差和验证误差都有,还可能比较严重, 但它们之间仅有差距不大。 这个时候模型不能降低训练的误差,有可能是我们设计的模型简单了,表达能力不足, 捕获试图学习的模式比较难。由于我们的训练和验证误差之间的泛化误差很小, 这个时候我们认为可以用一

    2024年02月16日
    浏览(41)
  • 使用R语言进行多项式回归、非线性回归模型曲线拟合

    对于线性关系,我们可以进行简单的线性回归。对于其他关系,我们可以尝试拟合一条曲线。 相关视频 曲线拟合是构建一条曲线或数学函数的过程,它对一系列数据点具有最佳的拟合效果。 使用示例数据集 看起来我们可以拟合一条曲线。 我们可以看到每条曲线的拟合程度

    2024年02月09日
    浏览(40)
  • 每天五分钟机器学习:多项式非线性回归模型

    在前面的课程中,我们学习了线性回归模型和非线性回归模型的区别和联系。多项式非线性回归模型是一种用于拟合非线性数据的回归模型。与线性回归模型不同,多项式非线性回归模型可以通过增加多项式的次数来适应更复杂的数据模式。在本文中,我们将介绍多项式非线

    2024年02月16日
    浏览(48)
  • 逻辑回归与多项式特征:解密分类问题的强大工具

    在机器学习领域,逻辑回归是一种常用的分类算法,它可以用于解决诸如垃圾邮件过滤、疾病预测和客户流失分析等各种分类问题。然而,有时候简单的线性逻辑回归模型无法捕捉到数据中的复杂关系。为了更好地处理这些情况,我们可以引入多项式特征,从而提高模型的表

    2024年02月08日
    浏览(46)
  • 机器学习_数据升维_多项式回归代码_保险案例数据说明_补充_均匀分布_标准正太分布---人工智能工作笔记0038

    然后我们再来看一下官网注意上面这个旧的,现在2023-05-26 17:26:31..我去看了新的官网, scikit-learn已经添加了很多新功能,     我们说polynomial多项式回归其实是对数据,进行 升维对吧,从更多角度去看待问题,这样 提高模型的准确度. 其实y=w0x0+w1x1.. 这里就是提高了这个x的个数对吧

    2024年02月06日
    浏览(45)
  • numpy 多项式函数回归与插值拟合模型;ARIMA时间序列模型拟合

    参考: https://blog.csdn.net/mao_hui_fei/article/details/103821601 1、多项式函数回归拟合 x ^3+ x ^2… 2、多项式函数插值拟合 对于插值函数 interp1d(phone_time, phone_x, kind=‘cubic’),无法直接获取多项式的参数与具体函数表达式。这是因为该函数使用样条插值方法,它的内部实现是基于一组数

    2024年02月16日
    浏览(77)
  • 【C 数据结构】 用单链表存储一元多项式,并实现两个多项式相加运算。

    本次代码纯c语言,可以支持输入两个多项式的项式、系数、指数。 实验目的: 1 掌握单链表的基本工作原理; 2 实现链式存储下的两个多项式的相加。 实验步骤 1 定义链式存储的数据结构 2 完成多项式的初始化,即给多项式赋初值 3 完成多项式的输出 4 实现多项式的相加及结

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包