我试图使用PyMC3运行一个基本的测试模型,但我发现ArviZ plot_trace函数无法正确显示我的跟踪。
代码
from scipy import stats
import arviz as az
import numpy as np
import matplotlib.pyplot as plt
import pymc3 as pm
import seaborn as sns
import pandas as pd
from theano import shared
from sklearn import preprocessing
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)
# draw 500 posterior samples
trace = pm.sample(5000)
az.plot_trace(trace, compact = False)beta参数是多维的,具有beta[0]和beta[1],但是ArviZ跟踪只显示beta[0]。
迹图

如果我以az.plot_trace(trace, compact = True)的形式运行跟踪图,那么我确实可以看到beta的两个维度都被正确地覆盖。我只在尝试用compact = False绘制不同轴的尺寸时才注意到这个问题。
版本
https://stackoverflow.com/questions/60939623
复制相似问题