回归分析是一个广泛使用的统计工具,用于建立两个变量之间的关系模型。 这些变量之一称为预测变量,其值通过实验收集。 另一个变量称为响应变量,其值来自预测变量。

在线性回归中,这两个变量通过一个等式相关联,其中这两个变量的指数(幂)是1。数学上,当绘制为图形时,线性关系表示直线。任何变量的指数不等于1的非线性关系产生曲线。

线性回归的一般数学方程为 -

y = ax + b
R

以下是使用的参数的描述 -

  • y - 是响应变量。
  • x - 是预测变量。
  • ab - 叫作系数的常数。

建立回归的步骤

一个简单的线性回归例子:是否能根据一个人的已知身高来预测人的体重。要做到这一点,我们需要有一个人的身高和体重之间的关系。

创建线性回归关系的步骤是 -

  • 进行收集高度和相应重量观测值样本的实验。
  • 使用R中的lm()函数创建关系模型。
  • 从所创建的模型中找到系数,并使用这些系数创建数学方程。
  • 获取关系模型的摘要,以了解预测中的平均误差(也称为残差)。
  • 为了预测新人的体重,请使用R中的predict()函数。

输入数据样本

以下是表示观察结果的样本数据 -

# Values of height
x<-151, 174, 138, 186, 128, 136, 179, 163, 152, 131 # Values of weight.
y<-63, 81, 56, 91, 47, 57, 76, 72, 62, 48
R

lm()函数

lm()函数创建预测变量与响应变量之间的关系模型。

语法

线性回归中lm()函数的基本语法是 -

lm(formula,data)
R

以下是使用的参数的描述 -

  • formula - 是表示xy之间的关系的符号。
  • data - 是应用公式的向量。

示例: 创建关系模型并得到系数

x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48) # Apply the lm() function.
relation <- lm(y~x) print(relation)

当我们执行上述代码时,会产生以下结果 -

Call:
lm(formula = y ~ x) Coefficients:
(Intercept) x
-38.4551 0.6746

获取关系的概要 -

x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48) # Apply the lm() function.
relation <- lm(y~x) print(summary(relation))
R

当我们执行上述代码时,会产生以下结果 -

Call:
lm(formula = y ~ x) Residuals:
Min 1Q Median 3Q Max
-6.3002 -1.6629 0.0412 1.8944 3.9775 Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -38.45509 8.04901 -4.778 0.00139 **
x 0.67461 0.05191 12.997 1.16e-06 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3.253 on 8 degrees of freedom
Multiple R-squared: 0.9548, Adjusted R-squared: 0.9491
F-statistic: 168.9 on 1 and 8 DF, p-value: 1.164e-06
Shell

predict()函数

语法

线性回归中的predict()的基本语法是 -

predict(object, newdata)
R

以下是使用的参数的描述 -

  • object - 是已经使用lm()函数创建的公式。
  • newdata - 是包含预测变量的新值的向量。

示例: 预测新人的体重

# The predictor vector.
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131) # The resposne vector.
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48) # Apply the lm() function.
relation <- lm(y~x) # Find weight of a person with height 170.
a <- data.frame(x = 170)
result <- predict(relation,a)
print(result)
R

当我们执行上述代码时,会产生以下结果 -

       1
76.22869

示例:以图形方式可视化线性回归,参考以下代码实现 -

# Create the predictor and response variable.
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)
relation <- lm(y~x) # Give the chart file a name.
png(file = "linearregression.png") # Plot the chart.
plot(y,x,col = "blue",main = "身高和体重回归",
abline(lm(x~y)),cex = 1.3,pch = 16,xlab = "体重(Kg)",ylab = "身高(cm)") # Save the file.
dev.off()

当我们执行上述代码时,会产生以下结果 -

来源:https://www.yiibai.com/r/r_linear_regression.html

R语言线性回归的更多相关文章

  1. R语言 线性回归

    0 引言 初学者,对于一些运行结果不是很清楚,所以看了一些课本和资料,这里做一个记录而已. 1 线性回归模型的结果分析 结果的解释: “call”:指出线性回归的公式 “Residuals”:之处从实 ...

  2. R语言解读多元线性回归模型

    转载:http://blog.fens.me/r-multi-linear-regression/ 前言 本文接上一篇R语言解读一元线性回归模型.在许多生活和工作的实际问题中,影响因变量的因素可能不止 ...

  3. R语言解读一元线性回归模型

    转载自:http://blog.fens.me/r-linear-regression/ 前言 在我们的日常生活中,存在大量的具有相关性的事件,比如大气压和海拔高度,海拔越高大气压强越小:人的身高和体 ...

  4. 机器学习(一) 从一个R语言案例学线性回归

    写在前面的话 按照正常的顺序,本文应该先讲一些线性回归的基本概念,比如什么叫线性回归,线性回规的常用解法等.但既然本文名为<从一个R语言案例学会线性回归>,那就更重视如何使用R语言去解决线 ...

  5. 多元线性回归公式推导及R语言实现

    多元线性回归 多元线性回归模型 实际中有很多问题是一个因变量与多个自变量成线性相关,我们可以用一个多元线性回归方程来表示. 为了方便计算,我们将上式写成矩阵形式: Y = XW 假设自变量维度为N W ...

  6. 【数据分析】线性回归与逻辑回归(R语言实现)

    文章来源:公众号-智能化IT系统. 回归模型有多种,一般在数据分析中用的比较常用的有线性回归和逻辑回归.其描述的是一组因变量和自变量之间的关系,通过特定的方程来模拟.这么做的目的也是为了预测,但有时也 ...

  7. 机器学习-线性回归(基于R语言)

    基本概念 利用线性的方法,模拟因变量与一个或多个自变量之间的关系.自变量是模型输入值,因变量是模型基于自变量的输出值. 因变量是自变量线性叠加和的结果. 线性回归模型背后的逻辑——最小二乘法计算线性系 ...

  8. R语言-简单线性回归图-方法

    目标:利用R语言统计描绘50组实验对比结果 第一步:导入.csv文件 X <- read.table("D:abc11.csv",header = TRUE, sep = & ...

  9. 简单线性回归问题的优化(SGD)R语言

    本编博客继续分享简单的机器学习的R语言实现. 今天是关于简单的线性回归方程问题的优化问题 常用方法,我们会考虑随机梯度递降,好处是,我们不需要遍历数据集中的所有元素,这样可以大幅度的减少运算量. 具体 ...

随机推荐

  1. c/c++ 智能指针 weak_ptr 使用

    智能指针 weak_ptr 使用 weak_ptr用途: 1,解决空悬指针问题 2,解决循环引用问题 weak_ptr特点:没有*操作和->操作 weak_ptr是不控制所指对象生存周期的智能指 ...

  2. LeetCode算法题-Power Of Three(Java实现-七种解法)

    这是悦乐书的第204次更新,第215篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第71题(顺位题号是326).给定一个整数,写一个函数来确定它是否为3的幂.例如: 输入 ...

  3. March 10th, 2018 Week 10th Saturday

    All good things must come to an end. 好景无常. Love is when the other person's happiness is more importa ...

  4. 译文——The habits of highly successful people

    1.Morning Routine (早上列行公事) Probably the most common habit ultra-successful people have is they can t ...

  5. Fluentd初探 简介与安装

    Fluentd是一个开源的数据收集器,专为处理数据流设计,有点像 syslogd ,但是使用JSON作为数据格式.它采用了插件式的架构,具有高可扩展性高可用性,同时还实现了高可靠的信息转发. 据分(Y ...

  6. spring cloud(Greenwich.M2) hystrix dashboard 报/actuator/hystrix.stream 404 Not Found的问题

    consumer端不引用spring-boot-starter-actuator的情况 Consumer端会报Unable to connect to Command Metric Stream.新建 ...

  7. Xshell安装后,使用的优化

    常见的远程连接软件 windows Xshell.secureCRT.Putty mac ssh命令.iterm2 手机 IOS-termius Android-JuiceSSH Xshell的优化 ...

  8. 【转】java将excel文件转换成txt格式文件

    在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文 ...

  9. linux命令之 tar

    参数 -c 创建新归档 -d 比较归档和文件系统的差异 -r 追加文件到归档 -t 存档的内容列表 -x 提取归档所有文件 -C 改变解压目录 -f 使用归档文件或设备归档 -j bzip2 压缩 - ...

  10. ENQ: KO - FAST OBJECT CHECKPOINT tips

    ENQ: KO - FAST OBJECT CHECKPOINT tips Question: What does the wait event ENQ: KO - FAST OBJECT CHECK ...