# evidently.calculations

## Subpackages

* [evidently.calculations.stattests package](/reference/api-reference/evidently.calculations/evidently.calculations.stattests.md)
  * [Submodules](/reference/api-reference/evidently.calculations/evidently.calculations.stattests.md#submodules)
  * [anderson\_darling\_stattest module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.anderson_darling_stattest)
  * [chisquare\_stattest module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.chisquare_stattest)
  * [cramer\_von\_mises\_stattest module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.cramer_von_mises_stattest)
    * [`CramerVonMisesResult`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.cramer_von_mises_stattest.CramerVonMisesResult)
  * [energy\_distance module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.energy_distance)
  * [epps\_singleton\_stattest module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.epps_singleton_stattest)
  * [fisher\_exact\_stattest module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.fisher_exact_stattest)
  * [g\_stattest module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.g_stattest)
  * [hellinger\_distance module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.hellinger_distance)
  * [jensenshannon module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.jensenshannon)
  * [kl\_div module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.kl_div)
  * [ks\_stattest module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.ks_stattest)
  * [mann\_whitney\_urank\_stattest module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.mann_whitney_urank_stattest)
  * [psi module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.psi)
  * [registry module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.registry)
    * [`StatTest`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTest)
      * [`StatTest.allowed_feature_types`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTest.allowed_feature_types)
      * [`StatTest.default_threshold`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTest.default_threshold)
      * [`StatTest.display_name`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTest.display_name)
      * [`StatTest.func`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTest.func)
      * [`StatTest.name`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTest.name)
    * [`StatTestInvalidFeatureTypeError`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTestInvalidFeatureTypeError)
    * [`StatTestNotFoundError`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTestNotFoundError)
    * [`StatTestResult`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTestResult)
      * [`StatTestResult.actual_threshold`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTestResult.actual_threshold)
      * [`StatTestResult.drift_score`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTestResult.drift_score)
      * [`StatTestResult.drifted`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.StatTestResult.drifted)
    * [`get_stattest()`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.get_stattest)
    * [`register_stattest()`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.registry.register_stattest)
  * [t\_test module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.t_test)
  * [tvd\_stattest module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.tvd_stattest)
  * [utils module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.utils)
    * [`generate_fisher2x2_contingency_table()`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.utils.generate_fisher2x2_contingency_table)
    * [`get_binned_data()`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.utils.get_binned_data)
    * [`get_unique_not_nan_values_list_from_series()`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.utils.get_unique_not_nan_values_list_from_series)
    * [`permutation_test()`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.utils.permutation_test)
  * [wasserstein\_distance\_norm module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.wasserstein_distance_norm)
  * [z\_stattest module](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#module-evidently.calculations.stattests.z_stattest)
    * [`proportions_diff_z_stat_ind()`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.z_stattest.proportions_diff_z_stat_ind)
    * [`proportions_diff_z_test()`](https://docs-old.evidentlyai.com/reference/api-reference/pages/Rb3BF2Y7DDvjAuK838aV#evidently.calculations.stattests.z_stattest.proportions_diff_z_test)

## Submodules

## classification\_performance module <a href="#module-evidently.calculations.classification_performance" id="module-evidently.calculations.classification_performance"></a>

### class ConfusionMatrix(labels: Sequence\[Union\[str, int]], values: list)

Bases: `object`

#### Attributes:

&#x20;    **labels : Sequence\[Union\[str, int]]**

&#x20;    **values : list**

### class DatasetClassificationQuality(accuracy: float, precision: float, recall: float, f1: float, roc\_auc: Optional\[float] = None, log\_loss: Optional\[float] = None, tpr: Optional\[float] = None, tnr: Optional\[float] = None, fpr: Optional\[float] = None, fnr: Optional\[float] = None, rate\_plots\_data: Optional\[Dict] = None, plot\_data: Optional\[Dict] = None)

Bases: `object`

#### Attributes:

&#x20;    **accuracy : float**

&#x20;    **f1 : float**

&#x20;    **fnr : Optional\[float] = None**

&#x20;    **fpr : Optional\[float] = None**

&#x20;    **log\_loss : Optional\[float] = None**

&#x20;    **plot\_data : Optional\[Dict] = None**

&#x20;    **precision : float**

&#x20;    **rate\_plots\_data : Optional\[Dict] = None**

&#x20;    **recall : float**

&#x20;    **roc\_auc : Optional\[float] = None**

&#x20;    **tnr : Optional\[float] = None**

&#x20;    **tpr : Optional\[float] = None**

### class PredictionData(predictions: pandas.core.series.Series, prediction\_probas: Optional\[pandas.core.frame.DataFrame], labels: List\[Union\[str, int]])

Bases: `object`

#### Attributes:

&#x20;    **labels : List\[Union\[str, int]]**

&#x20;    **prediction\_probas : Optional\[DataFrame]**

&#x20;    **predictions : Series**

### calculate\_confusion\_by\_classes(confusion\_matrix: ndarray, class\_names: Sequence\[Union\[str, int]])

Calculate metrics:

* TP (true positive)
* TN (true negative)
* FP (false positive)
* FN (false negative)\
  for each class from confusion matrix.
* **Returns**

  a dict like:

  ```default
  {
      "class_1_name": {
          "tp": 1,
          "tn": 5,
          "fp": 0,
          "fn": 3,
      },
      "class_1_name": {
          "tp": 1,
          "tn": 5,
          "fp": 0,
          "fn": 3,
      },
  }
  ```

### calculate\_matrix(target: Series, prediction: Series, labels: List\[Union\[str, int]])

### calculate\_metrics(column\_mapping: [ColumnMapping](https://docs-old.evidentlyai.com/reference/api-reference/pages/D9Oc6VIiKDafnPidUy9b#evidently.pipeline.column_mapping.ColumnMapping), confusion\_matrix: ConfusionMatrix, target: Series, prediction: PredictionData)

### calculate\_pr\_table(binded)

### collect\_plot\_data(prediction\_probas: DataFrame)

### get\_prediction\_data(data: DataFrame, data\_columns: [DatasetColumns](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.data_operations.DatasetColumns), pos\_label: Optional\[Union\[str, int]], threshold: float = 0.5)

Get predicted values and optional prediction probabilities from source data.\
Also take into account a threshold value - if a probability is less than the value, do not take it into account.

Return and object with predicted values and an optional prediction probabilities.

### k\_probability\_threshold(prediction\_probas: DataFrame, k: Union\[int, float])

### threshold\_probability\_labels(prediction\_probas: DataFrame, pos\_label: Union\[str, int], neg\_label: Union\[str, int], threshold: float)

Get prediction values by probabilities with the threshold apply

## data\_drift module <a href="#module-evidently.calculations.data_drift" id="module-evidently.calculations.data_drift"></a>

Methods and types for data drift calculations.

### class ColumnDataDriftMetrics(column\_name: str, column\_type: str, stattest\_name: str, drift\_score: float, drift\_detected: bool, threshold: float, current\_distribution: [Distribution](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.visualizations.Distribution), reference\_distribution: [Distribution](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.visualizations.Distribution), current\_small\_distribution: Optional\[list] = None, reference\_small\_distribution: Optional\[list] = None, current\_scatter: Optional\[Dict\[str, list]] = None, x\_name: Optional\[str] = None, plot\_shape: Optional\[Dict\[str, float]] = None, current\_correlations: Optional\[Dict\[str, float]] = None, reference\_correlations: Optional\[Dict\[str, float]] = None)

Bases: `object`

One column drift metrics.

#### Attributes:

&#x20;    **column\_name : str**

&#x20;    **column\_type : str**

&#x20;    **current\_correlations : Optional\[Dict\[str, float]] = None**

&#x20;    **current\_distribution :** [**Distribution**](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.visualizations.Distribution)

&#x20;    **current\_scatter : Optional\[Dict\[str, list]] = None**

&#x20;    **current\_small\_distribution : Optional\[list] = None**

&#x20;    **drift\_detected : bool**

&#x20;    **drift\_score : float**

&#x20;    **plot\_shape : Optional\[Dict\[str, float]] = None**

&#x20;    **reference\_correlations : Optional\[Dict\[str, float]] = None**

&#x20;    **reference\_distribution :** [**Distribution**](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.visualizations.Distribution)

&#x20;    **reference\_small\_distribution : Optional\[list] = None**

&#x20;    **stattest\_name : str**

&#x20;    **threshold : float**

&#x20;    **x\_name : Optional\[str] = None**

### class DatasetDrift(number\_of\_drifted\_columns: int, dataset\_drift\_score: float, dataset\_drift: bool)

Bases: `object`

Dataset drift calculation results

#### Attributes:

&#x20;    **dataset\_drift : bool**

&#x20;    **dataset\_drift\_score : float**

&#x20;    **number\_of\_drifted\_columns : int**

### class DatasetDriftMetrics(number\_of\_columns: int, number\_of\_drifted\_columns: int, share\_of\_drifted\_columns: float, dataset\_drift: bool, drift\_by\_columns: Dict\[str, ColumnDataDriftMetrics], options: [DataDriftOptions](https://docs-old.evidentlyai.com/reference/api-reference/pages/ZW3IQh73672cpd3xySyJ#evidently.options.data_drift.DataDriftOptions), dataset\_columns: [DatasetColumns](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.data_operations.DatasetColumns))

Bases: `object`

#### Attributes:

&#x20;    **dataset\_columns :** [**DatasetColumns**](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.data_operations.DatasetColumns)

&#x20;    **dataset\_drift : bool**

&#x20;    **drift\_by\_columns : Dict\[str, ColumnDataDriftMetrics]**

&#x20;    **number\_of\_columns : int**

&#x20;    **number\_of\_drifted\_columns : int**

&#x20;    **options :** [**DataDriftOptions**](https://docs-old.evidentlyai.com/reference/api-reference/pages/ZW3IQh73672cpd3xySyJ#evidently.options.data_drift.DataDriftOptions)

&#x20;    **share\_of\_drifted\_columns : float**

### ensure\_prediction\_column\_is\_string(\*, prediction\_column: Optional\[Union\[str, Sequence]], current\_data: DataFrame, reference\_data: DataFrame, threshold: float = 0.5)

Update dataset by predictions type:

* if prediction column is None or a string, no dataset changes
* (binary classification) if predictions is a list and its length equals 2

  set predicted\_labels column by threshold
* (multi label classification) if predictions is a list and its length is greater than 2

  set predicted\_labels from probability values in columns by prediction column
* **Returns**

  prediction column name.

### get\_dataset\_drift(drift\_metrics, drift\_share=0.5)

### get\_drift\_for\_columns(\*, current\_data: DataFrame, reference\_data: DataFrame, dataset\_columns: [DatasetColumns](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.data_operations.DatasetColumns), data\_drift\_options: [DataDriftOptions](https://docs-old.evidentlyai.com/reference/api-reference/pages/ZW3IQh73672cpd3xySyJ#evidently.options.data_drift.DataDriftOptions), drift\_share\_threshold: Optional\[float] = None, columns: Optional\[List\[str]] = None)

### get\_one\_column\_drift(\*, current\_data: DataFrame, reference\_data: DataFrame, column\_name: str, options: [DataDriftOptions](https://docs-old.evidentlyai.com/reference/api-reference/pages/ZW3IQh73672cpd3xySyJ#evidently.options.data_drift.DataDriftOptions), dataset\_columns: [DatasetColumns](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.data_operations.DatasetColumns), column\_type: Optional\[str] = None)

## data\_integration module <a href="#module-evidently.calculations.data_integration" id="module-evidently.calculations.data_integration"></a>

### get\_number\_of\_all\_pandas\_missed\_values(dataset: DataFrame)

Calculate the number of missed - nulls by pandas - values in a dataset

### get\_number\_of\_almost\_constant\_columns(dataset: DataFrame, threshold: float)

Calculate the number of almost constant columns in a dataset

### get\_number\_of\_almost\_duplicated\_columns(dataset: DataFrame, threshold: float)

Calculate the number of almost duplicated columns in a dataset

### get\_number\_of\_constant\_columns(dataset: DataFrame)

Calculate the number of constant columns in a dataset

### get\_number\_of\_duplicated\_columns(dataset: DataFrame)

Calculate the number of duplicated columns in a dataset

### get\_number\_of\_empty\_columns(dataset: DataFrame)

Calculate the number of empty columns in a dataset

## data\_quality module <a href="#module-evidently.calculations.data_quality" id="module-evidently.calculations.data_quality"></a>

Methods for overall dataset quality calculations - rows count, a specific values count, etc.

### class ColumnCorrelations(column\_name: str, kind: str, values: [Distribution](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.visualizations.Distribution))

Bases: `object`

#### Attributes:

&#x20;    **column\_name : str**

&#x20;    **kind : str**

&#x20;    **values :** [**Distribution**](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.visualizations.Distribution)

### class DataQualityGetPlotData()

Bases: `object`

#### Methods:

&#x20;    **calculate\_data\_by\_target(curr: DataFrame, ref: Optional\[DataFrame], feature\_name: str, feature\_type: str, target\_name: str, target\_type: str, merge\_small\_cat: Optional\[int] = 5)**

&#x20;    **calculate\_data\_in\_time(curr: DataFrame, ref: Optional\[DataFrame], feature\_name: str, feature\_type: str, datetime\_name: str, merge\_small\_cat: Optional\[int] = 5)**

&#x20;    **calculate\_main\_plot(curr: DataFrame, ref: Optional\[DataFrame], feature\_name: str, feature\_type: str, merge\_small\_cat: Optional\[int] = 5)**

### class DataQualityPlot(bins\_for\_hist: Dict\[str, pandas.core.frame.DataFrame])

Bases: `object`

#### Attributes:

&#x20;    **bins\_for\_hist : Dict\[str, DataFrame]**

### class DataQualityStats(rows\_count: int, num\_features\_stats: Optional\[Dict\[str, FeatureQualityStats]] = None, cat\_features\_stats: Optional\[Dict\[str, FeatureQualityStats]] = None, datetime\_features\_stats: Optional\[Dict\[str, FeatureQualityStats]] = None, target\_stats: Optional\[Dict\[str, FeatureQualityStats]] = None, prediction\_stats: Optional\[Dict\[str, FeatureQualityStats]] = None)

Bases: `object`

#### Attributes:

&#x20;    **cat\_features\_stats : Optional\[Dict\[str, FeatureQualityStats]] = None**

&#x20;    **datetime\_features\_stats : Optional\[Dict\[str, FeatureQualityStats]] = None**

&#x20;    **num\_features\_stats : Optional\[Dict\[str, FeatureQualityStats]] = None**

&#x20;    **prediction\_stats : Optional\[Dict\[str, FeatureQualityStats]] = None**

&#x20;    **rows\_count : int**

&#x20;    **target\_stats : Optional\[Dict\[str, FeatureQualityStats]] = None**

#### Methods:

&#x20;    **get\_all\_features()**

### class FeatureQualityStats(feature\_type: str, number\_of\_rows: int = 0, count: int = 0, infinite\_count: Optional\[int] = None, infinite\_percentage: Optional\[float] = None, missing\_count: Optional\[int] = None, missing\_percentage: Optional\[float] = None, unique\_count: Optional\[int] = None, unique\_percentage: Optional\[float] = None, percentile\_25: Optional\[float] = None, percentile\_50: Optional\[float] = None, percentile\_75: Optional\[float] = None, max: Optional\[Union\[int, float, bool, str]] = None, min: Optional\[Union\[int, float, bool, str]] = None, mean: Optional\[float] = None, most\_common\_value: Optional\[Union\[int, float, bool, str]] = None, most\_common\_value\_percentage: Optional\[float] = None, std: Optional\[float] = None, most\_common\_not\_null\_value: Optional\[Union\[int, float, bool, str]] = None, most\_common\_not\_null\_value\_percentage: Optional\[float] = None, new\_in\_current\_values\_count: Optional\[int] = None, unused\_in\_current\_values\_count: Optional\[int] = None)

Bases: `object`

Class for all features data quality metrics store.

A type of the feature is stored in feature\_type field.\
Concrete stat kit depends on the feature type. Is a metric is not applicable - leave None value for it.

Metrics for all feature types:

```
- feature type - cat for category, num for numeric, datetime for datetime features

- count - quantity of a meaningful values (do not take into account NaN values)

- missing_count - quantity of meaningless (NaN) values

- missing_percentage - the percentage of the missed values

- unique_count - quantity of unique values

- unique_percentage - the percentage of the unique values

- max - maximum value (not applicable for category features)

- min - minimum value (not applicable for category features)

- most_common_value - the most common value in the feature values

- most_common_value_percentage - the percentage of the most common value

- most_common_not_null_value - if most_common_value equals NaN - the next most common value. Otherwise - None

- most_common_not_null_value_percentage - the percentage of most_common_not_null_value if it is defined.

    If most_common_not_null_value is not defined, equals None too.
```

Metrics for numeric features only:

```
- infinite_count - quantity infinite values (for numeric features only)

- infinite_percentage - the percentage of infinite values (for numeric features only)

- percentile_25 - 25% percentile for meaningful values

- percentile_50 - 50% percentile for meaningful values

- percentile_75 - 75% percentile for meaningful values

- mean - the sum of the meaningful values divided by the number of the meaningful values

- std - standard deviation of the values
```

Metrics for category features only:

* new\_in\_current\_values\_count - quantity of new values in the current dataset after the reference

  ```
    Defined for reference dataset only.
  ```

  * new\_in\_current\_values\_count - quantity of values in the reference dataset that not presented in the current

    Defined for reference dataset only.

#### Attributes:

&#x20;    **count : int = 0**

&#x20;    **feature\_type : str**

&#x20;    **infinite\_count : Optional\[int] = None**

&#x20;    **infinite\_percentage : Optional\[float] = None**

&#x20;    **max : Optional\[Union\[int, float, bool, str]] = None**

&#x20;    **mean : Optional\[float] = None**

&#x20;    **min : Optional\[Union\[int, float, bool, str]] = None**

&#x20;    **missing\_count : Optional\[int] = None**

&#x20;    **missing\_percentage : Optional\[float] = None**

&#x20;    **most\_common\_not\_null\_value : Optional\[Union\[int, float, bool, str]] = None**

&#x20;    **most\_common\_not\_null\_value\_percentage : Optional\[float] = None**

&#x20;    **most\_common\_value : Optional\[Union\[int, float, bool, str]] = None**

&#x20;    **most\_common\_value\_percentage : Optional\[float] = None**

&#x20;    **new\_in\_current\_values\_count : Optional\[int] = None**

&#x20;    **number\_of\_rows : int = 0**

&#x20;    **percentile\_25 : Optional\[float] = None**

&#x20;    **percentile\_50 : Optional\[float] = None**

&#x20;    **percentile\_75 : Optional\[float] = None**

&#x20;    **std : Optional\[float] = None**

&#x20;    **unique\_count : Optional\[int] = None**

&#x20;    **unique\_percentage : Optional\[float] = None**

&#x20;    **unused\_in\_current\_values\_count : Optional\[int] = None**

#### Methods:

&#x20;    **as\_dict()**

&#x20;    **is\_category()**

Checks that the object store stats for a category feature

&#x20;    **is\_datetime()**

Checks that the object store stats for a datetime feature

&#x20;    **is\_numeric()**

Checks that the object store stats for a numeric feature

### calculate\_category\_column\_correlations(column\_name: str, dataset: DataFrame, columns: List\[str])

For category columns calculate cramer\_v correlation

### calculate\_column\_distribution(column: Series, column\_type: str)

### calculate\_correlations(dataset: DataFrame, columns: [DatasetColumns](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.data_operations.DatasetColumns))

### calculate\_cramer\_v\_correlation(column\_name: str, dataset: DataFrame, columns: List\[str])

### calculate\_data\_quality\_stats(dataset: DataFrame, columns: [DatasetColumns](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.data_operations.DatasetColumns), task: Optional\[str])

### calculate\_numerical\_column\_correlations(column\_name: str, dataset: DataFrame, columns: List\[str])

### get\_features\_stats(feature: Series, feature\_type: str)

### get\_pairwise\_correlation(df, func: Callable\[\[Series, Series], float])

Compute pairwise correlation of columns\
:param df: initial data frame.\
:param func: function for computing pairwise correlation.

* **Returns**

  Correlation matrix.

### get\_rows\_count(data: Union\[DataFrame, Series])

Count quantity of rows in a dataset

## regression\_performance module <a href="#module-evidently.calculations.regression_performance" id="module-evidently.calculations.regression_performance"></a>

### class ErrorWithQuantiles(error, quantile\_top, quantile\_other)

Bases: `object`

### class FeatureBias(feature\_type: str, majority: float, under: float, over: float, range: float)

Bases: `object`

#### Attributes:

&#x20;    **feature\_type : str**

&#x20;    **majority : float**

&#x20;    **over : float**

&#x20;    **range : float**

&#x20;    **under : float**

#### Methods:

&#x20;    **as\_dict(prefix)**

### class RegressionPerformanceMetrics(mean\_error: float, mean\_abs\_error: float, mean\_abs\_perc\_error: float, error\_std: float, abs\_error\_max: float, abs\_error\_std: float, abs\_perc\_error\_std: float, error\_normality: dict, underperformance: dict, error\_bias: dict)

Bases: `object`

#### Attributes:

&#x20;    **abs\_error\_max : float**

&#x20;    **abs\_error\_std : float**

&#x20;    **abs\_perc\_error\_std : float**

&#x20;    **error\_bias : dict**

&#x20;    **error\_normality : dict**

&#x20;    **error\_std : float**

&#x20;    **mean\_abs\_error : float**

&#x20;    **mean\_abs\_perc\_error : float**

&#x20;    **mean\_error : float**

&#x20;    **underperformance : dict**

### calculate\_regression\_performance(dataset: DataFrame, columns: [DatasetColumns](https://docs-old.evidentlyai.com/reference/api-reference/pages/9O7LQ1v4Gn98SSrnqpix#evidently.utils.data_operations.DatasetColumns), error\_bias\_prefix: str)

### error\_bias\_table(dataset, err\_quantiles, num\_feature\_names, cat\_feature\_names)

### error\_with\_quantiles(dataset, prediction\_column, target\_column, quantile: float)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-old.evidentlyai.com/reference/api-reference/evidently.calculations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
