首页 > 其他分享 >R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据

时间:2023-11-29 10:31:42浏览次数:40  
标签:由下式 采样器 分布 参数 Gibbs 等待时间 指数分布

最近我们被客户要求撰写关于吉布斯采样器的研究报告,包括一些图形和统计输出。 指数分布是泊松过程中事件之间时间的概率分布,因此它用于预测到下一个事件的等待时间,例如,您需要在公共汽车站等待的时间,直到下一班车到了。

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

 

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_采样器

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

吉布斯Gibbs 采样器

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

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

  1. 让  是 Rd 中的随机向量,在时间 t=0 初始化 X(0)。
  2. 对于每次迭代 t=1,2,3,...重复:
  • 设置 x1=X1(t-1)。
  • 对于每个 j=1,...,d:
  • 生成 X∗j(t) 从 , 其中  是给定 X(-j) 的 Xj的单变量条件密度。
  • 更新 . 
  • 当每个候选点都被接受时,设置 . 
  • 增加 t。

贝叶斯公式

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

 

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_数据_02

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

 

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_数据_03

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

 

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_采样器_04

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

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_采样器_05

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

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_数据_06

其中,

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_数据_07

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

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

 

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_指数分布_08

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

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_采样器_09

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

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_指数分布_10

计算方法

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

数据

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

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_指数分布_11

 

 

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

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

Gibbs采样器的实现

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

 

 

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

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

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_采样器_12

 

 

for (i in 2:lcan){
        kt <- k[i-1]
        # 生成lambda
        lambda[i] <- rgamma
        # 生成α
              # 产生k   
        for (j in 1:n) {
                L[j] <- ((lambda[i] / alpha[i





# 删除链条上的前9000个值
bunIn <- 9000

结果

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

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_采样器_13

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_指数分布_14

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_指数分布_15

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

 

 

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

R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_采样器_16

结论

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


R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车站等待时间|附代码数据_指数分布_17



标签:由下式,采样器,分布,参数,Gibbs,等待时间,指数分布
From: https://blog.51cto.com/u_14293657/8611367

相关文章

  • 带有最小间隔时间的队列读取实现 —— 最小等待时间的队列 —— Python编程
     (注:照片源自免费网站,地址:https://www.freepik.com/photos/angry-panda/13)  ==================================================  事情起源是最近在看一个TensorFlow的代码,是TensorFlow实现了一个最小等待时间的队列,解释一下就是一个进程阻塞在一个队列上等待数据的读取,但是......
  • Python用PyMC贝叶斯GLM广义线性模型、NUTS采样器拟合、后验分布可视化
    尽管贝叶斯方法相对于频率主义方法的理论优势已经在其他地方进行了详细讨论,但其更广泛采用的主要障碍是“可用性”。而使用贝叶斯方法,客户可以按照自己认为合适的方式定义模型。线性回归在此示例中,我们将帮助客户从最简单的GLM–线性回归开始。一般来说,频率论者对线性回归的看......
  • selenium4 增加超时和等待时间
    增加全局的超时和等待时间:importtimefromselenium.webdriverimportKeys,ActionChainsfromselenium.webdriver.common.byimportByfromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServicefromwebdriver_manager.chromeimportCh......
  • R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析泊松过程车
    原文链接:http://tecdat.cn/?p=26578 原文出处:拓端数据部落公众号最近我们被客户要求撰写关于吉布斯采样器的研究报告,包括一些图形和统计输出。指数分布是泊松过程中事件之间时间的概率分布,因此它用于预测到下一个事件的等待时间,例如,您需要在公共汽车站等待的时间,直到下一班车......
  • 安防监控国标GB28181平台LiteCVR修改录像计划的等待时间较长,该如何解决?
    我国在智能视频安防监控领域相较国外起步较晚,但随着近些年互联网等技术的发展,我国在该领域迅猛发展,取得了不错的成果。有用户反馈,GB28181视频监控平台LiteCVR修改录像计划的等待时间较长。今天我们来针对这个案例做一个分析和讲解。根据反馈我们立即进行排查,发现其实修改单个通......
  • windows 桌面GUI自动化- 17.pywinauto 设置全局等待时间Timings
    前言pywinauto查找窗口和控件时会有超时时间与轮询机制,可以通过timings模块设置全局等待时间。timings模块timings模块有三个模式可以设置timings.Timings.fast()快速模式timings.Timings.defaults()默认模式timings.Timings.slow()慢速模式以下是可以调整的......
  • 路径规划算法:基于指数分布优化的机器人路径规划算法- 附matlab代码
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • Python用PyMC贝叶斯GLM广义线性模型、NUTS采样器拟合、后验分布可视化
    全文链接:https://tecdat.cn/?p=33436原文出处:拓端数据部落公众号尽管贝叶斯方法相对于频率主义方法的理论优势已经在其他地方进行了详细讨论,但其更广泛采用的主要障碍是“可用性”。而使用贝叶斯方法,客户可以按照自己认为合适的方式定义模型。线性回归在此示例中,我们将帮助客......
  • Native Instruments Kontakt 7 - 专业音频采样器mac/win版
    NativeInstrumentsKontakt7是一款专业音频采样器,被广泛用于音乐制作、音频设计和声音效果制作等领域。它提供了丰富的采样库和强大的编辑功能,使用户可以创建出高质量的音频效果和音乐作品。下面将详细介绍Kontakt7的特点和功能。点击获取Kontakt7 大量采样库:Kontak......
  • 拓端tecdat|R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析
    原文链接:http://tecdat.cn/?p=26578 原文出处:拓端数据部落公众号最近我们被客户要求撰写关于吉布斯采样器的研究报告,包括一些图形和统计输出。指数分布是泊松过程中事件之间时间的概率分布,因此它用于预测到下一个事件的等待时间,例如,您需要在公共汽车站等待的时间,直到下一班车......