码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • R语言贝叶斯METROPOLIS-HASTINGS GIBBS 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间...


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

    指数分布是泊松过程中事件之间时间的概率分布,因此它用于预测到下一个事件的等待时间,例如,您需要在公共汽车站等待的时间,直到下一班车到了(点击文末“阅读原文”获取完整代码数据)。

    相关视频

    在本文中,我们将使用指数分布,假设它的参数 λ ,即事件之间的平均时间,在某个时间点 k 发生了变化,即:

    c2f53f9011a557cc806c80b8c1dd1c3f.png

    我们的主要目标是使用 Gibbs 采样器在给定来自该分布的 n 个观测样本的情况下估计参数 λ、α 和 k。

    吉布斯Gibbs 采样器

    Gibbs 采样器是 Metropolis-Hastings 采样器的一个特例,通常在目标是多元分布时使用。使用这种方法,链是通过从目标分布的边缘分布中采样生成的,因此每个候选点都被接受。

    Gibbs 采样器生成马尔可夫链如下:

    • 让 cf9bd4e0689cb18da4aaf4201791e5b4.png 是 Rd 中的随机向量,在时间 t=0 初始化 X(0)。

    • 对于每次迭代 t=1,2,3,...重复:

    • 设置 x1=X1(t-1)。

    • 对于每个 j=1,...,d:

    • 生成 X∗j(t) 从 4ebe11f1fe9bd98235ab1f085b228c92.png, 其中 15f57abf3c06a767684671d9aa407cea.png 是给定 X(-j) 的 Xj的单变量条件密度。

    • 更新 199970dc71f35e23ffcaa4d835c71b0f.png.

    • 当每个候选点都被接受时,设置 615eb20000caaae0111256a27f89521b.png.

    • 增加 t。

    贝叶斯公式

    变点问题的一个简单公式假设 f和 g 已知密度:

    ad3bd015e618b043658f949746b897fd.png

    其中 k 未知且 k=1,2,...,n。让 Yi为公交车到达公交车站之间经过的时间(以分钟为单位)。假设变化点发生在第 k分钟,即:

    46e3fe3cc380022354e921b80ec05988.png

    当 Y=(Y1,Y2,...,Yn) 时,似然 L(Y|k)由下式给出:

    ca2a36ecf1a5e62d896e4ba1d90004d6.png

    假设具有独立先验的贝叶斯模型由下式给出:

    ca04946b6fc6f44bf86eb84ecd8f1401.png

    数据和参数的联合分布为:

    8529a37f90ceb11475dec57bd44caca2.png

    其中,

    46dabe08032bd09229e8f17147b29b4f.png

    正如我之前提到的,Gibbs 采样器的实现需要从目标分布的边缘分布中采样,因此我们需要找到 λ、α 和 k 的完整条件分布。你怎么能这样做?简单来说,您必须从上面介绍的连接分布中选择仅依赖于感兴趣参数的项并忽略其余项。

    相关视频

    λ 的完整条件分布由下式给出:

    6860397010330a83ddb3c067b448d208.png

    α 的完整条件分布由下式给出:

    de6701ab3635b5fbf86e73f3ba0dd3fa.png

    k 的完整条件分布由下式给出:

    3ebb83618903fbaefddc7fabda4a9dd5.png

    计算方法

    在这里,您将学习如何使用使用 R 的 Gibbs 采样器来估计参数 λ、α 和 k。

    数据

    首先,我们从具有变化点的下一个指数分布生成数据:

    cb37a88be960c2ebf4f18ea39c84ea23.png

    1. set.seed(98712)
    2. y <- c(rexp(25, rate = 2), rexp(35, rate = 10))

    考虑到公交车站的情况,一开始公交车平均每2分钟一班,但从时间i=26开始,公交车开始平均每10分钟一班到公交车站。


    点击标题查阅往期内容

    9259d3566544a4d83308eaa5c0bf1c77.jpeg

    R语言Gibbs抽样的贝叶斯简单线性回归仿真分析

    outside_default.png

    左右滑动查看更多

    outside_default.png

    01

    d6d28b7b1e6b15f9fec0ab9c945ce4c2.png

    02

    f35dfd6990680fc178380c5a28f8dcd4.png

    03

    a707d91b150c54533bd37d5aa9ec136e.png

    04

    d272eb3c9f55d44a7e09e945e99585a0.png

    Gibbs采样器的实现

    首先,我们需要初始化 k、λ 和 α。

    1. n <- length(y) # 样本的观察值的数量
    2. lci <- 10000 # 链的大小
    3. aba <- alpha <- k <- numeric(lcan)
    4. k\[1\] <- sample(1:n,

    现在,对于算法的每次迭代,我们需要生成 λ(t)、α(t) 和 k(t),如下所示(记住如果 k+1>n 没有变化点):

    a635aa7ef2030a587def6e44e8a4bb4d.png

    1. for (i in 2:lcan){
    2.         kt <- k\[i-1\]
    3.         # 生成lambda
    4.         lambda\[i\] <- rgamma
    5.         # 生成α
    6.               # 产生k   
    7.         for (j in 1:n) {
    8.                 L\[j\] <- ((lambda\[i\] / alpha\[i
    9. # 删除链条上的前9000个值
    10. bunIn <- 9000

    结果

    在本节中,我们将介绍 Gibbs 采样器生成的链及其参数 λ、α 和 k 的分布。参数的真实值用红线表示。

    d86b88a1d80dc4e0ad12f10d60fae669.png

    e04b7438ad897c96f6f60c2f98e0d501.png

    ae7f8a1953aae9bfc72afa92da48f8f2.png

    下表显示了参数的实际值和使用 Gibbs 采样器获得的估计值的平均值:

    1. res <- c(mean(k\[-(1:bun)\]), mean(lmba\[-(1:burn)\]), mean(apa\[-(1:buI)\]))
    2. resfil

    7632d0106f3d6041d79fc086f38873a2.png

    结论

    从结果中,我们可以得出结论,使用 R 中的 Gibbs 采样器获得的具有变点的指数分布对参数 k、λ 和 α 的估计值的平均值接近于参数的实际值,但是我们期望更好估计。这可能是由于选择了链的初始值或选择了 λ 和 α的先验分布。


    19b4ecb31a9a10cf47209374210c65dd.png

    点击文末“阅读原文”

    获取全文完整资料。

    本文选自《R语言贝叶斯METROPOLIS-HASTINGS GIBBS 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间》。

    cf3762e107f3cfaf38ec54073655f576.jpeg

    9b3fcd5489c39382291b2d53dc7945f1.png

    点击标题查阅往期内容

    R语言马尔可夫MCMC中的METROPOLIS HASTINGS,MH算法抽样(采样)法可视化实例

    python贝叶斯随机过程:马尔可夫链Markov-Chain,MC和Metropolis-Hastings,MH采样算法可视化

    Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现

    Metropolis Hastings采样和贝叶斯泊松回归Poisson模型

    Matlab用BUGS马尔可夫区制转换Markov switching随机波动率模型、序列蒙特卡罗SMC、M H采样分析时间序列

    R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据

    R语言BUGS序列蒙特卡罗SMC、马尔可夫转换随机波动率SV模型、粒子滤波、Metropolis Hasting采样时间序列分析

    R语言Metropolis Hastings采样和贝叶斯泊松回归Poisson模型

    R语言贝叶斯MCMC:用rstan建立线性回归模型分析汽车数据和可视化诊断

    R语言贝叶斯MCMC:GLM逻辑回归、Rstan线性回归、Metropolis Hastings与Gibbs采样算法实例

    R语言贝叶斯Poisson泊松-正态分布模型分析职业足球比赛进球数

    R语言用Rcpp加速Metropolis-Hastings抽样估计贝叶斯逻辑回归模型的参数

    R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病

    R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据

    R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

    Python贝叶斯回归分析住房负担能力数据集

    R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析

    Python用PyMC3实现贝叶斯线性回归模型

    R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

    R语言Gibbs抽样的贝叶斯简单线性回归仿真分析

    R语言和STAN,JAGS:用RSTAN,RJAG建立贝叶斯多元线性回归预测选举数据

    R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

    R语言贝叶斯线性回归和多元线性回归构建工资预测模型

    R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例

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

    R语言中RStan贝叶斯层次模型分析示例

    R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化

    R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

    WinBUGS对多元随机波动率模型:贝叶斯估计与模型比较

    R语言实现MCMC中的Metropolis–Hastings算法与吉布斯采样

    R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例

    R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化

    视频:R语言中的Stan概率编程MCMC采样的贝叶斯模型

    R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计

    78fdf3cd8ba2b517df0847d7ef4cc00d.png

    0b4c05f53028fa23a0ae3abf77d3f8bc.jpeg

    144c8c479e2e0a6ae67a9e216bc5f26d.png

  • 相关阅读:
    1 分布式锁
    (02)Cartographer源码无死角解析-(13) 开始轨迹→Node::AddTrajectory()
    【Java基础系列】循环与迭代
    Android Media Framework(三)OpenMAX API阅读与分析
    git常用命令
    关于Django使用Jquery异步刷新
    Sendable 和 @Sendable 闭包 —— 代码实例详解
    MYSQL 数据库对比 工具类
    【RT-Thread】nxp rt10xx 设备驱动框架之--hwtimer搭建和使用
    今年 A-Level 大考压分?成绩不理想怎么办?
  • 原文地址:https://blog.csdn.net/tecdat/article/details/132728069
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号