point_interval()

Compute point estimates and uncertainty intervals from tidy draws.

Usage

point_interval(
    data, value, group_by=None, probs=(0.89,), point="median", interval="eti"
)

Parameters

data: pl.DataFrame | pl.LazyFrame

Tidy DataFrame of MCMC draws (e.g. from parameter_draws() or compare_draws()). Must contain value as a column.

value: str

Name of the column to summarise.

group_by: str | list[str] | None = None

Column(s) to group by. None (default) collapses all draws into a single summary row. Pass a column name (e.g. "groups") or a list (e.g. ["groups", "source"] for combined output from compare_draws()).

probs: tuple[float, …] = (0.89,)

Probability mass for each interval width. Default (0.89,). Multiple values produce additional suffixed columns.

point: str = "median"

Point estimate type: "median" (default) or "mean".

interval: str = "eti"
Interval type: "eti" (equal-tailed, default) or "hdi" (highest-density interval).

Returns

pl.DataFrame

Always returns an eager pl.DataFrame.

Single prob (e.g. probs=(0.89,)): {value}, {value}_lower, {value}_upper

Multiple probs (e.g. probs=(0.50, 0.89)): {value}, {value}_lower_0.50, {value}_upper_0.50, {value}_lower_0.89, {value}_upper_0.89

Examples

Basic grouped summary:

draws = parameter_draws(dt, "beta[groups]")
summary = point_interval(draws, "beta", group_by="groups")

Compare prior vs posterior:

comp = compare_draws(dt, "beta[groups]")
summary = point_interval(comp, "beta", group_by=["groups", "source"])