原文链接:http://tecdat.cn/?p=2857

本文是通过对area,perimeter,campactness几个变量的贝叶斯建模,来查看他们对groovelength这个变量的影响.

并且对比rjagsR2jags和内置贝叶斯预测函数的结果。

读取数据

read dataseed=read.csv("seeds_dataset.csv")seed=seed[,1:7]查看数据的结构str(seed)'data.frame': 209 obs. of 7 variables: $ area : num 14.9 14.3 13.8 16.1 14.4 ... $ perimeter : num 14.6 14.1 13.9 15 14.2 ... $ campactness : num 0.881 0.905 0.895 0.903 0.895 ... $ length : num 5.55 5.29 5.32 5.66 5.39 ... $ width : num 3.33 3.34 3.38 3.56 3.31 ... $ asymmetry : num 1.02 2.7 2.26 1.35 2.46 ... $ groovelength: num 4.96 4.83 4.8 5.17 4.96 ...

建立回归模型

Do a linear modellm(formula = groovelength ~ area + perimeter + campactness, data = seed) Residuals: Min 1Q Median 3Q Max -0.66375 -0.10094 0.00175 0.11081 0.45132 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 19.46173 2.45031 7.943 1.29e-13 *** area 0.49724 0.08721 5.701 4.10e-08 *** perimeter -0.63162 0.18179 -3.474 0.000624 *** campactness -14.05218 1.34325 -10.461 < 2e-16 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 0.1608 on 205 degrees of freedom Multiple R-squared: 0.895, Adjusted R-squared: 0.8934 F-statistic: 582.4 on 3 and 205 DF, p-value: < 2.2e-16

从回归模型的结果来看,三的自变量对因变量都有显著的意义。其中,area有正向的意义。而其他两个变量是负向的影响。从r方的结果来看,达到了0.895,模型具有较好的解释度。

使用arm软件建立贝叶斯回归模型

Bayesian analysis With bayesglmbayesglm(formula = groovelength ~ area + perimeter + campactness, data = seed) Deviance Residuals: Min 1Q Median 3Q Max -0.66331 -0.09974 -0.00002 0.11110 0.44841 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 18.90538 2.41549 7.827 2.63e-13 *** area 0.47826 0.08604 5.559 8.40e-08 *** perimeter -0.59252 0.17937 -3.303 0.00113 ** campactness -13.74353 1.32463 -10.375 < 2e-16 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for gaussian family taken to be 0.02584982) Null deviance: 50.4491 on 208 degrees of freedom Residual deviance: 5.2992 on 205 degrees of freedom AIC: -164.91 Number of Fisher Scoring iterations: 6

从内置贝叶斯模型的结果来看,3个变量同样是非常显著,因此模型的结果和回归模型类似。然后我们使用BUGS/JAGS软件包来建立贝叶斯模型

使用 BUGS/JAGS软件包来建立贝叶斯模型library(R2jags)

library(coda)建立贝叶斯模型jags(model.file='bayes.bug',parameters=c("area","perimeter","campactness","int"),data =list('a' =seed$area, 'b' =seed$perimeter, 'c' =seed$campactness, 'N'=N, 'y'=groovelength),n.chains =4,inits=NULL)

查看模型结果:

module glm loadedCompiling model graph Resolving undeclared variables Allocating nodes Graph information: Observed stochastic nodes: 209 Unobserved stochastic nodes: 5 Total graph size: 1608Initializing modellibrary('R2jags')bb <-jags1$BUGSoutput extract the "BUGS output" componentmm <-as.mcmc.bugs(bb) convert it to an "mcmc" object that coda can handleplot(jags1) large-format graph

从上面的图中,我们可以看到哥哥自变量的中位数和置信区间。从置信区间来看,各个变量的取值和内置贝叶斯模型的结果类似。内置贝叶斯结果的值全部落入在了置信区间内。

然后绘制每次迭代中各个变量参数的轨迹图

trace + density plots, same as above prettier trace plot

可以看到每个变量的参数都在一定区间内波动。同时可以看到误差在一定的迭代次数之后趋于收敛。

然后绘制每个变量参数的密度图

prettier density plot

可以看到每个变量的参数,的密度分布近似于正态分布。同时我们可以看到分布的均值和内置贝叶斯模型,得到的结果类似。

然后绘制每个变量参数的置信区间

estimate + credible interval plot

从结果来看,可以看到各个变量参数的置信区间,campatness和int的置信区间较大,而其他两个变量的置信区间较小。

从上面的实验结果对比,我们可以看到,三个自变量对因变量均有重要的影响。area,perimeter,campactness几个变量他们对groovelength这个变量均有重要的影响.同时我们可以认为回归模型的结果和内置贝叶斯模型的结果相似。然后我们使用rjags&R2jags软件包来对数据进行贝叶斯型的建立,从结果来看,同样和之前得到的模型结果相差不大。并且我们通过模型的迭代,可以得到每个参数的置信区间。

【大数据部落】R语言如何使用rjags R2jags来建立贝叶斯模型相关推荐

  1. 大数据之R语言速成与实战

    什么是R语言? R语言由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman两人共同发明.其词法和语法分别源自Scheme和S语言. R定义:一个能够自有有效的用于统计计算和绘图的 ...

  2. 经典书单、站点 —— 大数据/数据分析/R语言

    1. 科普.入门 <大数据智能>,刘知远.崔安顺等著: 特色:系统,宏观和全面: 2. R 语言站点 http://langdawei.com/:R 语言数据采集与可视化:

  3. 《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一一2.5 为跨年度的个人参赛选手构造记录...

    本节书摘来自华章计算机<数据科学R语言实践:面向计算推理与问题求解的案例研究法>一书中的第2章,第2.5节,作者:[美] 德博拉·诺兰(Deborah Nolan) 邓肯·坦普·朗(Dun ...

  4. 数据科学r语言_您应该为数据科学学习哪些语言?

    数据科学r语言 Data science is an exciting field to work in, combining advanced statistical and quantitativ ...

  5. 大数据场景中语言虚拟机的应用和挑战

    点击上方蓝字关注我们 大数据场景中语言虚拟机的应用和挑战 吴明瑜1,2, 陈海波1,2, 臧斌宇1,2 1 领域操作系统教育部工程研究中心,上海 200240 2 上海交通大学软件学院并行与分布式系统 ...

  6. 数据分享|R语言关联规则挖掘apriori算法挖掘评估汽车性能数据

    全文链接:http://tecdat.cn/?p=32092 我们一般把一件事情发生,对另一件事情也会产生影响的关系叫做关联.而关联分析就是在大量数据中发现项集之间有趣的关联和相关联系(形如" ...

  7. 数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC...

    全文链接:http://tecdat.cn/?p=27384 在本文中,数据包含有关葡萄牙"Vinho Verde"葡萄酒的信息(点击文末"阅读原文"获取完整代 ...

  8. 数据可视化——R语言ggplot2包绘制精美的小提琴图(并箱线图或误差条图组合)

    数据可视化--R语言ggplot2包绘制精美的小提琴图(并箱线图或误差条图组合) 概述:R语言使用ggplot2工具包绘制小提琴图.为了使数据表达更加丰富,同时将小提琴图与箱线图和误差条图相结合.另外 ...

  9. 数据分享|R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标...

    原文链接:http://tecdat.cn/?p=27515  建立重庆市经济指标发展体系,以重庆市一小时经济圈作为样本,运用因子分析方法进行实证分析,在借鉴了相关评价理论和评价方法的基础上,本文提取 ...

  10. 数据分享|R语言因子分析、相关性分析大学生兼职现状调查问卷数据可视化报告...

    全文链接:http://tecdat.cn/?p=31765 随着大学的普及教育,大学生就业形势变得更加困难,很多学生都意识到这个问题(点击文末"阅读原文"获取完整代码数据). 相 ...

最新文章

  1. java nio 强制关闭_netty 处理远程主机强制关闭一个连接
  2. 如何自学python到做项目-django教程如何自学
  3. Linux基础——gcc编译、静态库与动态库(共享库)
  4. linux 下查看程序依赖的库
  5. php判断第一个插入css,织梦dedecms的arclist循环中判断第一个li,则添加固定的css否则不加...
  6. js脚本捕获页面 GET 方式请求的参数?其实直接使用 window.location.search 获得
  7. nusoap 与 CI框架不用WSDL
  8. mysql 数据备份 crontab
  9. 基于Spring Boot2 + Spring Security OAuth2 实现单点登陆(二)
  10. 神经网络模型如何使用的,神经网络模型是干嘛的
  11. 【Nginx】记录 nginx 配置文件中 location下根据 ua (user-agent) 判断移动端和电脑端不同浏览器来源
  12. 给新手程序员的一点学习建议
  13. 信息系统项目管理师知识总结
  14. 使用OpenCV调用摄像头检测人脸并截图-Python
  15. 进制转换对学计算机的意义,浅析进制转换在计算机应用中的技巧.docx
  16. 微信小程序动态添加Class
  17. 蓝桥杯:纸张尺寸(C++)
  18. # 智慧社区管理系统-核心业务管理-01车位收费
  19. 荣耀手表2给女生带来无数次无法拒绝的心动
  20. Ubuntu 20.04视频播放

热门文章

  1. try catch无法捕获 StackOverflowException
  2. XCode帮助文档离线下载解决办法
  3. 常见类 --Object
  4. SpringMVC (三)处理器映射器的配置和AbstractController的使用
  5. hyper-v redhat使用新网卡
  6. hdu 6205: card card card【输入挂】
  7. Linux命令之passwd
  8. 剑指Offer:跳台阶
  9. ES6读书笔记(一)
  10. seafile看不见repo报500错误的解决方法