R语言数据挖掘中的,“回归分析”是如何操作的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言数据挖掘中的,“回归分析”是如何操作的?相关的知识,希望对你有一定的参考价值。

回归分析是对多个自变量(又称为预测变量)建立一个函数来预测因变量(又称为响应变量的值)。


例如,银行根据房屋贷款申请人的年龄、收入、开支、职业、负担人口,以及整体信用限额等因素,来评估申请人的房贷风险。


线性回归


线性回归是利用预测变量的一个线性组合函数,来预测响应变量的统计分析方法,该线性回归模型的形式如下:


y = c0 + c1x1 + c2x2 + …+ ckxk;


x1, x2,… xk为预测变量,y为对预测的响应变量。


下面将在澳大利亚消费者价格指数(CPI)的数据上使用函数lm做线性回归分析


该数据为2008年到2010年澳大利亚的季度消费者价格指数。


1、需要创建数据集并绘制散布图。在下面的代码中,使用函数axis手动添加一个横坐标,参数las=3设置文字为垂直方向。


year <- rep(2008:2010, each=4)

quarter <- rep(1:4, 3)

cpi <- c(162.2, 164.6, 166.5, 166.0,

166.2, 167.0, 168.6, 169.5,

171.0, 172.1, 173.3, 174.0)

plot(cpi, xaxt="n", ylab="CPI", xlab="")

# draw x-axis

axis(1, labels=paste(year,quarter,sep="Q"), at=1:12, las=3)


澳大利亚2008-2010季度消费者价格指数

技术分享


2、查看CPI与其他变量之间的相关系数,包括year(年份)和quarter(季度)这两个变量

cor(year,cpi)

cor(quarter,cpi)


3、在前面的数据上使用函数lm建立一个线性回归模型,其中year和quarter为预测变量,CPI为响应变量。


fit <- lm(cpi ~ year + quarter)

fit


根据上面建立的线性模型,CPI的计算公式为:


cpi = c0 + c1 * year + c2 * quarter

其中,c0, c1, c2为拟合模型fit的系数。因此,2011年的CPI值可以计算如下。


(cpi2011 <- fit$coefficients[[1]] + fit$coefficients[[2]]*2011 + fit$coefficients[[3]]*(1:4))


该模型的更多细节可以通过下面的代码获得。


attributes(fit)

fit$coefficients


观测值与拟合结果的残差使用函数residuals 来计算。


residuals(fit)

summary(fit)


线性回归模型的预测图


下面的代码绘制拟合模型的图像,如图所示

plot(fit)


技术分享


拟合模型的3D图像


还可以绘制拟合模型的3D图像,下面代码中使用函数scatterplot3d创建一个3D


library(scatterplot3d)

s3d <- scatterplot3d(year, quarter, cpi, highlight.3d=T, type="h", lab=c(2,3))

s3d$plane3d(fit)


技术分享


拟合模型


基于拟合模型,20l1年的CPI可以通过如下方式预测,在后图中预测值用小三角表示。


data2011 <- data.frame(year=2011, quarter=1:4)

cpi2011 <- predict(fit, newdata=data2011)

style <- c(rep(1,12), rep(2,4))

plot(c(cpi, cpi2011), xaxt="n", ylab="CPI", xlab="", pch=style, col=style)

axis(1, at=1:16, las=3,

labels=c(paste(year,quarter,sep="Q"), "2011Q1", "2011Q2", "2011Q3", "2011Q4"))


基于线性回归模型得到的2011年CPI的预测值


技术分享


本文出自 “中科院计算所培训” 博客,谢绝转载!

以上是关于R语言数据挖掘中的,“回归分析”是如何操作的?的主要内容,如果未能解决你的问题,请参考以下文章

R语言基本回归分析

R语言中的Theil-Sen回归分析

回归分析 R语言 -- 多元线性回归

chatGPT对话R语言

R语言生存分析COX回归分析实战:以乳腺癌数据为例

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析