You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-python/statsmodels/files/statsmodels-0.12.2-new-pand...

74 lines
2.7 KiB

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