通过示例快速理解二次回归

当两个变量有线性关系时,通常使用简单线性回归测定它们的关系。但变量间有二次关系时,应该使用二次回归进行拟合。本文介绍R如何实现二次回归。

示例

假设我们希望理解工作时长与幸福感之间的关系。现收集到下面数据集,包括每周工作时长以及调查反馈的幸福感(0~100):

#create data
data

首先我们利用散点图看下变量之间的关系:

plot(data$hours, data$happiness, pch=16)

通过示例快速理解二次回归

上图明显看到变量之间不是线性关系。下面我们使用简单线性回归模型看下数据拟合情况:

拟合简单线性模型
linearModel |t|)
(Intercept)  48.4531    17.3288   2.796   0.0208 *
hours         0.2981     0.4599   0.648   0.5331
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
Residual standard error: 28.72 on 9 degrees of freedom
Multiple R-squared:  0.0446,    Adjusted R-squared:  -0.06156
F-statistic: 0.4201 on 1 and 9 DF,  p-value: 0.5331

通过 Multiple R-squared: 0.0446表明模型仅能解释4.46%幸福感 。下面我们采用二次回归模型:

创建新的二次变量
data$hours2 |t|)
(Intercept) -18.25364    6.18507  -2.951   0.0184 *
hours         6.74436    0.48551  13.891 6.98e-07 ***
hours2       -0.10120    0.00746 -13.565 8.38e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
Residual standard error: 6.218 on 8 degrees of freedom
Multiple R-squared:  0.9602,    Adjusted R-squared:  0.9502
F-statistic: 96.49 on 2 and 8 DF,  p-value: 2.51e-06

这次我们看到模型可以解释96.2%的幸福感方差。下面利用可视化方式查看模型拟合数据情况:

创建时长序列
hourValues

通过示例快速理解二次回归

可以看到二次回归模型拟合效果非常好。我们再看看二次模型的输出信息:

Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept) -18.25364    6.18507  -2.951   0.0184 *
hours         6.74436    0.48551  13.891 6.98e-07 ***
hours2       -0.10120    0.00746 -13.565 8.38e-07 ***

基于上面的输出信息,二次回归模型应该为:

** Happiness = -0.1012(hours)2 {^2}2 + 6.7444(hours) – 18.2536

我们可以利用这个方程基于每周工作时长来计算幸福感。

例如,一个每周工作60小时的人的幸福水平预计为22.09:
幸福= -0.1012(60)2 {^2}2 + 6.7444(60)- 18.2536 = 22.09

相反,每周工作30小时的人的幸福水平预计为92.99:
幸福= -0.1012(30)2 {^2}2 + 6.7444(30)- 18.2536 = 92.99

Original: https://blog.csdn.net/neweastsun/article/details/124992578
Author: 梦想画家
Title: 通过示例快速理解二次回归

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/640272/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球