Repository: sktime/sktime

Issue:
[ENH] Adding another and longer dataset with exog data to sktime.datasets
**Is your feature request related to a problem? Please describe.**
The current dataset with exog data for forecasting is `load_longley()` but it has only `len(y)` of `16`, so e.g. `AutoARIMA` fails with this when doing a default  `train_test_split`. Also for vector forecasting, which is probably coming soon, we might need a longer dataset for some forecasters.

**Describe the solution you'd like**
We can e.g. `macrodata` from `statsmodels` and pick one column as target `y`:
```python
import statsmodels.api as sm
import pandas as pd

df = sm.datasets.macrodata.load_pandas().data
df.index = pd.PeriodIndex(year=df["year"], quarter=df["quarter"])
# set unemployment rate as y
y = df["unemp"]
# set other columns as X
X = df.drop(columns=["unemp"])
```
I am open for other established datasets that we might use.

**Additional context**
Vector forecasting


Discussion:
Macro data makes a lot of sense to include. Not only will it help illustrate exogenous and multivariate functionaltiy, but it is also a good dataset to compare theoretically driven forecasting models (e.g. models based on structural relationships from economic theory) relative to more purely empirical/ML approaches.

Resolving patch:
diff --git a/sktime/datasets/__init__.py b/sktime/datasets/__init__.py
--- a/sktime/datasets/__init__.py
+++ b/sktime/datasets/__init__.py
@@ -18,20 +18,24 @@
     "load_PBS_dataset",
     "load_japanese_vowels",
     "load_acsf1",
+    "load_macroeconomic",
 ]
 
-from sktime.datasets._data_io import load_airline
-from sktime.datasets._data_io import load_gunpoint
-from sktime.datasets._data_io import load_arrow_head
-from sktime.datasets._data_io import load_basic_motions
-from sktime.datasets._data_io import load_osuleaf
-from sktime.datasets._data_io import load_italy_power_demand
-from sktime.datasets._data_io import load_japanese_vowels
-from sktime.datasets._data_io import load_longley
-from sktime.datasets._data_io import load_lynx
-from sktime.datasets._data_io import load_shampoo_sales
-from sktime.datasets._data_io import load_UCR_UEA_dataset
-from sktime.datasets._data_io import load_unit_test
-from sktime.datasets._data_io import load_uschange
-from sktime.datasets._data_io import load_PBS_dataset
-from sktime.datasets._data_io import load_acsf1
+from sktime.datasets._data_io import (
+    load_acsf1,
+    load_airline,
+    load_arrow_head,
+    load_basic_motions,
+    load_gunpoint,
+    load_italy_power_demand,
+    load_japanese_vowels,
+    load_longley,
+    load_lynx,
+    load_macroeconomic,
+    load_osuleaf,
+    load_PBS_dataset,
+    load_shampoo_sales,
+    load_UCR_UEA_dataset,
+    load_unit_test,
+    load_uschange,
+)
diff --git a/sktime/datasets/_data_io.py b/sktime/datasets/_data_io.py
--- a/sktime/datasets/_data_io.py
+++ b/sktime/datasets/_data_io.py
@@ -8,6 +8,7 @@
 
 import numpy as np
 import pandas as pd
+import statsmodels.api as sm
 
 from sktime.utils.data_io import load_from_tsfile_to_dataframe
 
@@ -26,6 +27,7 @@
     "load_uschange",
     "load_UCR_UEA_dataset",
     "load_PBS_dataset",
+    "load_macroeconomic",
 ]
 
 __author__ = [
@@ -36,6 +38,7 @@
     "Emiliathewolf",
     "TonyBagnall",
     "yairbeer",
+    "aiwalter",
 ]
 
 DIRNAME = "data"
@@ -837,3 +840,43 @@ def load_PBS_dataset():
     y.index = pd.PeriodIndex(y.index, freq="M", name="Period")
     y.name = "Number of scripts"
     return y
+
+
+def load_macroeconomic():
+    """
+    Load the US Macroeconomic Data [1].
+
+    Returns
+    -------
+    y : pd.DataFrame
+     Time series
+
+    Notes
+    -----
+    US Macroeconomic Data for 1959Q1 - 2009Q3.
+
+    Dimensionality:     multivariate, 14
+    Series length:      203
+    Frequency:          Quarterly
+    Number of cases:    1
+
+    This data is kindly wrapped via `statsmodels.datasets.macrodata`.
+
+    References
+    ----------
+    ..[1] Wrapped via statsmodels:
+          https://www.statsmodels.org/dev/datasets/generated/macrodata.html
+    ..[2] Data Source: FRED, Federal Reserve Economic Data, Federal Reserve
+          Bank of St. Louis; http://research.stlouisfed.org/fred2/;
+          accessed December 15, 2009.
+    ..[3] Data Source: Bureau of Labor Statistics, U.S. Department of Labor;
+          http://www.bls.gov/data/; accessed December 15, 2009.
+    """
+    y = sm.datasets.macrodata.load_pandas().data
+    y["year"] = y["year"].astype(int).astype(str)
+    y["quarter"] = y["quarter"].astype(int).astype(str).apply(lambda x: "Q" + x)
+    y["time"] = y["year"] + "-" + y["quarter"]
+    y.index = pd.PeriodIndex(data=y["time"], freq="Q", name="Period")
+    y = y.drop(columns=["year", "quarter", "time"])
+    y.name = "US Macroeconomic Data"
+    return y


Test patch: