code: def _normalise_stats(
      stats: np.ndarray, n: int, ws: int
  ) -> np.ndarray:
      """
      See Eqns 3 & 14 of https://www.projecteuclid.org/euclid.aoms/1177704477.
      """
      mu = 1 / 6 + 1 / (6 * (n + ws))
      var_num = (n + ws + 1) * (
          4 * n * ws * (n + ws) - 3 * (n * n + ws * ws) - 2 * n * ws
      )
      var_denom = 45 * (n + ws) * (n + ws) * 4 * n * ws
      prod = n * ws / ((n + ws) * (n + ws))
      return (stats * prod - mu) / np.sqrt(var_num / var_denom)
  
imports: import numpy
  from typing import Any, Callable, List, Optional, Union
  from alibi_detect.base import DriftConfigMixin
  from alibi_detect.cd.base_online import BaseUniDriftOnline
  from alibi_detect.utils.misc import quantile
  import numba
  from tqdm import tqdm
  import warnings
label_desc: Use image node_id 1 for calling a global function with example usage: _normalise_stats(stats, n, ws) and returns: unknown