存储后端#
|
将 pymc 数据转换为 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_values 的 chains 参数可以用来限制检索的链。
>>> trace.get_values('x', burn=1000, chains=[0, 2])
MultiTrace 对象也支持切片。例如,以下调用将返回一个新的 trace 对象,该对象不包含所有 trace 和变量的前 1000 次采样迭代。
>>> sliced_trace = trace[1000:]
新跟踪的后端始终是 NDArray,无论原始跟踪的类型如何。
加载已保存的后端#
保存的后端可以使用 arviz.from_netcdf 加载
|
NDArray 跟踪对象 |
|
基础跟踪对象 |
|
用于从MCMC结果中访问值的主接口。 |