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

# skfolio.metrics.portfolio_variance_calibration_loss

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

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

Portfolio variance calibration loss.

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

Let $r_t$ be the one-period realized return vector at time $t$
and $w^\top r_t$ the corresponding one-period portfolio return for
weights $w$.

$$
\ell = \left\lvert
    \frac{\sum_{t=1}^{h} (w^\top r_t)^2}
         {h\, w^\top \Sigma\, w} - 1
\right\rvert
$$

When multiple portfolios are provided, the loss is the absolute deviation
of the mean ratio from `1.0`.

* **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.

  **portfolio_weights** *array-like of shape (n_assets,) or (n_portfolios, n_assets), optional*
  : Portfolio weights. If `None` (default), inverse-volatility weights are used,
    which neutralizes volatility dispersion so that high-volatility assets do not
    dominate the diagnostic. If a 2D array is provided, each row defines a test
    portfolio. For equal-weight calibration, pass
    `portfolio_weights=np.ones(n_assets) / n_assets`.
* **Returns:**
  float
  : Calibration loss. Lower values are better and the optimum is `0.0`.

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

[`portfolio_variance_qlike_loss`](https://skfolio.org/generated/skfolio.metrics.portfolio_variance_qlike_loss.html.md#skfolio.metrics.portfolio_variance_qlike_loss)
: QLIKE loss for the projected portfolio variance.

