R语言线性回归

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

在线性回归中,这两个变量通过一个等式相关联,其中这两个变量的指数(幂)是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

原文地址:https://www.cnblogs.com/ConnorShip/p/9921884.html

时间: 2024-11-09 05:22:48

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

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

转载:http://blog.fens.me/r-multi-linear-regression/ 前言 本文接上一篇R语言解读一元线性回归模型.在许多生活和工作的实际问题中,影响因变量的因素可能不止一个,比如对于知识水平越高的人,收入水平也越高,这样的一个结论.这其中可能包括了因为更好的家庭条件,所以有了更好的教育:因为在一线城市发展,所以有了更好的工作机会:所处的行业赶上了大的经济上行周期等.要想解读这些规律,是复杂的.多维度的,多元回归分析方法更适合解读生活的规律. 由于本文为非统计的专业

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

前言 在我们的日常生活中,存在大量的具有相关性的事件,比如大气压和海拔高度,海拔越高大气压强越小:人的身高和体重,普遍来看越高的人体重也越重.还有一些可能存在相关性的事件,比如知识水平越高的人,收入水平越高:市场化的国家经济越好,则货币越强势,反而全球经济危机,黄金等避险资产越走强. 如果我们要研究这些事件,找到不同变量之间的关系,我们就会用到回归分析.一元线性回归分析是处理两个变量之间关系的最简单模型,是两个变量之间的线性相关关系.让我们一起发现生活中的规律吧. 由于本文为非统计的专业文章,所

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

多元线性回归 多元线性回归模型 实际中有很多问题是一个因变量与多个自变量成线性相关,我们可以用一个多元线性回归方程来表示. 为了方便计算,我们将上式写成矩阵形式: Y = XW 假设自变量维度为N W为自变量的系数,下标0 - N X为自变量向量或矩阵,X维度为N,为了能和W0对应,X需要在第一行插入一个全是1的列. Y为因变量 那么问题就转变成,已知样本X矩阵以及对应的因变量Y的值,求出满足方程的W,一般不存在一个W是整个样本都能满足方程,毕竟现实中的样本有很多噪声.最一般的求解W的方式是最小

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

基本概念 利用线性的方法,模拟因变量与一个或多个自变量之间的关系.自变量是模型输入值,因变量是模型基于自变量的输出值. 因变量是自变量线性叠加和的结果. 线性回归模型背后的逻辑——最小二乘法计算线性系数 最小二乘法怎么理解? 它的主要思想就是求解未知参数,使得理论值与观测值之差(即误差,或者说残差)的平方和达到最小.在这里模型就是理论值,点为观测值.使得拟合对象无限接近目标对象. 一元线性回归与多元线性回归 自变量只有一个的时候叫一元线性回归,自变量有多个时候叫多元线性回归. R语言实现 bik

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

本编博客继续分享简单的机器学习的R语言实现. 今天是关于简单的线性回归方程问题的优化问题 常用方法,我们会考虑随机梯度递降,好处是,我们不需要遍历数据集中的所有元素,这样可以大幅度的减少运算量. 具体的算法参考下面: 首先我们先定义我们需要的参数的Notation 上述算法中,为了避免过拟合,我们采用了L2的正则化,在更新步骤中,我们会发现,这个正则项目,对参数更新的影响 下面是代码部分: ## Load Library library(ggplot2) library(reshape2) li

R语言数据挖掘实战系列(1)

R语言数据挖掘实战(1) 一.数据挖掘基础 数据挖掘:从数据中"淘金",从大量数据(包括文本)中挖掘出隐含的.未知的.对决策有潜在价值的关系.模式和趋势,并用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法.工具和过程. 数据挖掘的任务 利用分类与预测.聚类分析.关联规则.时序模式.偏差检测.智能推荐等方法,帮助企业提取数据中蕴含的商业价值,提高企业的竞争力. 数据挖掘建模过程 定义挖掘目标,即决定到底想干什么? 数据取样.抽取一个与挖掘目标相关的样本数据子集.抽取数据的

【数据分析 R语言实战】学习笔记 第三章 数据预处理 (下)

3.3缺失值处理 R中缺失值以NA表示,判断数据是否存在缺失值的函数有两个,最基本的函数是is.na()它可以应用于向量.数据框等多种对象,返回逻辑值. > attach(data) The following objects are masked fromdata (pos = 3): city, price, salary > data$salary=replace(salary,salary>5,NA) > is.na(salary) [1] FALSEFALSE TRUE

使用R语言预测产品销量

使用R语言预测产品销量 通过不同的广告投入,预测产品的销量.因为响应变量销量是一个连续的值,所以这个问题是一个回归问题.数据集共有200个观测值,每一组观测值对应一种市场情况. 数据特征 TV:对于一个给定市场的单一产品,用于电视上的广告费用(以千为单位) Radio:用于广告媒体上投资的广告费用 Newspaper:用于报纸媒体上的广告费用 响应 Sales:对应产品的销量 加载数据 > data <- read.csv("http://www-bcf.usc.edu/~garet

R语言实战(八)广义线性模型

本文对应<R语言实战>第13章:广义线性模型 广义线性模型扩展了线性模型的框架,包含了非正态因变量的分析. 两种流行模型:Logistic回归(因变量为类别型)和泊松回归(因变量为计数型) glm()函数的参数 分布族 默认的连接函数 binomial (link = "logit") gaussian (link = "identity") gamma (link = "inverse") inverse.gaussian (lin