pymc.Data#

pymc.Data(name, value, *, dims=None, coords=None, export_index_as_coords=False, infer_dims_and_coords=False, mutable=None, **kwargs)[源代码]#

数据容器,用于在模型中注册数据变量。

根据 mutable 设置(默认:True),该变量被注册为一个 SharedVariable,使其能够在值和形状上被改变,但不能通过 pymc.set_data() 改变维度。

要设置数据容器变量的值,请查看 pymc.Model.set_data()

在进行预测或进行后验预测采样时,注册的数据变量的形状很可能需要更改。如果遇到 PyTensor 形状不匹配错误,请参考 pymc.model.set_data() 的文档。

更多信息,请阅读笔记本 Using Data Containers

参数:
名称 : strstr

这个变量的名称。

valuenumpy:array_like 或 pandas.Series, pandas.Dataframe

与此变量关联的值。

dims : strtuplestr,可选python:str 或 python:tuple of python:str, 可选

随机变量的维度名称(与这些随机变量的形状相对)。当 value 是 pandas Series 或 DataFrame 时使用此项。dims 将是 Series / DataFrame 的列名。有关维度和坐标的更多信息,请参阅 ArviZ 文档:ArviZ Quickstart。如果未指定此参数,随机变量将没有维度名称。

coords : dict, 可选python:dict, 可选

为此 Data 变量引入的新维度设置的坐标值。

export_index_as_coords : 布尔值布尔

已弃用,先前版本的“infer_dims_and_coords”

infer_dims_and_coords : bool, 默认=Falsebool, 默认=False

如果为 True,Data 容器将尝试推断坐标和维度名称,如果 value 中存在索引。

mutable : 布尔值, 可选bool, 可选

在创建 SharedVariable (mutable=True) 和创建 TensorConstant (mutable=False) 之间切换。考虑使用 pymc.ConstantDatapymc.MutableData 作为 pm.Data(..., mutable=...) 的更简洁替代方案。如果未指定此参数,其取值将取决于包的版本。自 v4.1.0 起,默认值为 mutable=False,而之前的版本为 mutable=True

**kwargs : dict, 可选python:dict, 可选

传递给 pytensor.shared() 的额外参数。

示例

>>> import pymc as pm
>>> import numpy as np
>>> # We generate 10 datasets
>>> true_mu = [np.random.randn() for _ in range(10)]
>>> observed_data = [mu + np.random.randn(20) for mu in true_mu]
>>> with pm.Model() as model:
...     data = pm.MutableData('data', observed_data[0])
...     mu = pm.Normal('mu', 0, 10)
...     pm.Normal('y', mu=mu, sigma=1, observed=data)
>>> # Generate one trace for each dataset
>>> idatas = []
>>> for data_vals in observed_data:
...     with model:
...         # Switch out the observed dataset
...         model.set_data('data', data_vals)
...         idatas.append(pm.sample())