楼主: jpld
1612 1

[学习分享] 【R语言进行数据挖掘】回归 [推广有奖]

  • 2关注
  • 50粉丝

已卖:4份资源

讲师

2%

还不是VIP/贵宾

-

威望
0
论坛币
1264 个
通用积分
9.5333
学术水平
120 点
热心指数
120 点
信用等级
99 点
经验
1249 点
帖子
192
精华
0
在线时间
271 小时
注册时间
2009-5-29
最后登录
2024-6-25

楼主
jpld 发表于 2015-10-11 21:14:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

1、线性回归

线性回归就是使用下面的预测函数预测未来观测量:

1.jpg

其中,x1,x2,...,xk都是预测变量(影响预测的因素),y是需要预测的目标变量(被预测变量)。

线性回归模型的数据来源于澳大利亚的CPI数据,选取的是2008年到2011年的季度数据。

> 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="")# 绘制横坐标轴> axis(1, labels=paste(year,quarter,sep="Q"), at=1:12, las=3)

接下来,观察CPI与其他变量例如‘year(年份)’和‘quarter(季度)’之间的相关关系。

> cor(year,cpi)> cor(quarter,cpi)

输出如下:

> cor(quarter,cpi)

[1] 0.3738028

> cor(year,cpi)

[1] 0.9096316

> cor(quarter,cpi)

[1] 0.3738028

由上图可知,CPI与年度之间的关系是正相关,并且非常紧密,相关系数接近1;而它与季度之间的相关系数大约为0.37,只是有着微弱的正相关,关系并不明显。

然后使用lm()函数建立一个线性回归模型,其中年份和季度为预测因素,CPI为预测目标。

# 建立模型fit> fit <- lm(cpi ~ year + quarter)> fit

输出结果如下:

Call:

lm(formula = cpi ~ year + quarter)


Coefficients:

(Intercept)         year     quarter  

-7644.488        3.888        1.167

由上面的输出结果可以建立以下模型公式计算CPI:

2.jpg

其中,c0、c1和c2都是模型fit的参数分别是-7644.488、3.888和1.167。因此2011年的CPI可以通过以下方式计算:

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

输出的2011年的季度CPI数据分别是174.4417、175.6083、176.7750和177.9417。

模型的具体参数可以通过以下代码查看:

# 查看模型的属性> attributes(fit)$names [1] "coefficients"  "residuals"     "effects"       "rank"          "fitted.values" [6] "assign"        "qr"            "df.residual"   "xlevels"       "call"         [11] "terms"         "model"        $class[1] "lm"# 模型的参数> fit$coefficients# 观测值与拟合的线性模型之间的误差,也称为残差> residuals(fit)          1           2           3           4           5           6           7 -0.57916667  0.65416667  1.38750000 -0.27916667 -0.46666667 -0.83333333 -0.40000000           8           9          10          11          12 -0.66666667  0.44583333  0.37916667  0.41250000 -0.05416667

除了将数据代入建立的预测模型公式中,还可以通过使用predict()预测未来的值。

# 输入预测时间> 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"))

预测结果如下:

3.png

上图中红色的三角形就是预测值。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据挖掘 R语言 coefficients coefficient Attributes 澳大利亚 quarter labels 坐标轴 模型

7.png (21.44 KB)

7.png

6.jpg (9.73 KB)

6.jpg

5.jpg (8.78 KB)

5.jpg

4.jpg (9.69 KB)

4.jpg

沙发
jjxm20060807 发表于 2015-10-12 20:39:00

感谢分享

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 06:38