我正在尝试使用pymc3
掌握贝叶斯统计学。
我对这个简单的线性回归运行了以下代码:
#Generating data y=a+bx
import pymc3
import numpy as np
N=1000
alpha,beta, sigma = 2.0, 0.5, 1.0
np.random.seed(47)
X = np.linspace(0, 1, N)
Y = alpha + beta*X + np.random.randn(N)*sigma
#Fitting
linear_model = pymc3.Model()
with linear_model:
alpha = pymc3.Normal('alpha', mu=0, sd=10)
beta = pymc3.Normal('beta', mu=0, sd=10)
sigma = pymc3.HalfNormal('sigma', sd=1)
mu = alpha + beta*X
Y_obs = pymc3.Normal('Y_obs', mu=mu, sd=sigma, observed=Y)
start = pymc3.find_MAP(fmin=optimize.fmin_powell)
step = pymc3.NUTS(scaling=start)
trace = pymc3.sample(500, step, start=start)
我不明白"trace"代表什么意思。
如果我对贝叶斯理论的理解足够好,应该会有一个“信念”函数,该函数将获取"alpha"、"beta"和"sigma"并输出它们组合的概率。
我如何从"trace"变量中获取这个"belief"结构?