R语言中如何使用回归模型进行预测

此博文为翻译内容,原文点这里

在R语言中为了拟合一个线性回归模型,我们可以使用lm()函数。函数用法如下:

model <- lm(y ~ x1 + x2, data=df)

我们可以像下面这样用拟合得到的线性回归模型预测新数据的结果:

predict(model, newdata = new)

(这里使用了新的数据“new”,下文有具体的例子)
下面结合几个例子介绍在R语言中如何使用线性回归模型进行预测

例1:简单线性回归模型的预测

下面的代码展示了如何拟合简单线性回归模型:

#create data
df <- data.frame(x=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12),y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36))#fit simple linear regression model
model <- lm(y ~ x, data=df)

使用下面的代码可以预测新观测值对应的结果:

#define new observation
new <- data.frame(x=c(5))#use the fitted model to predict the value for the new observation
predict(model, newdata = new)1
25.36364

上述模型预测新观测值对应的拟合值为25.36364

例2:多元线性回归模型的预测

下面的代码展示了如何拟合多元线性回归模型:

#create data
df <- data.frame(x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12),x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14),y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36))#fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=df)

我们可以通过下面的代码对新观测值的响应结果进行预测:

#define new observation
new <- data.frame(x1=c(5),x2=c(10))#use the fitted model to predict the value for the new observation
predict(model, newdata = new)1
26.17073

上述模型预测新观测值对应的拟合值为26.17073

拟合新的观测值时可能会出现的错误

当尝试对新观测值输入模型进行预测时,出现错误的原因最有可能是用来你和回归模型的观测值的列名称和用来预测所使用的新的观测值的列名称不同
(data.frame类型的数据每一列都有一个名称,线性回归拟合时模型会记录每一列数据的名称,当预测是的自变量各列的名称与模型中的名称不一致,会导致错误)
例如,假设我们得到了如下的多元线性回归模型:

#create data
df <- data.frame(x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12),x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14),y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36))#fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=df)

如果我们用下面的新观测值进行预测:

#define new observation
new <- data.frame(x_1=c(5),x_2=c(10))#use the fitted model to predict the value for the new observation
predict(model, newdata = new)Error in eval(predvars, data, env) : object 'x1' not found

这时出现了一个错误,因为新观测值(x_1, x_2)和原来用于得到模型的数据框中的列名称(x1, x2)不一致。

(我是在实验时遇到了类似:
Warning message:
‘newdata’ had 1 row but variables found have 32 rows
这样的提示,并且得不到正确预测结果时,搜索得到了上述内容,模仿着顺利解决了问题,因此记录一下它的用法)

原文地址:https://www.statology.org/r-predict-single-value/

R语言 predict()函数的用法简记相关推荐

  1. R语言 diag函数的用法

    R语言 diag函数的用法 我们今天写一下关于R语言中diag函数的用法: (1)diag函数可以用来提取矩阵的对角元素,并将它保存成向量的格式.值得注意的是,如果所要提取的矩阵不是方阵的话,diag ...

  2. R语言 plot()函数 基础用法

    plot(x=x轴数据,y=y轴数据,main="标题",sub="子标题",type="线型",xlab="x轴名称" ...

  3. R语言glm函数拟合回归模型时其它常用的函数(summary、coefficients、confint、fitted、residuals、anova、plot、predict、deviance等)

    R语言glm函数拟合回归模型时其它常用的函数(summary.coefficients.confint.fitted.residuals.anova.plot.predict.deviance.df. ...

  4. R语言missing()函数用法及举例

    R语言missing()函数用法及举例 函数作用就是如果y没有具体的值,那么输出为真,如果y有具体的值,那么输出为假,这么说可能有点抽象,举个例子: 对于这样一段代码 myplot <- fun ...

  5. R语言与函数估计学习笔记(函数模型的参数估计)

    R语言与函数估计学习笔记 毫无疑问,函数估计是一个比参数估计要复杂得多的问题,当然也是一个有趣的多的问题.这个问题在模型未知的实验设计的建模中十分的常见,也是我正在学习的内容的一部分. 关于函数估计我 ...

  6. r语言 c 函数返回值,R语言入门 输出函数 cat、print、paste等区别理解

    一. 简介 cat.print函数都是输出函数 > cat("hello world") hello world >> print("hello wor ...

  7. C语言“fread”函数的用法?

    C语言"fread"函数的用法为"size_tf read(void *buffer,size_t size,size_t count,FILE *stream)&quo ...

  8. c语言get()的作用,c语言get函数的用法有哪些

    C语言中gets从标准输入设备读字符串函数,可以无限读取,不会判断上限,今天学习啦小编在这里为大家介绍C语言get函数的用法,欢迎大家阅读! c语言get函数的用法:int getc(FILE *st ...

  9. c语言fread函数,C语言“fread”函数的用法?

    C语言"fread"函数的用法? C语言"fread"函数的用法为"size_tf read(void *buffer,size_t size,siz ...

最新文章

  1. 让Dev-C++运行C++程序的控制台窗口等待查看运行结果
  2. 海康sdk返回yv12
  3. 十大排序算法之选择排序
  4. 多核处理器_基于NXP i.MX8MM多核应用处理器设计的智能加油机
  5. Hibernate学习系列————注解一对多单向实例
  6. mui ajax 文件上传,MUI的图片上传和压缩
  7. Vector使用方法简单整理
  8. 精进 Quartz—Quartz大致介绍(一)
  9. 深度学习三种分割定义
  10. 安卓蓝牙USB连接热敏打印机二
  11. 产生指数分布的随机数 C语言实现
  12. matlab函数多个零点,MATLAB中求一个双变量函数的零点
  13. 【Redis-6.0.8】Redis中的RAX
  14. hp计算机如何重装win7,惠普笔记本重装Win7系统过程详解
  15. C语言枚举类 口袋中有红、黄、蓝、白、黑5种颜色的球若干个
  16. vba学习笔记 数组的LBound和UBound
  17. 基于嵌入式ARM的mp3播放器的设计
  18. 张量分解学习(一 基础铺垫)
  19. 初学Python可能会遇见的小程序
  20. jQuery (JavaScript 脚本库)

热门文章

  1. LT9611UX功能概述
  2. spring xml 配置transactionManager事务管理器踩的坑
  3. vtkIntersectionPolyDataFilter两多边形数据集的交线
  4. 记一次哭笑不得的诡异事件
  5. 视频超分辨率论文笔记
  6. XML编辑软件或工具
  7. 静思:将“找工作”的核心放一放
  8. 嵌入式Linux 笔记基于(OK6410开发板)-----------4.烧录 kernel到NandFlash
  9. 【转】关于硬链接与软连接占用磁盘空间问题的分析研究
  10. accept函数源码分析