引言

随机森林( random forest) 是一种基于分类树( classification tree) 的算法,它可以用于分类和回归,本文在这里以广西地区1990-2014共25年的GDP数据作为因变量,以INV投资、CON消费、NEX净出口为三个自变量,运用R语言软件做随机森林回归,最终得到三个自变量的相对重要程度。

1 数据

从广西统计年鉴中取得1990-2014年的因变量与自变量数据,放入excel表格中。

2 步骤

2.1 安装randomForest包

在R语言中,randomForest包提供了随机森林的实现,使用randomForest需要先安装这个包,在R的交互命令中使用下面的命令安装:

> install.packages("randomForest")

然后在弹出的镜像列表中选择一个国内的镜像站点就可以自动安装了。

2.2 使用randomForest包

在R的交互命令中引入randomForest:

> library(randomForest)

屏幕上会输出randomForest包的版本信息。

2.3 导入数据

将已经整理好的excel数据放入R语言的workspace中,或将R的工作空间加载为存有excel的文件夹。

将数据导入到R中并查看:

> gxdata

> gxdata

X gdp con inv nex

1 1990 449.06 175.4369 68.5666 8.0611

2 1991 518.59 200.2276 89.6479 10.1670

3 1992 646.60 243.6189 141.0395 29.2378

...

24 2013 14449.90 5133.1000 11907.6669 862.2181

25 2014 15672.89 5772.8317 13843.2123 996.4330

2.4 数据的初步处理

在这里我们通过两个步骤将每一行的名字以年份命名。首先去掉第一列(年份),将去掉后的矩阵命名为gxdata_without_x,然后查看新生成的矩阵,命令如下:

> gxdata_without_x

> gxdata_without_x

gdp con inv nex

1 449.06 175.4369 68.5666 8.0611

2 518.59 200.2276 89.6479 10.1670

3 646.60 243.6189 141.0395 29.2378

……

24 14449.90 5133.1000 11907.6669 862.2181

25 15672.89 5772.8317 13843.2123 996.4330

第二步,取出gxdata矩阵中的第一列gxdata[,1](年份),给矩阵的每一行命名,可查看新的矩阵,命令如下:

> row.names(gxdata_without_x)

> gxdata_without_x

gdp con inv nex

1990 449.06 175.4369 68.5666 8.0611

1991 518.59 200.2276 89.6479 10.1670

1992 646.60 243.6189 141.0395 29.2378

……

2013 14449.90 5133.1000 11907.6669 862.2181

2014 15672.89 5772.8317 13843.2123 996.4330

2.5 多元线性回归分析

利用2.4中处理好的矩阵gxdata_without_x,以CON、INV、NEX为自变量,GDP为因变量做多元回归分析,查看多元线性回归分析在本例中的分析结果。命令及显示结果如下:

> gx.lm

> summary(gx.lm)

Call:

lm(formula = gdp ~ con + inv + nex, data = gxdata_without_x)

Residuals:

Min 1Q Median 3Q Max

-657.08 -97.80 -20.73 53.71 613.23

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 123.88962 101.58446 1.220 0.2361

con 2.31725 0.21224 10.918 4.07e-10 ***

inv -0.05828 0.08507 -0.685 0.5008

nex 3.64880 1.55491 2.347 0.0288 *

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 224.9 on 21 degrees of freedom

Multiple R-squared: 0.998, Adjusted R-squared: 0.9977

F-statistic: 3410 on 3 and 21 DF, p-value: < 2.2e-16

从结果中,可以看出,尽管模型通过F检验,决定系数R方高达0.998,但在回归方程中,投资一项的p值=0.5008,远大于统计显著性所要求的0.05,无法通过t检验,需要再回归模型中剔除。也即是说,所建立的数据模型不包含投资这一项,这明显不符合广西经济运行情况。

2.6 随机森林回归

用随机森林算法做回归分析,在此设定树的数量为1000,命令如下:

> gx.rf

建好随机森林的回归模型gx.rf后,使用print命令可查看模型结果:

> print(gx.rf)

Call:

randomForest(formula = gdp ~ ., data = gxdata_without_x, importance = TRUE, ntree = 1000)

Type of random forest: regression

Number of trees: 1000

No. of variables tried at each split: 1

Mean of squared residuals: 724182.3

% Var explained: 96.51

这里一个重要的系数是96.51,称为拟合优度,它的作用类似于回归分析中的R方。

当我们需要查看已建好的随机森林的回归模型gx.rf中,各个自变量的重要程度时,使用以下命令,得到结果如下:

> importance(gx.rf)

%IncMSE IncNodePurity

con 20.75824 157065888

inv 21.46871 159356379

nex 21.87843 168809738

画出自变量重要性排序图,可以用varImpPlot命令,在本例中的命令为:

> varImpPlot(gx.rf)

得到图:

也就是说,在三个自变量中,它们的重要性程度排序为NEX>INV>CON。

随机森林回归预测r语言_使用随机森林(R语言)做回归相关推荐

  1. 检验杜宾 瓦森检验法R语言_应用统计学与R语言实现学习笔记(九)——线性回归...

    Chapter 9 Linear Regression 本篇是第九章,内容是回归分析(主要以线性回归为主).回归分析是数理统计.数理分析中最基础(也可以说是最重要)的一个分析,所以这一章内容相对来说也 ...

  2. 更改计算机语言win7,windows7专业版怎么更改语言_如何更改windows7专业版语言

    我们都知道,系统版本是有多种语言设置的,这样也方便了各种人群的使用,可是win7专业版却没有转换语言的相关权限,其实这只是没有安装自动化安装的软件,或者由于系统原因被禁止了,那么win7专业版应该怎么 ...

  3. 森林图怎么分析_资料|用Stata怎么做Meta分析?看完你就懂啦

    传统的Meta分析软件除了Stata,还有Revman.R.SAS.Meta-Analyst,对于初学者来说,小助理建议还是学Revman,因为菜单操作简单,上手比较快,但是如果你对统计软件或者计算机 ...

  4. 为什么要学python语言_我们为什么要学习Python语言?

    原标题:我们为什么要学习Python语言? 聊到我们为什么要学习Python语言?小编不禁又想起大佬潘石屹准备开启Python学习旅程时所发布的微博. 我们为什么要学习Python语言? 在农业社会时 ...

  5. mac word 设置语言_如何更改Mac的语言和区域设置

    mac word 设置语言 If you want to use your Mac in a different language, or you're live in a different reg ...

  6. 森林图怎么分析_大地量子 森林火灾 | 遥感+AI 成为森林火灾预防和监测的重要手段...

    2019 年 3 月 30 日,四川省凉山州木里县发生森林火灾,着火点在海拔 3800 米左右,地形复杂.坡陡谷深,27名森林消防指战员和 4 名地方干部群众在扑救中牺牲,火场总过火面积约 20 公顷 ...

  7. enum c++语言_第三章 C语言关键字

    了解C语言的关键字有哪些: 一.C语言的标准关键字 标准C语言共有32个关键字,9种控制语句,程序书写形式自由,区分大小写.把高级语言的基本结构和语句与低级语言的实用性结合起来. 32个关键字 二.每 ...

  8. plor 回归的r方_【回归分析】R、R平方与调整后的R平方

    原标题:[回归分析]R.R平方与调整后的R平方 回归分析,是对两个或两个以上变量之间的因果关系进行定量研究的一种统计分析方法.回归分析,也是我们进行需求预测常用的一种因果建模方法. 我们做回归分析时, ...

  9. 随机森林算法的随机性_理解随机森林算法的图形指南

    随机森林算法的随机性 本文是关于什么的 (What this article is about) In this article , we will see how the Random Forest ...

最新文章

  1. 网站文章要求图文并茂,图片要怎样做好优化工作呢?
  2. 第十五期:一个用户至少“值”100美元,美国最“贵”数据法案CCPA明年初实行!
  3. Microsoft SignalR Map Controller具有页面可见性API和事件模糊功能,可映射文档管理系统(DMS)中的用户交互
  4. ★LeetCode(39)——组合总和(JavaScript)
  5. 【转】Fiddler抓包教程
  6. 动态sql语句基本语法
  7. 2022年认证杯SPSSPRO杯数学建模D题(第一阶段)食品风味与风味物质求解全过程文档及程序
  8. 庄辰超:“去哪儿”的大生意
  9. r语言 面板数据回归_R语言-面板数据分析步骤及流程-
  10. C++STL算法equal(15)
  11. 52、尽量减少恶意软件的传播
  12. 古墓丽影10linux,《古墓丽影:崛起》Linux 版上架 Steam
  13. 名帖109 鲜于枢 小楷《老子道德经卷》
  14. mysql安装失败原因和解决方法
  15. 记一次笔记本连接酒店Wifi点击认证后总是报网络连接问题
  16. 采用云计算的组织如何构建更好的现代化战略
  17. springboot2+junit5+MockMvc(Mockito)实现对Controller的测试,配置都有,很详细了。
  18. python读取txt各个数字
  19. .Net Web开发技术栈 收藏
  20. (转) Xcode 7 Bitcode

热门文章

  1. 中国奥运在线流量的数据所做的总结性结案报告
  2. Java微信扫码支付
  3. 这篇测评告诉你:移动式迷你KTV凭什么攻陷了各大商场?
  4. JDBC的传统连接弊端
  5. 翁恺老师 狐狸和兔子练习
  6. 利用Python猜测小狐狸进洞
  7. 创建新数据源:缺少Microsoft Access Driver(×.mdb)的解决办法
  8. android杀死 后台服务,android怎么样做到相似于微信那样后台服务不会被杀死
  9. 股票配资炒股技巧是什么?
  10. 【Qualcomm高通音频】如何使用QXDM、QCAT音频数据抓取