summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/statsmodels/files/statsmodels-0.12.2-new-pandas-scipy.patch')
-rw-r--r--dev-python/statsmodels/files/statsmodels-0.12.2-new-pandas-scipy.patch122
1 files changed, 0 insertions, 122 deletions
diff --git a/dev-python/statsmodels/files/statsmodels-0.12.2-new-pandas-scipy.patch b/dev-python/statsmodels/files/statsmodels-0.12.2-new-pandas-scipy.patch
deleted file mode 100644
index d11cd08ecf6f..000000000000
--- a/dev-python/statsmodels/files/statsmodels-0.12.2-new-pandas-scipy.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 4f32f3990fbba0ee440af47e23a9354fdb7a0285 Mon Sep 17 00:00:00 2001
-From: Kevin Sheppard <kevin.sheppard@gmail.com>
-Date: Fri, 12 Mar 2021 10:52:38 +0000
-Subject: [PATCH] MAINT: Fix issues arising from future changes
-
-Fix issues due to changes in SciPy and pandas
----
- statsmodels/regression/tests/test_rolling.py | 6 ++++--
- statsmodels/stats/descriptivestats.py | 8 +++++++-
- statsmodels/stats/stattools.py | 4 +++-
- 3 files changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/statsmodels/regression/tests/test_rolling.py b/statsmodels/regression/tests/test_rolling.py
-index 050de605f..f02e076d6 100644
---- a/statsmodels/regression/tests/test_rolling.py
-+++ b/statsmodels/regression/tests/test_rolling.py
-@@ -1,5 +1,6 @@
- from io import BytesIO
- from itertools import product
-+import warnings
-
- import numpy as np
- import pandas as pd
-@@ -261,8 +262,9 @@ def test_plot():
- res.plot_recursive_coefficient(variables="x4")
-
- fig = plt.Figure()
-- with pytest.warns(Warning):
-- # Just silence the warning
-+ # Just silence the warning
-+ with warnings.catch_warnings():
-+ warnings.simplefilter("ignore")
- out = res.plot_recursive_coefficient(fig=fig)
- assert out is fig
- res.plot_recursive_coefficient(alpha=None, figsize=(30, 7))
-diff --git a/statsmodels/stats/descriptivestats.py b/statsmodels/stats/descriptivestats.py
-index 96d455ca1..d5ad2f2a5 100644
---- a/statsmodels/stats/descriptivestats.py
-+++ b/statsmodels/stats/descriptivestats.py
-@@ -446,8 +446,14 @@ class Description:
- else:
- iqr = mean
-
-+ def _safe_jarque_bera(c):
-+ a = np.asarray(c)
-+ if a.shape[0] < 2:
-+ return (np.nan,) * 4
-+ return jarque_bera(a)
-+
- jb = df.apply(
-- lambda x: list(jarque_bera(x.dropna())), result_type="expand"
-+ lambda x: list(_safe_jarque_bera(x.dropna())), result_type="expand"
- ).T
- nan_mean = mean.copy()
- nan_mean.loc[nan_mean == 0] = np.nan
-diff --git a/statsmodels/stats/stattools.py b/statsmodels/stats/stattools.py
-index d349c472d..2ee1a6e0b 100644
---- a/statsmodels/stats/stattools.py
-+++ b/statsmodels/stats/stattools.py
-@@ -118,7 +118,9 @@ def jarque_bera(resids, axis=0):
- where n is the number of data points, S is the sample skewness, and K is
- the sample kurtosis of the data.
- """
-- resids = np.asarray(resids)
-+ resids = np.atleast_1d(np.asarray(resids, dtype=float))
-+ if resids.size < 2:
-+ raise ValueError("resids must contain at least 2 elements")
- # Calculate residual skewness and kurtosis
- skew = stats.skew(resids, axis=axis)
- kurtosis = 3 + stats.kurtosis(resids, axis=axis)
---
-2.32.0
-
-From a9e21aef508ea98da8c5889547b8e5748986dae1 Mon Sep 17 00:00:00 2001
-From: Kevin Sheppard <kevin.k.sheppard@gmail.com>
-Date: Wed, 7 Apr 2021 09:52:25 +0100
-Subject: [PATCH] MAINT: Fix descriptive stats with extension dtypes
-
-Add special path for extension dtypes to remove N/A
----
- statsmodels/stats/descriptivestats.py | 17 +++++++++++++++--
- 1 file changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/statsmodels/stats/descriptivestats.py b/statsmodels/stats/descriptivestats.py
-index d5ad2f2a5..0fd3eb542 100644
---- a/statsmodels/stats/descriptivestats.py
-+++ b/statsmodels/stats/descriptivestats.py
-@@ -441,8 +441,20 @@ class Description:
- loc = count > 0
- mode_freq = np.full(mode.shape[0], np.nan)
- mode_freq[loc] = mode_counts[loc] / count.loc[loc]
-+ # TODO: Workaround for pandas AbstractMethodError in extension
-+ # types. Remove when quantile is supported for these
-+ _df = df
-+ try:
-+ from pandas.api.types import is_extension_array_dtype
-+ _df = df.copy()
-+ for col in df:
-+ if is_extension_array_dtype(df[col].dtype):
-+ _df[col] = _df[col].astype(object).fillna(np.nan)
-+ except ImportError:
-+ pass
-+
- if df.shape[1] > 0:
-- iqr = df.quantile(0.75) - df.quantile(0.25)
-+ iqr = _df.quantile(0.75) - _df.quantile(0.25)
- else:
- iqr = mean
-
-@@ -493,7 +505,8 @@ class Description:
- return results_df
- # Pandas before 1.0 cannot handle empty DF
- if df.shape[1] > 0:
-- perc = df.quantile(self._percentiles / 100).astype(float)
-+ # TODO: Remove when extension types support quantile
-+ perc = _df.quantile(self._percentiles / 100).astype(float)
- else:
- perc = pd.DataFrame(index=self._percentiles / 100, dtype=float)
- if np.all(np.floor(100 * perc.index) == (100 * perc.index)):
---
-2.32.0
-