Repository: sktime/sktime

Issue:
[BUG] ThetaForecaster fails to give prediction intevals for pd.DataFrames
**Describe the bug**
@fkiraly , yesterday you mentioned that pd.Series should not appear in the code. I feel that this is somehow connected.

I noticed that `ThetaForecaster` is unable to generate the prediction intervals when it's inside a `ForecastingPipeline`. It turns out that the problem is not with the pipeline but with the input being forced to be a `pd.DataFrame`.
The error i'm getting is:
```python
ValueError: Unable to coerce to Series, length must be 1: given 36
```

The problem is connected with the addition of `y_pred` with `sem` in  `_predict_quantiles`, in theta.py.
I'd offer a work around but I'm sure a temporal change of data type is not the best solution;-).

Btw, is it expected that `sem` is a pd.Float64Index instance?

Here's a toy example:
```python
pd.DataFrame([1,2])+pd.Float64Index([.1,.2])
```
<!--


-->

**To Reproduce**
<!--
Add a Minimal, Complete, and Verifiable example (for more details, see e.g. https://stackoverflow.com/help/mcve

If the code is too long, feel free to put it in a public gist and link it in the issue: https://gist.github.com
-->

```python
import pandas as pd
from sktime.forecasting.theta import ThetaForecaster
from sktime.forecasting.model_selection import temporal_train_test_split
from sktime.datasets import load_airline
y = load_airline()
y_train, y_test = temporal_train_test_split(y)

fp = ThetaForecaster(sp=12)
fp.fit(pd.DataFrame(y_train))
fp.predict_quantiles(fh=y_test.index)
```

**Expected behavior**
<!--
A clear and concise description of what you expected to happen.
-->
```python
import pandas as pd
from sktime.forecasting.theta import ThetaForecaster
from sktime.forecasting.model_selection import temporal_train_test_split
from sktime.datasets import load_airline
y = load_airline()
y_train, y_test = temporal_train_test_split(y)

fp = ThetaForecaster(sp=12)
fp.fit(y_train)
fp.predict_quantiles(fh=y_test.index)
```
**Additional context**
<!--
Add any other context about the problem here.
-->

**Versions**
<details>

<!--
Please run the following code snippet and paste the output here:
 
from sktime import show_versions; show_versions()
-->

System:
    python: 3.8.13 | packaged by conda-forge | (default, Mar 25 2022, 05:59:45) [MSC v.1929 64 bit (AMD64)]
executable: C:\Users\Mi\miniconda3\envs\sktime-dev\python.exe
   machine: Windows-10-10.0.22000-SP0

Python dependencies:
          pip: 22.0.4
   setuptools: 62.1.0
      sklearn: 1.0.2
       sktime: 0.11.2
  statsmodels: 0.13.2
        numpy: 1.22.3
        scipy: 1.8.0
       pandas: 1.4.2
   matplotlib: 3.5.1
       joblib: 1.1.0
        numba: 0.53.0
     pmdarima: 1.8.5
      tsfresh: None

</details>

<!-- Thanks for contributing! -->



Discussion:

Resolving patch:
diff --git a/sktime/forecasting/theta.py b/sktime/forecasting/theta.py
--- a/sktime/forecasting/theta.py
+++ b/sktime/forecasting/theta.py
@@ -149,6 +149,8 @@ def _predict(self, fh, X=None):
             The forecasters horizon with the steps ahead to to predict.
             Default is
             one-step ahead forecast, i.e. np.array([1]).
+        X : pd.DataFrame, optional (default=None)
+            Exogenous time series
 
         Returns
         -------
@@ -215,10 +217,10 @@ def _predict_quantiles(self, fh, X=None, alpha=None):
         pred_quantiles = pd.DataFrame(columns=index)
 
         sem = self.sigma_ * np.sqrt(
-            self.fh.to_relative(self.cutoff) * self.initial_level_ ** 2 + 1
+            self.fh.to_relative(self.cutoff) * self.initial_level_**2 + 1
         )
 
-        y_pred = super(ThetaForecaster, self).predict(fh, X)
+        y_pred = super(ThetaForecaster, self)._predict(fh, X)
 
         # we assume normal additive noise with sem variance
         for a in alpha:


Test patch: