## point_interval()


Compute point estimates and uncertainty intervals from tidy draws.


Usage


``` python
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()](parameter_draws.md#tidydraws.parameter_draws) or [compare_draws()](compare_draws.md#tidydraws.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()](compare_draws.md#tidydraws.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:

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

Compare prior vs posterior:

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