parameter_draws()
Extract posterior draws for one or more variables into a tidy Polars DataFrame.
Usage
parameter_draws(
dt, *var_specs, group="posterior", chain_dim="chain", draw_dim="draw"
)Parameters
dt: xr.DataTree-
ArviZ DataTree object (xarray.DataTree) from PyMC sampling.
*var_specs: str-
Variable specifications in the form “var_name” for scalar variables, or “var_name[dim1, dim2, …]” for array variables. Supports nested/multi-dimensional specifications. The bracketed dimension names must match coordinate names in the InferenceData dataset.
group: str = "posterior"-
Which InferenceData group to extract from (e.g., “posterior”, “prior”). Default “posterior”.
chain_dim: str = "chain"-
Names of the chain and draw dimensions.
draw_dim: str = "chain"- Names of the chain and draw dimensions.
Returns
pl.DataFrame- Tidy DataFrame with columns: chain, draw, [named dims…], [var_names…] One row per unique (chain, draw, [dim combo]).
Examples
Scalar parameter (no duplication)
parameter_draws(dt, “sigma”) # -> columns: chain, draw, sigma # -> 4 x 1000 = 4,000 rows
Array parameter spread over a named dim
parameter_draws(dt, “beta[groups]”, “intercept[groups]”) # -> columns: chain, draw, groups, beta, intercept # -> 4 x 1000 x 4 = 16,000 rows (NOT 320,000)
Mix of scalar and array (sigma broadcast-joined to group-level params)
parameter_draws(dt, “beta[groups]”, “sigma”) # -> columns: chain, draw, groups, beta, sigma # -> 4 x 1000 x 4 = 16,000 rows; sigma repeated per group (explicit and expected)
Different groups (prior vs posterior)
parameter_draws(dt, “beta[groups]”, group=“prior”) # -> extract prior draws for beta
Nested dimensions
parameter_draws(dt, “gamma[time, group]”) # -> columns: chain, draw, time, group, gamma