R语言stan进行基于贝叶斯推断的回归模型

news2024/12/24 20:35:59

可以从许多统计软件包中运行Stan。到目前为止,我一直在从R运行Stan。

我们围绕stan进行一些咨询,帮助客户解决独特的业务问题。

简单线性回归


第一步是为Stan模型编写文件。这包含一个文件linreg.stan:

 

 视频:线性回归中的贝叶斯推断与R语言预测工人工资数据案例

贝叶斯推断线性回归与R语言预测工人工资数据

,时长09:58

R的Stan


data {
  int N;
  vector[N] x;
  vector[N] y;
}

model {
  y ~ normal(alpha + beta * x, sigma);
}

该文件的第一部分称为数据,它声明了将作为输入传递给Stan的标量,向量和矩阵。

接下来,我们可以通过运行以下R代码来模拟数据集,并使用Stan和我们的文件linreg.stan来拟合模型:

stan(file = 'linreg. ', data = mydata, iter = 1000,   = 4)

第一次安装Stan模型时,模型编译成C ++时会有几秒钟的延迟。然而,一旦编译了模型,就可以将其应用于新的数据集而无需重复编译过程(执行模拟研究具有很大的优势)。

在上面的代码中,我们要求Stan运行4个独立的链,每个链有1000次迭代。运行后,我们可以通过以下方式汇总输出:

Inference for Stan model: linreg.
4 chains, each with iter=1000; warmup=500; thin=1; 
post-warmup draws per chain=500, total post-warmup draws=2000.

        mean se_mean   sd   2.5%    25%    50%    75%  97.5% n_eff Rhat
alpha  -0.10    0.00 0.10  -0.29  -0.16  -0.10  -0.04   0.09  1346    1
beta    0.95    0.00 0.11   0.75   0.88   0.95   1.02   1.17  1467    1
sigma   0.98    0.00 0.07   0.85   0.93   0.98   1.03   1.12  1265    1
lp__  -47.54    0.06 1.24 -50.77 -48.02 -47.24 -46.68 -46.17   503    1

Samples were drawn using NUTS(diag_e) at Mon Jun 08 18:35:58 2015.
For each parameter, n_eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor on split chains (at 
convergence, Rhat=1).

对于回归斜率β,我们的后验均值为0.95(接近用于模拟数据的真实值1)。为了形成95%的后验置信区间,我们简单地采用取样后验的2.5%和97.5%的百分位数,这里是0.75到1.17。

您可以从拟合的模型中获取各种其他数量。一种是绘制其中一个模型参数的后验分布。要获得回归斜率,我们可以执行以下操作:


hist(result$beta)

β后验分布直方图

现在让我们使用标准普通最小二乘拟合线性模型:

Residuals:
    Min      1Q  Median      3Q     Max 
-1.9073 -0.6835 -0.0875  0.5806  3.2904 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.10280    0.09755  -1.054    0.295    
x            0.94753    0.10688   8.865  3.5e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9707 on 98 degrees of freedom
Multiple R-squared:  0.4451,	Adjusted R-squared:  0.4394 
F-statistic:  78.6 on 1 and 98 DF,  p-value: 3.497e-14

这给出了我们对斜率0.95的估计,与Stan的后验平均值相差2位小数,标准误差为0.11,这与Stan的后验SD相同。

stan和贝叶斯推断


有兴趣探索Stan并使用它来执行贝叶斯推断,这是出于测量误差和数据缺失的问题。正如WinBUGS和作者所描述的,贝叶斯方法在解决不同的不确定性来源问题时非常自然,这些不确定性来源超出参数不确定性,例如缺失数据或用误差测量的协变量。实际上,对于流行的缺失数据多重插补方法是在贝叶斯范式内发展的。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/51210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新闻舆情管理平台开发,监控舆情发展趋势

打造企业良好声誉可能需要几年、十几年甚至更久,而毁掉它只需要短短几分钟。尤其是互联网时代下,人们接收信息的速度越来越快,在新闻发出去的几分钟内就能迅速占据热搜榜。而且网络上每天都会产生上亿条信息,单纯的依靠人工进行监…

openEuler 通过 手工方式 安装 ceph 步骤 Cephadm无法应用到openEuler 提醒不支持

ceph集群在openEuler手工安装过程Cephadm安装步骤前置要求1.openEuler版本2. Python 33. Systemd4. Time synchronization (such as chrony or NTP)5. LVM2 for provisioning storage devices安装1. 创建用户ceph2. 安装 ceph3. 生成配置项3.1 机器及组件规划列表3.2 ceph.conf…

Python第三方库之nibabel

1.nibabel简介 NiBabel提供对一些常见医学和神经影像文件格式的读/写访问,包括ANALYZE(plain,SPM99,SPM2及更高版本),GIFTI,NIfTI1,NIfTI2,CIFTI-2,MINC1&am…

[附源码]SSM计算机毕业设计疫情防控期间人员档案追寻系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

RocketMQ系列——搭建Namesrv源码调试环境整理

目录 RocketMQ系列-搭建Namesrv源码调试环境 Namesrv源码调试环境搭建 导入项目到IDEA 创建所需目录 环境配置 启动Namesrv 总结 RocketMQ系列-搭建Namesrv源码调试环境 在学习任何一个技术框架的时候,我们通常都是先了解是什么,有什么作用、解决…

Java流程控制语句

流程控制语句 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。 流程控制语句分类 顺序结构、分支结构&#…

【毕业设计】深度学习社交安全距离检测系统 - python opencv

文章目录0 前言1 课题背景2 实现效果3 相关技术3.1 YOLOV43.2 基于 DeepSort 算法的行人跟踪4 最后0 前言 🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问都可以问学长哦! 这两年开始&#xff0c…

鲜花商城|基于Springboot实现鲜花商城系统

作者主页:编程千纸鹤 作者简介:Java、前端、Pythone开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享 收藏点赞不迷路 关注作者有好处 文末获得源码 …

xgboost 为什么拟合残差能获得更好的效果(思考)

以时序预测为例: 现在要 预测2022年之后的值,可以预测下降幅度(和预测残差的步骤一样)。 假设有一个隐藏的规律:对于21年的高峰,22年的下降幅度会更大(如time3是,下降幅度会比其他的…

Spring依赖注入源码解析(下)

文章目录前言本章目标resolveDependency—解决依赖查找1、doResolveDependency2、Autowreid寻找依赖流程图依赖注入完整流程图前言 在上一篇文章Spring依赖注入源码解析(上)中,主要介绍了寻找注入点、以及注入源码分析 本章目标 这一篇主要…

市面上最适合跑步用的耳机有哪些、分享五款最优秀的跑步耳机

随着人们日益对健康的重视,”全民健身“正在全国,乃至全世界蔓延开来,其中跑步锻炼凭借着门槛低,益处多成为了大部分人的健身的首选。而随着跑步大军的壮大,国内蓝牙耳机市场也是一片火热。其中蓝牙无线运动耳机凭借着…

【python小项目】用python写一个小工具——番茄钟

用python写一个小工具——番茄钟 最近听到朋友说在用番茄钟,有点兴趣也想下载一个来用用,后面仔细一想这玩意做起来也不难,索性自己顺手写一个算了,在这里也分享给大家了 一、功能简述 番茄钟即番茄工作法,番茄工作法…

产品经理必备的能力有哪些?

从一名普通的产品经理到一名优秀的产品经理要经历什么?哪些又是产品经理必备的能力?产品经理对能力的需求也不尽相同,在不同的团队合作模式下,还必须懂得各种能力。 一、业务分析能力 数据分析能力该是什么样的呢 1、有数据意识…

indexDB 本地数据库

indexDB 本地数据库 IndexedDB是一种使用浏览器存储大量数据的方法,它创造的数据可以被查询,并且可以离线使用。 优点:空间大小,大于250M;支持二进制:IndexedDB不但可以存储对象,字符串等&#…

利用MS11_003 IE漏洞攻击win7主机

利用MS11_003 IE漏洞攻击win7主机 微软2011年2月9日发布12个安全补丁,其中3个最高级别为严重等级,9个为重要等级,共计修复了影响 Windows、Office、IE 和 IIS 的22个漏洞。 MS11-003、MS11-006 和 MS11-007 为严重等级,需要优先部署。其中,MS11-003 的最高利用指数为1它修…

基于web的课程管理系统设计与实现(java+SqlServer)

目 录 摘 要 I Abstract II 1 绪论 1 1.1 课题背景 1 1.2 本课题研究的意义 2 1.3 主要研究内容 3 2 开发环境与相关技术 4 2.1 JSP技术 4 2.1.1 JAVA简介 4 2.1.2 JSP简介 4 2.1.3 SSH2框架介绍 5 2.2 Myeclipse介绍 6 2.3 SQL2008 数据库 7 2.4 Browser/Server(B…

GD32实现串口空闲(IDLE)中断 + DMA机制接收数据

前言 串口功能在单片机开发中,是比较常用的外设,熟练使用串口功能也是驱动开发必备的技能之一。 DMA是一种CPU辅助手段,可以在CPU不参与的情况下,是做一些辅助CPU的事情,如通常的数据搬运。 在没有DMA之前,…

hadoop3.x学习(一)--安装与环境配置

一、hadoop的组成 hadoop1.x:Commons、HDFS(数据存储)、MapReduce(资源调度计算)hadoop2.x:Commons、HDFS(数据存储)、MapReduce(计算)、Yarn(资源调度) 1.1 HDFS 分布式…

【电商项目实战】个人资料(详细篇)

🍁博客主页:👉不会压弯的小飞侠 ✨欢迎关注:👉点赞👍收藏⭐留言✒ ✨系列专栏:👉SpringBoot电商项目实战 ✨学习社区: 👉不会压弯的小飞侠 ✨知足上进&#x…

Linear Model 线性模型

文章目录1、Linear Model 线性模型1.1 问题引入1.2 选择模型1.3 损失 Loss1.4 均方误差 MSE1.5 代码1.6 更换模型1、Linear Model 线性模型 B站视频教程传送门:PyTorch深度学习实践 - 线性模型 1.1 问题引入 假设学生在期末考试中得到y分,如果他们花了…