# evidently.calculations.stattests

Available statistical tests. For detailed information about statistical tests see module documentation.

## Submodules

## anderson\_darling\_stattest module <a href="#module-evidently.calculations.stattests.anderson_darling_stattest" id="module-evidently.calculations.stattests.anderson_darling_stattest"></a>

Anderson-Darling test of two samples.

Name: “anderson”

Import:

```python
>>> from evidently.calculations.stattests import anderson_darling_test
```

Properties:

* only for numerical features
* returns p-value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import anderson_darling_test
>>> options = DataDriftOptions(all_features_stattest=anderson_darling_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="anderson")
```

## chisquare\_stattest module <a href="#module-evidently.calculations.stattests.chisquare_stattest" id="module-evidently.calculations.stattests.chisquare_stattest"></a>

Chisquare test of two samples.

Name: “chisquare”

Import:

```python
>>> from evidently.calculations.stattests import chi_stat_test
```

Properties:

* only for categorical features
* returns p-value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import chi_stat_test
>>> options = DataDriftOptions(all_features_stattest=chi_stat_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="chisquare")
```

## cramer\_von\_mises\_stattest module <a href="#module-evidently.calculations.stattests.cramer_von_mises_stattest" id="module-evidently.calculations.stattests.cramer_von_mises_stattest"></a>

Cramer-Von-mises test of two samples.

Name: “cramer\_von\_mises”

Import:

```python
>>> from evidently.calculations.stattests import cramer_von_mises
```

Properties:

* only for numerical features
* returns p-value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import cramer_von_mises
>>> options = DataDriftOptions(all_features_stattest=cramer_von_mises)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="cramer_von_mises")
```

### class CramerVonMisesResult(statistic, pvalue)

Bases: `object`

## energy\_distance module <a href="#module-evidently.calculations.stattests.energy_distance" id="module-evidently.calculations.stattests.energy_distance"></a>

Energy-distance test of two samples.

Name: “ed”

Import:

```python
>>> from evidently.calculations.stattests import energy_dist_test
```

Properties:

* only for numerical features
* returns p-value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import energy_dist_test
>>> options = DataDriftOptions(all_features_stattest=energy_dist_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="ed")
```

## epps\_singleton\_stattest module <a href="#module-evidently.calculations.stattests.epps_singleton_stattest" id="module-evidently.calculations.stattests.epps_singleton_stattest"></a>

Epps-Singleton test of two samples.

Name: “es”

Import:

```python
>>> from evidently.calculations.stattests import epps_singleton_test
```

Properties:

* only for numerical features
* returns p-value
* default threshold 0.05

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import epps_singleton_test
>>> options = DataDriftOptions(all_features_stattest=epps_singleton_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="es")
```

## fisher\_exact\_stattest module <a href="#module-evidently.calculations.stattests.fisher_exact_stattest" id="module-evidently.calculations.stattests.fisher_exact_stattest"></a>

Fisher’s exact test of two samples.

Name: “fisher\_exact”

Import:

```python
>>> from evidently.calculations.stattests import fisher_exact_test
```

Properties:

* only for categorical features
* returns p-value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import fisher_exact_test
>>> options = DataDriftOptions(all_features_stattest=fisher_exact_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="fisher_exact")
```

## g\_stattest module <a href="#module-evidently.calculations.stattests.g_stattest" id="module-evidently.calculations.stattests.g_stattest"></a>

G-test of two samples.

Name: “g\_test”

Import:

```python
>>> from evidently.calculations.stattests import g_test
```

Properties:

* only for categorical features
* returns p-value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import g_test
>>> options = DataDriftOptions(all_features_stattest=g_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="g_test")
```

## hellinger\_distance module <a href="#module-evidently.calculations.stattests.hellinger_distance" id="module-evidently.calculations.stattests.hellinger_distance"></a>

Hellinger distance of two samples.

Name: “hellinger”

Import:

```python
>>> from evidently.calculations.stattests import hellinger_stat_test
```

Properties:

* only for categorical and numerical features
* returns distance

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import hellinger_stat_test
>>> options = DataDriftOptions(all_features_stattest=hellinger_stat_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="hellinger")
```

## jensenshannon module <a href="#module-evidently.calculations.stattests.jensenshannon" id="module-evidently.calculations.stattests.jensenshannon"></a>

Jensen-Shannon distance of two samples.

Name: “jensenshannon”

Import:

```python
>>> from evidently.calculations.stattests import jensenshannon_stat_test
```

Properties:

* only for categorical and numerical features
* returns distance

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import jensenshannon_stat_test
>>> options = DataDriftOptions(all_features_stattest=jensenshannon_stat_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="jensenshannon")
```

## kl\_div module <a href="#module-evidently.calculations.stattests.kl_div" id="module-evidently.calculations.stattests.kl_div"></a>

Kullback-Leibler divergence of two samples.

Name: “kl\_div”

Import:

```python
>>> from evidently.calculations.stattests import kl_div_stat_test
```

Properties:

* only for categorical and numerical features
* returns divergence

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import kl_div_stat_test
>>> options = DataDriftOptions(all_features_stattest=kl_div_stat_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="kl_div")
```

## ks\_stattest module <a href="#module-evidently.calculations.stattests.ks_stattest" id="module-evidently.calculations.stattests.ks_stattest"></a>

Kolmogorov-Smirnov test of two samples.

Name: “ks”

Import:

```python
>>> from evidently.calculations.stattests import ks_stat_test
```

Properties:

* only for numerical features
* returns p-value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import ks_stat_test
>>> options = DataDriftOptions(all_features_stattest=ks_stat_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="ks")
```

## mann\_whitney\_urank\_stattest module <a href="#module-evidently.calculations.stattests.mann_whitney_urank_stattest" id="module-evidently.calculations.stattests.mann_whitney_urank_stattest"></a>

Mann-Whitney U-rank test of two samples.

Name: “mannw”

Import:

```python
>>> from evidently.calculations.stattests import mann_whitney_u_stat_test
```

Properties:

* only for numerical features
* returns p-value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import mann_whitney_u_stat_test
>>> options = DataDriftOptions(all_features_stattest=mann_whitney_u_stat_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="mannw")
```

## psi module <a href="#module-evidently.calculations.stattests.psi" id="module-evidently.calculations.stattests.psi"></a>

PSI of two samples.

Name: “psi”

Import:

```python
>>> from evidently.calculations.stattests import psi_stat_test
```

Properties:

* only for categorical and numerical features
* returns PSI value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import psi_stat_test
>>> options = DataDriftOptions(all_features_stattest=psi_stat_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="psi")
```

## registry module <a href="#module-evidently.calculations.stattests.registry" id="module-evidently.calculations.stattests.registry"></a>

### class StatTest(name: str, display\_name: str, func: Callable\[\[pandas.core.series.Series, pandas.core.series.Series, str, float], Tuple\[float, bool]], allowed\_feature\_types: List\[str], default\_threshold: float = 0.05)

Bases: `object`

#### Attributes:

&#x20;    **allowed\_feature\_types : List\[str]**

&#x20;    **default\_threshold : float = 0.05**

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

&#x20;    **func : Callable\[\[Series, Series, str, float], Tuple\[float, bool]]**

&#x20;    **name : str**

### exception StatTestInvalidFeatureTypeError(stattest\_name: str, feature\_type: str)

Bases: `ValueError`

### exception StatTestNotFoundError(stattest\_name: str)

Bases: `ValueError`

### class StatTestResult(drift\_score: float, drifted: bool, actual\_threshold: float)

Bases: `object`

#### Attributes:

&#x20;    **actual\_threshold : float**

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

&#x20;    **drifted : bool**

### get\_stattest(reference\_data: Series, current\_data: Series, feature\_type: str, stattest\_func: Optional\[Union\[str, Callable\[\[Series, Series, str, float], Tuple\[float, bool]], StatTest]])

### register\_stattest(stat\_test: StatTest)

## t\_test module <a href="#module-evidently.calculations.stattests.t_test" id="module-evidently.calculations.stattests.t_test"></a>

T test of two samples.

Name: “t\_test”

Import:

```python
>>> from evidently.calculations.stattests import t_test
```

Properties:

* only for numerical features
* returns p-value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import t_test
>>> options = DataDriftOptions(all_features_stattest=t_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="t_test")
```

## tvd\_stattest module <a href="#module-evidently.calculations.stattests.tvd_stattest" id="module-evidently.calculations.stattests.tvd_stattest"></a>

Total variation distance of two samples.

Name: “TVD”

Import:

```python
>>> from evidently.calculations.stattests import tvd_test
```

Properties:

* only for numerical features
* returns distance

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import tvd_test
>>> options = DataDriftOptions(all_features_stattest=tvd_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="TVD")
```

## utils module <a href="#module-evidently.calculations.stattests.utils" id="module-evidently.calculations.stattests.utils"></a>

### generate\_fisher2x2\_contingency\_table(reference\_data: Series, current\_data: Series)

Generate 2x2 contingency matrix for fisher exact test :param reference\_data: reference data :param current\_data: current data

* **Raises**

  `ValueError` – if reference\_data and current\_data are not of equal length
* **Returns**

  contingency\_matrix for binary data
* **Return type**

  contingency\_matrix

### get\_binned\_data(reference\_data: Series, current\_data: Series, feature\_type: str, n: int, feel\_zeroes: bool = True)

Split variable into n buckets based on reference quantiles :param reference\_data: reference data :param current\_data: current data :param feature\_type: feature type :param n: number of quantiles

* **Returns**

  % of records in each bucket for reference current\_percents: % of records in each bucket for current
* **Return type**

  reference\_percents

### get\_unique\_not\_nan\_values\_list\_from\_series(current\_data: Series, reference\_data: Series)

Get unique values from current and reference series, drop NaNs

### permutation\_test(reference\_data, current\_data, observed, test\_statistic\_func, iterations=100)

Perform a two-sided permutation test :param reference\_data: reference data :param current\_data: current data :param observed: observed value :param test\_statistic\_func: the test statistic function :param iterations: number of times to permute

* **Returns**

  two-sided p\_value
* **Return type**

  p\_value

## wasserstein\_distance\_norm module <a href="#module-evidently.calculations.stattests.wasserstein_distance_norm" id="module-evidently.calculations.stattests.wasserstein_distance_norm"></a>

Wasserstein distance of two samples.

Name: “wasserstein”

Import:

```python
>>> from evidently.calculations.stattests import wasserstein_stat_test
```

Properties:

* only for numerical features
* returns p-value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import wasserstein_stat_test
>>> options = DataDriftOptions(all_features_stattest=wasserstein_stat_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="wasserstein")
```

## z\_stattest module <a href="#module-evidently.calculations.stattests.z_stattest" id="module-evidently.calculations.stattests.z_stattest"></a>

Mann-Whitney U-rank test of two samples.

Name: “mannw”

Import:

```python
>>> from evidently.calculations.stattests import mann_whitney_u_stat_test
```

Properties:

* only for numerical features
* returns p-value

### Example

Using by object:

```python
>>> from evidently.options import DataDriftOptions
>>> from evidently.calculations.stattests import mann_whitney_u_stat_test
>>> options = DataDriftOptions(all_features_stattest=mann_whitney_u_stat_test)
```

Using by name:

```python
>>> from evidently.options import DataDriftOptions
>>> options = DataDriftOptions(all_features_stattest="mannw")
```

### proportions\_diff\_z\_stat\_ind(ref: DataFrame, curr: DataFrame)

### proportions\_diff\_z\_test(z\_stat, alternative='two-sided')
