class_docstr: Continuous rank probability score for distributional predictions.
  
  Also known as:
  
  * integrated squared loss (ISL)
  * integrated Brier loss (IBL)
  * energy loss
  
  For a predictive distribution :math:`d` and a ground truth value :math:`y`,
  the CRPS is defined as
  :math:`L(y, d) := \mathbb{E}_{Y \sim d}|Y-y| - \frac{1}{2} \mathbb{E}_{X,Y \sim d}|X-Y|`.  # noqa: E501
  
  `evaluate` computes the average test sample loss.
  `evaluate_by_index` produces the loss sample by test data point
  `multivariate` controls averaging over variables.
  
  Parameters
  ----------
  multioutput : {'raw_values', 'uniform_average'} or array-like of shape \
          (n_outputs,), default='uniform_average'
      Defines whether and how to aggregate metric for across variables.
      If 'uniform_average' (default), errors are mean-averaged across variables.
      If array-like, errors are weighted averaged across variables, values as weights.
      If 'raw_values', does not average errors across variables, columns are retained.
  multivariate : bool, optional, default=False
      if True, behaves as multivariate CRPS (sum of scores)
      CRPS is computed for entire row, results one score per row
      if False, is univariate log-loss, per variable
      CRPS is computed per variable marginal, results in many scores per row
class_docstr_tok: ["Continuous","rank","probability","score","for","distributional","predictions",".","Also","known","as",":","*","integrated","squared","loss","(","ISL",")","*","integrated","Brier","loss","(","IBL",")","*","energy","loss","For","a","predictive","distribution",":","math",":","`","d","`","and","a","ground","truth","value",":","math",":","`","y","`",",","the","CRPS","is","defined","as",":","math",":","`","L","(","y",",","d",")",":","=","\\mathbb","{","E","}","_","{","Y","\\sim","d","}","|Y-y|","-","\\frac","{","1","}","{","2","}","\\mathbb","{","E","}","_","{","X",",","Y","\\sim","d","}","|X-Y|","`",".","#","noqa",":","E501","`","evaluate","`","computes","the","average","test","sample","loss",".","`","evaluate_by_index","`","produces","the","loss","sample","by","test","data","point","`","multivariate","`","controls","averaging","over","variables",".","Parameters","--","--","--","--","--","multioutput",":","{","'raw_values","'",",","'uniform_average","'","}","or","array-like","of","shape","\\","(","n_outputs",",",")",",","default='uniform_average'","Defines","whether","and","how","to","aggregate","metric","for","across","variables",".","If","'uniform_average","'","(","default",")",",","errors","are","mean-averaged","across","variables",".","If","array-like",",","errors","are","weighted","averaged","across","variables",",","values","as","weights",".","If","'raw_values","'",",","does","not","average","errors","across","variables",",","columns","are","retained",".","multivariate",":","bool",",","optional",",","default=False","if","True",",","behaves","as","multivariate","CRPS","(","sum","of","scores",")","CRPS","is","computed","for","entire","row",",","results","one","score","per","row","if","False",",","is","univariate","log-loss",",","per","variable","CRPS","is","computed","per","variable","marginal",",","results","in","many","scores","per","row"]
code: def __init__(self, multioutput="uniform_average", multivariate=False):
      self.multivariate = multivariate
      super().__init__(multioutput=multioutput)
  
imports: from logging import warning
  import numpy
  import pandas
  from pandas.api.types import is_numeric_dtype
  from sklearn.utils import check_array, check_consistent_length
  from sktime.datatypes import check_is_scitype, convert, convert_to
  from sktime.performance_metrics.forecasting._classes import BaseForecastingErrorMetric
  from sktime.performance_metrics.forecasting._coerce import _coerce_to_scalar
label_desc: Use image node_id 1 to create a new CRPS object from inherited base classes: _BaseDistrForecastingMetric with example: obj = CRPS(multioutput, multivariate)