code: def msis(y, yhat_lower, yhat_upper, y_obs, m, a=0.05):
      """Return the mean scaled interval score.
  
      Args:
        y: An array containing the true values.
        yhat_lower: An array containing the a% quantile of the predicted
          distribution.
        yhat_upper: An array containing the (1-a)% quantile of the
          predicted distribution.
        y_obs: An array containing the training values.
        m: The season length.
        a: A scalar in [0, 1] specifying the quantile window to evaluate.
  
      Returns:
        The scalar MSIS.
      """
      # https://www.uber.com/blog/m4-forecasting-competition/
      assert len(y) == len(yhat_lower) == len(yhat_upper)
      n = len(y_obs)
      h = len(y)
      numer = np.sum(
          (yhat_upper - yhat_lower)
          + (2 / a) * (yhat_lower - y) * (y < yhat_lower)
          + (2 / a) * (y - yhat_upper) * (yhat_upper < y)
      )
      denom = np.sum(np.abs(y_obs[m:] - y_obs[:-m])) / (n - m)
      return (1 / h) * (numer / denom)
  
imports: import numpy
label_desc: Use image node_id 5 for calling a global function with example usage: msis(y, yhat_lower, yhat_upper, y_obs, m, a) and returns: unknown