<a id="skfolio-metrics-diagonal-calibration-loss"></a>

# skfolio.metrics.diagonal_calibration_loss

<a id="skfolio.metrics.diagonal_calibration_loss"></a>

### skfolio.metrics.diagonal_calibration_loss(estimator, X_test, y=None)

Diagonal calibration loss.

Computes the absolute deviation of [`diagonal_calibration_ratio`](https://skfolio.org/generated/skfolio.metrics.diagonal_calibration_ratio.html.md#skfolio.metrics.diagonal_calibration_ratio) from its
calibration target of `1.0`.

Let $r_t$ be the one-period realized return vector at time $t$,
and let $R^{(h)} = \sum_{t=1}^{h} r_t$ be the aggregated return over
an evaluation window of $h$ observations.

$$
\ell = \left\lvert
    \frac{1}{n}\sum_{i=1}^{n}
    \frac{(R_i^{(h)})^2}{h\,\sigma_i^2} - 1
\right\rvert
$$

where $n$ is the number of assets.

* **Parameters:**
  **estimator** *BaseEstimator*
  : Fitted estimator, must expose `covariance_` or `return_distribution_.covariance`.

  **X_test** *array-like of shape (n_observations, n_assets)*
  : Realized returns for the test window.

  **y** *Ignored*
  : Present for scikit-learn API compatibility.
* **Returns:**
  float
  : Calibration loss. Lower values are better and the optimum is `0.0`.

#### SEE ALSO
[`diagonal_calibration_ratio`](https://skfolio.org/generated/skfolio.metrics.diagonal_calibration_ratio.html.md#skfolio.metrics.diagonal_calibration_ratio)
: The underlying calibration ratio.

[`mahalanobis_calibration_loss`](https://skfolio.org/generated/skfolio.metrics.mahalanobis_calibration_loss.html.md#skfolio.metrics.mahalanobis_calibration_loss)
: Loss using the full covariance structure.

