parameter_draws()

Extract posterior draws for one or more variables into a tidy Polars DataFrame.

Usage

parameter_draws(
    dt, *var_names, group="posterior", chain_dim="chain", draw_dim="draw"
)

Non-sample dimensions (everything except chain and draw) are detected automatically from the xarray DataArray’s .dims – no bracket syntax needed.

Parameters

dt: xr.DataTree or arviz.InferenceData

ArviZ InferenceData or xarray DataTree from PyMC sampling.

*var_names: str

Names of variables to extract. Dimensions are auto-detected.

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 – dims auto-detected from the DataArray

parameter_draws(dt, “beta”, “intercept”) # -> 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”, “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”, group=“prior”) # -> extract prior draws for beta

Multi-dimensional variable

parameter_draws(dt, “gamma”) # -> columns: chain, draw, time, group, gamma