class_docstr: StatsForecast Multiple Seasonal-Trend decomposition using LOESS model.
  
  Direct interface to ``statsforecast.models.MSTL``,
  from ``statsforecast`` [1]_ by Nixtla, with a back-adapter that allows
  to use ``sktime`` forecasters as trend forecasters.
  
  The MSTL (Multiple Seasonal-Trend decomposition using LOESS) decomposes the time
  series in multiple seasonalities using LOESS. Then forecasts the trend using
  a custom non-seasonal model (`trend_forecaster`) and each seasonality using a
  SeasonalNaive model. MSTL requires the input time series data to be univariate.
  
  Parameters
  ----------
  season_length : Union[int, List[int]]
      Number of observations per unit of time. For multiple seasonalities use a
      list.
  trend_forecaster : estimator, optional, default=StatsForecastAutoETS()
      Sktime estimator used to make univariate forecasts. Multivariate estimators are
      not supported.
  stl_kwargs : dict, optional
      Extra arguments to pass to [`statsmodels.tsa.seasonal.STL`]
      (https://www.statsmodels.org/dev/generated/statsmodels.tsa.seasonal.STL.html#statsmodels.tsa.seasonal.STL).
      The `period` and `seasonal` arguments are reserved.
  pred_int_kwargs : dict, optional
      Extra arguments to pass to [`statsforecast.utils.ConformalIntervals`].
  
  References
  ----------
  .. [1]
      https://nixtla.github.io/statsforecast/src/core/models.html#mstl
  
  Examples
  --------
  >>> from sktime.datasets import load_airline
  >>> from sktime.forecasting.statsforecast import StatsForecastMSTL
  
  >>> y = load_airline()
  >>> model = StatsForecastMSTL(season_length=[3,12]) # doctest: +SKIP
  >>> fitted_model = model.fit(y=y) # doctest: +SKIP
  >>> y_pred = fitted_model.predict(fh=[1,2,3]) # doctest: +SKIP
class_docstr_tok: ["StatsForecast","Multiple","Seasonal-Trend","decomposition","using","LOESS","model",".","Direct","interface","to","``","statsforecast.models.MSTL","``",",","from","``","statsforecast","``","[","1","]","_","by","Nixtla",",","with","a","back-adapter","that","allows","to","use","``","sktime","``","forecasters","as","trend","forecasters",".","The","MSTL","(","Multiple","Seasonal-Trend","decomposition","using","LOESS",")","decomposes","the","time","series","in","multiple","seasonalities","using","LOESS",".","Then","forecasts","the","trend","using","a","custom","non-seasonal","model","(","`","trend_forecaster","`",")","and","each","seasonality","using","a","SeasonalNaive","model",".","MSTL","requires","the","input","time","series","data","to","be","univariate",".","Parameters","--","--","--","--","--","season_length",":","Union","[","int",",","List","[","int","]","]","Number","of","observations","per","unit","of","time",".","For","multiple","seasonalities","use","a","list",".","trend_forecaster",":","estimator",",","optional",",","default=StatsForecastAutoETS","(",")","Sktime","estimator","used","to","make","univariate","forecasts",".","Multivariate","estimators","are","not","supported",".","stl_kwargs",":","dict",",","optional","Extra","arguments","to","pass","to","[","`","statsmodels.tsa.seasonal.STL","`","]","(","https",":","\/\/www.statsmodels.org\/dev\/generated\/statsmodels.tsa.seasonal.STL.html","#","statsmodels.tsa.seasonal.STL",")",".","The","`","period","`","and","`","seasonal","`","arguments","are","reserved",".","pred_int_kwargs",":","dict",",","optional","Extra","arguments","to","pass","to","[","`","statsforecast.utils.ConformalIntervals","`","]",".","References","--","--","--","--","--","..","[","1","]","https",":","\/\/nixtla.github.io\/statsforecast\/src\/core\/models.html","#","mstl","Examples","--","--","--","--",">",">",">","from","sktime.datasets","import","load_airline",">",">",">","from","sktime.forecasting.statsforecast","import","StatsForecastMSTL",">",">",">","y","=","load_airline","(",")",">",">",">","model","=","StatsForecastMSTL","(","season_length=","[","3,12","]",")","#","doctest",":","+SKIP",">",">",">","fitted_model","=","model.fit","(","y=y",")","#","doctest",":","+SKIP",">",">",">","y_pred","=","fitted_model.predict","(","fh=","[","1,2,3","]",")","#","doctest",":","+SKIP"]
code: def __init__(
      self,
      season_length: Union[int, List[int]],
      trend_forecaster=None,
      stl_kwargs: Optional[Dict] = None,
      pred_int_kwargs: Optional[Dict] = None,
  ):
      super().__init__()
  
      from sklearn.base import clone
  
      self.trend_forecaster = trend_forecaster
      self.season_length = season_length
      if trend_forecaster:
          self._trend_forecaster = clone(trend_forecaster)
      else:
          self._trend_forecaster = StatsForecastAutoETS(model="ZZN")
      self.stl_kwargs = stl_kwargs
      self.pred_int_kwargs = pred_int_kwargs
  
      # checks if trend_forecaster is already wrapped with
      # StatsForecastBackAdapter
      if not isinstance(
          self._trend_forecaster, StatsForecastBackAdapter
      ):
          # if trend_forecaster is sktime forecaster
          if isinstance(self._trend_forecaster, BaseForecaster):
              self._trend_forecaster = StatsForecastBackAdapter(
                  self._trend_forecaster
              )
          else:
              raise TypeError(
                  "The provided forecaster is not compatible with MSTL. Please ensure"
                  " that the forecaster you pass into the model is a sktime "
                  "forecaster."
              )
  
      # check if prediction interval kwargs are passed
      if self.pred_int_kwargs:
          from statsforecast.utils import ConformalIntervals
  
          self._trend_forecaster.prediction_intervals = (
              ConformalIntervals(**self.pred_int_kwargs)
          )
  
imports: from typing import Dict, List, Optional, Union
  from sktime.forecasting.base import BaseForecaster
  from sktime.forecasting.base.adapters._generalised_statsforecast import StatsForecastBackAdapter, _GeneralisedStatsForecastAdapter
  from sktime.utils.validation._dependencies import _check_soft_dependencies
label_desc: Use image node_id 1 to create a new StatsForecastMSTL object from inherited base classes: _GeneralisedStatsForecastAdapter with example: obj = StatsForecastMSTL(season_length, trend_forecaster, stl_kwargs, pred_int_kwargs)