pymc.样本后验预测#
- pymc.sample_posterior_predictive(trace, model=None, var_names=None, sample_dims=None, random_seed=None, progressbar=True, return_inferencedata=True, extend_inferencedata=False, predictions=False, idata_kwargs=None, compile_kwargs=None)[源代码]#
从给定的轨迹生成模型的后验预测样本。
- 参数:
- tracebackend, python:list, xarray.Dataset, arviz.InferenceData, 或 MultiTrace
从MCMC采样生成的轨迹,或字典列表(例如,点或从find_MAP()获取的),或xarray.Dataset(例如,InferenceData.posterior或InferenceData.prior)
- model模型(如果已在上下文中,则为可选)
用于生成后验预测样本的模型。通常是用于生成
trace
的模型,但不一定非得是。- var_names
Iterable
[str
] 要计算后验预测样本的变量名称。
- sample_dims :
list
的str
,可选python:list of python:str, 可选 循环和生成后验预测样本的维度。当 sample_dims 为 ``None``(默认)时,”chain” 和 “draw” 都被视为样本维度。仅在 trace 为 InferenceData 或 Dataset 时考虑。
- random_seedpython:int, RandomState 或 Generator, 可选
随机数生成器的种子。
- progressbar : 布尔值布尔
是否在命令行中显示进度条。进度条显示完成百分比、每秒采样速度(SPS)以及预计的剩余时间直至完成(”预计到达时间”;ETA)。
- return_inferencedata : 布尔值, 默认值
True
bool, 默认 python:True 是否返回一个
arviz.InferenceData
(True) 对象或一个字典 (False)。- extend_inferencedata : 布尔值,默认值
False
bool, 默认 python:False 是否自动使用
arviz.InferenceData.extend()
将后验预测样本添加到trace
中。如果为 True,trace
将被原地修改但仍然返回。- 预测 : 布尔值,默认值
False
bool, 默认 python:False 用于设置后验预测样本在返回的
arviz.InferenceData
对象中的位置的标志。如果为 False,则假定样本是基于拟合数据生成的,用于后验预测检查,样本存储在posterior_predictive
中。如果为 True,则假定样本是基于样本外数据生成的预测,样本存储在predictions
组中。- idata_kwargs :
dict
, 可选python:dict, 可选 如果
predictions=False
,则为pymc.to_inference_data()
的关键字参数;否则为pymc.predictions_to_inference_data()
的关键字参数。- compile_kwargs: dict, 可选
用于
pymc.pytensorf.compile_pymc()
的关键字参数。
- 返回:
arviz.InferenceData
orDict
一个包含后验预测样本的 ArviZ
InferenceData
对象(默认),或一个以变量名为键、样本为 numpy 数组的字典。
示例
在将采样后的推理数据传递给 sample_posterior_predictive 之前,通过保留每5次抽取中的1次来细化它。
thinned_idata = idata.sel(draw=slice(None, None, 5)) with model: idata.extend(pymc.sample_posterior_predictive(thinned_idata))
为每个后验样本生成5个后验预测样本。
expanded_data = idata.posterior.expand_dims(pred_id=5) with model: idata.extend(pymc.sample_posterior_predictive(expanded_data))