美文网首页大数据,机器学习,人工智能大数据 爬虫Python AI Sql玩转大数据
【大数据部落】R语言使用rjagsR2jags来建立贝叶斯模型

【大数据部落】R语言使用rjagsR2jags来建立贝叶斯模型

作者: 拓端tecdat | 来源:发表于2020-04-19 19:00 被阅读0次

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

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

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

    读取数据

    seed=read.csv("seeds_dataset.csv") seed=seed[,1:7]

    need-to-insert-img

    查看数据的结构

    str(seed)'data.frame':209 obs. of7 variables:$ area: num14.9 14.3 13.8 16.1 14.4 ...$ perimeter: num14.6 14.1 13.9 15 14.2 ...$ campactness : num0.881 0.905 0.895 0.903 0.895 ...$ length: num5.55 5.29 5.32 5.66 5.39 ...$ width: num3.33 3.34 3.38 3.56 3.31 ...$ asymmetry: num1.02 2.7 2.26 1.35 2.46 ...$ groovelength: num4.96 4.83 4.8 5.17 4.96 ...

    need-to-insert-img

    建立回归模型

    |t|)\n(Intercept)19.461732.450317.943 1.29e-13 ***\narea0.497240.087215.701 4.10e-08 ***\nperimeter-0.631620.18179-3.474 0.000624 ***\ncampactness -14.052181.34325 -10.461< 2e-16 ***\n---\nSignif. codes:0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n\nResidual standard error: 0.1608 on 205 degrees of freedom\nMultiple R-squared:0.895,Adjusted R-squared:0.8934\nF-statistic: 582.4 on 3 and 205 DF,p-value: < 2.2e-16","classes":{"has":1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet"> lm(formula = groovelength ~ area + perimeter + campactness, data = seed)Residuals:Min1QMedian3QMax-0.66375 -0.100940.001750.110810.45132Coefficients:Estimate Std. Error t value Pr(>|t|)(Intercept)19.461732.450317.943 1.29e-13 ***area0.497240.087215.701 4.10e-08 ***perimeter-0.631620.18179-3.474 0.000624 ***campactness -14.052181.34325 -10.461< 2e-16 ***---Signif. codes:0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1Residual standard error: 0.1608 on 205 degrees of freedomMultiple R-squared:0.895,Adjusted R-squared:0.8934F-statistic: 582.4 on 3 and 205 DF,p-value: < 2.2e-16

    need-to-insert-img

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

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

    |t|)\n(Intercept)18.905382.415497.827 2.63e-13 ***\narea0.478260.086045.559 8.40e-08 ***\nperimeter-0.592520.17937-3.3030.00113 **\ncampactness -13.743531.32463 -10.375< 2e-16 ***\n---\nSignif. codes:0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n\n(Dispersion parameter for gaussian family taken to be 0.02584982)\n\nNull deviance: 50.4491on 208degrees of freedom\nResidual deviance:5.2992on 205degrees of freedom\nAIC: -164.91\n\nNumber of Fisher Scoring iterations: 6","classes":{"has":1}}" data-cke-widget-upcasted="1" data-cke-widget-keep-attr="0" data-widget="codeSnippet">Bayesian analysisWith bayesglmbayesglm(formula = groovelength ~ area + perimeter + campactness,data = seed)Deviance Residuals:Min1QMedian3QMax-0.66331-0.09974-0.000020.111100.44841Coefficients:Estimate Std. Error t value Pr(>|t|)(Intercept)18.905382.415497.827 2.63e-13 ***area0.478260.086045.559 8.40e-08 ***perimeter-0.592520.17937-3.3030.00113 **campactness -13.743531.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.4491on 208degrees of freedomResidual deviance:5.2992on 205degrees of freedomAIC: -164.91Number of Fisher Scoring iterations: 6

    need-to-insert-img

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

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

    建立贝叶斯模型

    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)

    need-to-insert-img

    查看模型结果:

    分享:

    相关文章

      网友评论

        本文标题:【大数据部落】R语言使用rjagsR2jags来建立贝叶斯模型

        本文链接:https://www.haomeiwen.com/subject/wrebbhtx.html