Repository: alteryx/evalml (python)

Issue:
Compatibility with sktime 0.22.0 and beyond
New updates in sktime 0.22.0 changed some column naming ([release notes here](https://www.sktime.net/en/latest/changelog.html#forecasting-change-of-column-naming-for-univariate-probabilistic-forecasts)) - let's get this up to date since it will continue for future versions. Associated test failures can be seen [here](https://github.com/alteryx/evalml/actions/runs/5905221237/job/16018907515?pr=4280).

Pull request:
Make prediction intervals name more robust for sktime
Closes #4281

Patch:
diff --git a/docs/source/release_notes.rst b/docs/source/release_notes.rst
index c5e524cb..68e55f26 100644
--- a/docs/source/release_notes.rst
+++ b/docs/source/release_notes.rst
@@ -4,6 +4,7 @@ Release Notes
     * Enhancements
     * Fixes
     * Changes
+        * Updated ``ARIMARegressor`` to be compatible with sktime v0.22.0 and beyond :pr:`4283`
     * Documentation Changes
         * Removed erroneous warnings from Data Checks User Guide page and removed ``tqdm`` warning in all notebooks :pr:`4274`
     * Testing Changes
diff --git a/evalml/pipelines/components/estimators/regressors/arima_regressor.py b/evalml/pipelines/components/estimators/regressors/arima_regressor.py
index e1e4dc1b..dc1e54f9 100644
--- a/evalml/pipelines/components/estimators/regressors/arima_regressor.py
+++ b/evalml/pipelines/components/estimators/regressors/arima_regressor.py
@@ -229,8 +229,9 @@ class ARIMARegressor(Estimator):
         y_pred_intervals: pd.DataFrame,
         conf_int: float,
     ) -> Tuple[pd.Series, pd.Series]:
-        preds_lower = y_pred_intervals.loc(axis=1)[("Coverage", conf_int, "lower")]
-        preds_upper = y_pred_intervals.loc(axis=1)[("Coverage", conf_int, "upper")]
+        coverage_name = y_pred_intervals.columns[0][0]
+        preds_lower = y_pred_intervals.loc(axis=1)[(coverage_name, conf_int, "lower")]
+        preds_upper = y_pred_intervals.loc(axis=1)[(coverage_name, conf_int, "upper")]
         preds_lower.name = None
         preds_upper.name = None
         return preds_lower, preds_upper


Test patch:
diff --git a/evalml/tests/component_tests/test_arima_regressor.py b/evalml/tests/component_tests/test_arima_regressor.py
index 549b9622..1d816751 100644
--- a/evalml/tests/component_tests/test_arima_regressor.py
+++ b/evalml/tests/component_tests/test_arima_regressor.py
@@ -391,8 +391,10 @@ def test_arima_regressor_respects_use_covariates(mock_predict, mock_fit, ts_data
 
 
 @pytest.mark.parametrize("no_features", [True, False])
-def test_arima_regressor_prediction_intervals(no_features, ts_data):
+@pytest.mark.parametrize("y_name", [None, "y"])
+def test_arima_regressor_prediction_intervals(no_features, ts_data, y_name):
     X_train, X_test, y_train = ts_data(no_features=no_features)
+    y_train.name = y_name
 
     clf = ARIMARegressor(use_covariates=not no_features)
 
diff --git a/evalml/tests/dependency_update_check/latest_dependency_versions.txt b/evalml/tests/dependency_update_check/latest_dependency_versions.txt
index ad448470..dc2c54e5 100644
--- a/evalml/tests/dependency_update_check/latest_dependency_versions.txt
+++ b/evalml/tests/dependency_update_check/latest_dependency_versions.txt
@@ -29,7 +29,7 @@ scikit-optimize==0.9.0
 scipy==1.10.1
 seaborn==0.12.2
 shap==0.42.1
-sktime==0.21.1
+sktime==0.22.0
 statsmodels==0.14.0
 texttable==1.6.7
 tomli==2.0.1