Py之pymc:pymc的简介、安装、使用方法之详细攻略

news2024/11/26 0:52:06

Py之pymc:pymc的简介、安装、使用方法之详细攻略

目录

pymc的简介

pymc的安装

pymc的使用方法

1、时序性任务

(1)、使用 Euler-Maruyama 方案推断 SDE 的参数


pymc的简介

       PyMC(以前称为PyMC3)是一个专注于高级马尔科夫链蒙特卡洛(MCMC)和变分推断(VI)算法的Python包,用于贝叶斯统计建模。其灵活性和可扩展性使其适用于各种问题。PyMC是一个功能强大的贝叶斯建模工具,提供了丰富的特性和算法,适用于各种统计建模和推断任务。包括(广义)线性模型和层次线性模型案例研究、因果推断、诊断和模型评估、高斯过程、ODE模型推断、马尔科夫链蒙特卡洛方法、混合模型、生存分析、时间序列、变分推断。其特点如下:
>> 直观的模型规范语法,例如,x ~ N(0,1) 可以翻译为 x = Normal('x',0,1)
>> 强大的采样算法,例如 No U-Turn Sampler,可以处理具有成千上万个参数的复杂模型,>> 而无需特殊的拟合算法知识。
>> 变分推断:提供快速近似后验估计的ADVI以及用于大型数据集的小批量ADVI。
>> 依赖于PyTensor提供:
>> 计算优化和动态的C或JAX编译
>> NumPy广播和高级索引
>> 线性代数运算符
>> 简单的可扩展性
>> 透明支持缺失值填充

GitHub链接:GitHub - pymc-devs/pymc: Bayesian Modeling in Python

文档:Introductory Overview of PyMC — PyMC dev documentation

pymc的安装

pip install pymc

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pymc

 

 

pymc的使用方法

更多案例:PyMC Example Gallery — PyMC example gallery

1、时序性任务

(1)、使用 Euler-Maruyama 方案推断 SDE 的参数





%pylab inline
import arviz as az
import pymc as pm
import scipy
import theano.tensor as tt

from pymc.distributions.timeseries import EulerMaruyama

%config InlineBackend.figure_format = 'retina'
az.style.use("arviz-darkgrid")


# parameters
λ = -0.78
σ2 = 5e-3
N = 200
dt = 1e-1

# time series
x = 0.1
x_t = []

# simulate
for i in range(N):
    x += dt * λ * x + sqrt(dt) * σ2 * randn()
    x_t.append(x)

x_t = array(x_t)

# z_t noisy observation
z_t = x_t + randn(x_t.size) * 5e-3

figure(figsize=(10, 3))
subplot(121)
plot(x_t[:30], "k", label="$x(t)$", alpha=0.5), plot(z_t[:30], "r", label="$z(t)$", alpha=0.5)
title("Transient"), legend()
subplot(122)
plot(x_t[30:], "k", label="$x(t)$", alpha=0.5), plot(z_t[30:], "r", label="$z(t)$", alpha=0.5)
title("All time")
tight_layout()



def lin_sde(x, lam):
    return lam * x, σ2
with pm.Model() as model:

    # uniform prior, but we know it must be negative
    lam = pm.Flat("lam")

    # "hidden states" following a linear SDE distribution
    # parametrized by time step (det. variable) and lam (random variable)
    xh = EulerMaruyama("xh", dt, lin_sde, (lam,), shape=N, testval=x_t)

    # predicted observation
    zh = pm.Normal("zh", mu=xh, sigma=5e-3, observed=z_t)

with model:
    trace = pm.sample(2000, tune=1000)

figure(figsize=(10, 3))
subplot(121)
plot(percentile(trace[xh], [2.5, 97.5], axis=0).T, "k", label=r"$\hat{x}_{95\%}(t)$")
plot(x_t, "r", label="$x(t)$")
legend()

subplot(122)
hist(trace[lam], 30, label=r"$\hat{\lambda}$", alpha=0.5)
axvline(λ, color="r", label=r"$\lambda$", alpha=0.5)
legend();

# generate trace from posterior
ppc_trace = pm.sample_posterior_predictive(trace, model=model)

# plot with data
figure(figsize=(10, 3))
plot(percentile(ppc_trace["zh"], [2.5, 97.5], axis=0).T, "k", label=r"$z_{95\% PP}(t)$")
plot(z_t, "r", label="$z(t)$")
legend()

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

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

相关文章

⑤电子产品拆解分析-人体感应灯

⑤电子产品拆解分析-人体感应灯 一、功能介绍二、电路分析以及器件作用三、原理图复现与学习 一、功能介绍 ①感应人体活动亮灯20S;②Micro-USB进行锂电池充电; 二、电路分析以及器件作用 三、原理图复现与学习 R1为下拉电阻,防止上电因芯…

功率放大器的选型原则和方法是什么

功率放大器是一种能够将低电平信号放大到足够高的电平以驱动负载的电子器件。在各种电子设备中,功率放大器被广泛应用,如音响系统、电视广播、汽车音响、射频通信等。因此,正确选型功率放大器非常重要,可以提高设备的性能和可靠性…

Web3的应用及发展

Web3兼具去中心化和交互性,打造了一个全新的互联网模式。在其中,用户可以绕过中介直接交互。dApp用户无需许可即可访问金融工具,以点对点的方式交易加密资产,获得参数型保险理赔,通过NFT交易可验证所有权的数字艺术品&…

[网鼎杯 2020 青龙组]bang 复现

一.前言 在NSSCTF练习安卓逆向,第一次遇到安卓脱壳题 大佬的题解只有一句话"frida-dexdump一把嗦" 听起来容易做起来难,还遇到了安卓虚拟机的玄学bug,折磨了我很久,好在最终使用真机成功dump并得到flag 题目来源:[网鼎杯 2020 青龙组]bang 如果直接用jadx打开会发现…

Vector - CAPL - CANoe DBC消息相关自动化_01

目录 getFirstCANdbFilename -- 获取数据库的文件名 代码示例 getFirstCANdbName -- 获取数据库的名称 代码示例 getSignalName -- 获取报文的信号名称 getMessageAttrInt -- 获取信号属性值 代码示例 getFirstCANdbFilename -- 获取数据库的文件名 功能:找出…

Python: 结合多进程和 Asyncio 以提高性能

动动发财的小手,点个赞吧! 简介 多亏了 GIL,使用多个线程来执行 CPU 密集型任务从来都不是一种选择。随着多核 CPU 的普及,Python 提供了一种多处理解决方案来执行 CPU 密集型任务。但是直到现在,直接使用多进程相关的…

Pytrack 函数整理

1 distance 1.1 add_edge_lengths pytrack.graph.distance.add_edge_lengths(G, precision3) 将每条边的长度加到图里面去 1.1.1 主要参数 G路网图precision每一条边长度,保持几位小数 1.2 enlarge_bbox pytrack.graph.distance.enlarge_bbox(north, south, …

僵尸进程的避免 守护进程的创建 线程的创建,阻塞,数据传递 5.15

父子进程相关知识&#xff1a; 1.子进程结束时&#xff0c;系统 会立即自动刷新行缓存 2.手动结束进程&#xff1a; exit() exit(int status)&#xff1a;结束当前调用的进程&#xff0c;自动刷新缓存 标准库函数 头文件&#xff1a;#include <stdlib.h> _exit() …

压缩技术与常见linux解压/压缩命令总结

文章目录 1 RAR1.1 参数介绍1.2 压缩/解压1.3 分卷压缩/解压 2 7-Zip2.1 常用参数2.2 使用2.3 分卷压缩/解压 3 解压/压缩命令 总结 1 RAR RAR是一种专利文件格式&#xff0c;用于数据的压缩打包。 提供了强力压缩、分卷、加密和自解压模块 官方网址&#xff1a;https://www…

公有云——阿里云ECS服务器(IaaS)

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.了解云服务器的基础概念 1.云服务器的基础概念&#xff08;云服务器选择…

用IDEA写的第一个JavaWeb项目(保姆级)

任何事情只有0次和无数次&#xff0c;项目新建了第一个就有第二个 从第一次的略显青涩到后面的轻车熟路&#xff0c;区别就是第一次 ——Lungcen 在IDEA中新建一个web项目&#xff0c;有好几种方法。本人用的方法是通过maven构建工具来构建java项目的框架。对于web服务器的选择…

日志—加索引优化select

今天工作中遇到一个小问题&#xff0c;一个搜索接口&#xff0c;要加一个2个字段用于搜索 分析&#xff1a;这两个字段要在子表中去查询&#xff0c;查看原来mapper中的接口&#xff0c;已经连了N个子表&#xff0c;sql速度在10秒左右。 加上了新的子表&#xff0c;然后去试了…

悼念浩哥(左耳朵耗子),一个纯粹的技术人

上周末听闻浩哥的事了&#xff0c;期初还不信。在网上搜索消息&#xff0c;看来是真的。他才四十多岁&#xff0c;觉得非常可惜。很早就关注过浩哥&#xff0c;他是一位正直纯粹和爱分享的技术大牛。无论是技术分享还是人生感悟&#xff0c;或者是成长相关&#xff0c;都让我学…

展会直击 | 昂视精彩亮相CIBF2023深圳国际电池展

5月16日&#xff0c;CIBF2023深圳国际电池展在深圳国际会展中心&#xff08;宝安新馆&#xff09;正式开幕&#xff0c;昂视携2D视觉产品、3D视觉产品、锂电行业智能检测方案亮相9号馆T101-2展位&#xff0c;会场氛围火热&#xff0c;昂视展位人声鼎沸。 方案演示&#xff0c;助…

K8s进阶1——搭建K8s高可用集群

文章目录 一、资源清单二、系统初始化2.1 所有服务器配置2.2 master节点配置 三、nginxkeepalived3.1 主备机器上进行3.2 配置主节点3.3 配置备节点3.4 启动服务 四、部署etcd集群4.1 资源清单4.2 生成Etcd证书4.3 部署Etcd集群 五、安装Docker/kubeadm/kubelet5.1 安装docker5…

【数据库复习】第六章 关系数据理论 1

关系模式的设计 按照一定的原则从数量众多而又相互关联的数据中&#xff0c;构造出一组既能较好地反映现实世界&#xff0c;而又有良好的操作性能的关系模式 ●冗余度高 ●修改困难 ●插入问题 ●删除问题 ★产生问题的原因 属性间约束关系&#xff08;即数据间的依赖关系…

【C++从0到王者】第五站:类和对象(中)const和取地址运算符重载

文章目录 一、const修饰this指针二、取地址运算符重载以及const取地址运算符重载 一、const修饰this指针 我们继续使用之前实现的日期类&#xff0c;当我们写出如下代码的时候&#xff0c;我们可以观察到编译器报错了 这其实因为权限的放大&#xff0c;如下图所示&#xff0c;…

ML之VAR:基于上海最高气温数据集利用时间序列模型之VAR向量自回归模型/多变量自回归模型实现回归预测案例

ML之VAR&#xff1a;基于上海最高气温数据集利用时间序列模型之VAR向量自回归模型/多变量自回归模型实现回归预测案例 目录 基于上海最高气温数据集利用时间序列模型之VAR向量自回归模型/多变量自回归模型实现回归预测案例 # 1、定义数据集 # 2、数据集预处理 # 2.1、缺失值…

【Spring全家桶系列】Spring中的事务管理(基于注解完成实现)

⭐️前面的话⭐️ 本文已经收录到《Spring框架全家桶系列》专栏&#xff0c;本文将介绍Spring中的事务管理&#xff0c;事务的概念与作用&#xff0c;以及Spring事务的属性和传播机制。 &#x1f4d2;博客主页&#xff1a;未见花闻的博客主页 &#x1f389;欢迎关注&#x1f5…

怀念浩哥(左耳朵耗子),一个纯粹的技术人

上周末听闻浩哥的事了&#xff0c;期初还不信。在网上搜索消息&#xff0c;看来是真的。他才四十多岁&#xff0c;觉得非常可惜。很早就关注过浩哥&#xff0c;他是一位正直纯粹和爱分享的技术大牛。无论是技术分享还是人生感悟&#xff0c;或者是成长相关&#xff0c;都让我学…