贝叶斯的python实现代码?
时间: 2023-04-10 19:04:54 浏览: 102
可以使用Python中的第三方库PyMC3来实现贝叶斯推断。以下是一个简单的例子:
```python
import pymc3 as pm
import numpy as np
# 构造数据
np.random.seed(123)
n = 100
x = np.random.randn(n)
y = 2 * x + np.random.randn(n)
# 构建模型
with pm.Model() as model:
# 定义先验分布
beta = pm.Normal('beta', mu=0, sd=10)
sigma = pm.HalfNormal('sigma', sd=1)
# 定义似然函数
likelihood = pm.Normal('y', mu=beta * x, sd=sigma, observed=y)
# 进行采样
trace = pm.sample(1000, tune=1000)
# 查看后验分布
pm.plot_posterior(trace)
```
这段代码实现了一个简单的线性回归模型,其中`beta`是斜率,`sigma`是噪声的标准差。`pm.Normal`表示正态分布,`pm.HalfNormal`表示半正态分布,`pm.Normal`中的参数`observed`表示观测到的数据。`pm.sample`用于进行采样,`trace`保存了采样结果。最后,`pm.plot_posterior`用于绘制后验分布。
阅读全文