首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[python]pymc3-3.11.0或者3.11.6安装后测试代码

[python]pymc3-3.11.0或者3.11.6安装后测试代码

作者头像
云未归来
发布2025-07-16 14:46:38
发布2025-07-16 14:46:38
9900
代码可运行
举报
运行总次数:0
代码可运行

测试通过环境:

pymc3==3.11.0或3.11.6

python=3.8

测试代码:

代码语言:javascript
代码运行次数:0
运行
复制
import arviz as az
import matplotlib.pyplot as plt
import numpy as np
import pymc3 as pm
RANDOM_SEED = 8927
np.random.seed(RANDOM_SEED)
az.style.use("arviz-darkgrid")
# True parameter values
alpha, sigma = 1, 1
beta = [1, 2.5]
 
# Size of dataset
size = 100
 
# Predictor variable
X1 = np.random.randn(size)
X2 = np.random.randn(size) * 0.2
 
# Simulate outcome variable
Y = alpha + beta[0] * X1 + beta[1] * X2 + np.random.randn(size) * sigma
fig, axes = plt.subplots(1, 2, sharex=True, figsize=(10, 4))
axes[0].scatter(X1, Y, alpha=0.6)
axes[1].scatter(X2, Y, alpha=0.6)
axes[0].set_ylabel("Y")
axes[0].set_xlabel("X1")
axes[1].set_xlabel("X2")
basic_model = pm.Model()
if __name__ == '__main__':
 with basic_model:
 
    # Priors for unknown model parameters
    alpha = pm.Normal("alpha", mu=0, sigma=10)
    beta = pm.Normal("beta", mu=0, sigma=10, shape=2)
    sigma = pm.HalfNormal("sigma", sigma=1)
 
    # Expected value of outcome
    mu = alpha + beta[0] * X1 + beta[1] * X2
 
    # Likelihood (sampling distribution) of observations
    Y_obs = pm.Normal("Y_obs", mu=mu, sigma=sigma, observed=Y)
 
# instantiate sampler
    step = pm.Slice()
 
    # draw 5000 posterior samples
    trace = pm.sample(5000, step=step, return_inferencedata=False)
    az.plot_trace(trace)
    plt.show()

测试结果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档