存储后端#

to_inference_data([trace, prior, ...])

将 pymc 数据转换为 InferenceData 对象。

predictions_to_inference_data(predictions[, ...])

将样本外预测转换为 InferenceData

内部结构#

跟踪的存储后端

NDArray (pymc.backends.NDArray) 后端将整个轨迹保存在内存中。

从后端选择值#

后端完成采样后,它会返回一个 MultiTrace 对象。可以通过几种方式访问值。最简单的方法是使用变量或变量名称索引后端对象。

>>> trace['x']  # or trace.x or trace[x]

调用将返回 x 的采样值,所有链的值将被连接在一起。(对于一次 sample 调用,链的数量将与 cores 参数相对应。)

要丢弃每个链的前 N 个值,可以使用切片语法。

>>> trace['x', 1000:]

get_values 方法提供了更多对返回值的控制。下面的调用将丢弃每个链的前1000次迭代,并将每个链的值保留为单独的数组。

>>> trace.get_values('x', burn=1000, combine=False)

get_valueschains 参数可以用来限制检索的链。

>>> trace.get_values('x', burn=1000, chains=[0, 2])

MultiTrace 对象也支持切片。例如,以下调用将返回一个新的 trace 对象,该对象不包含所有 trace 和变量的前 1000 次采样迭代。

>>> sliced_trace = trace[1000:]

新跟踪的后端始终是 NDArray,无论原始跟踪的类型如何。

加载已保存的后端#

保存的后端可以使用 arviz.from_netcdf 加载

NDArray([name, model, vars, test_point])

NDArray 跟踪对象

base.BaseTrace(name[, model, vars, test_point])

基础跟踪对象

base.MultiTrace(straces)

用于从MCMC结果中访问值的主接口。