qis.plot_signal_diagnostics_group_boxplot

qis.plot_signal_diagnostics_group_boxplot(result, horizon, min_obs_per_asset=12, group_colors=None, title=None, ylabel='$\\beta$ per asset (no-intercept)', annotate_t_stat=True, ax=None, **kwargs)[source]

Per-group β distribution as boxplots, with regression t-stat annotation.

For each group, computes one β per asset (no-intercept regression of r_norm_univ on z from result.pairs[horizon]) and plots the cross-asset β distribution as a box. The per-group regression t-statistic from result.per_group is annotated above each box, making this visually equivalent to the bar-chart view but using the same boxplot aesthetic as the row above.

Parameters:
  • result (SignalDiagnosticsResult) – Output of estimate_signal_diagnostics.

  • horizon (str) – Horizon to plot.

  • min_obs_per_asset (int) – Minimum observations per asset to include in the per-asset β computation. Default 12.

  • group_colors (Dict[str, str] | None) – Optional palette; defaults to Tab10.

  • title (str | None) – Figure title; auto-generated when None.

  • ylabel (str) – Y-axis label.

  • annotate_t_stat (bool) – Annotate “t=…sig” above each box. Default True.

  • ax (Axes | None) – Optional axis.

  • **kwargs – Ignored (kept for caller-API stability).

Returns:

Figure when ax is None, otherwise None.

Return type:

Figure | None