Skip to content

AutoETS raises IndexError #646

@Joushkay

Description

@Joushkay

What happened + What you expected to happen

I'm using AutoETS among other methods and the forecast method is working fine but when I'm doing cross_validation, I get this error: IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed with the corresponding traceback here:

File "/home/joiyushkay/dev/biocartis_demand_planning/forecast_assessment/apps/core/data_process/forecasting.py", line 47, in get_forecasts
    evaluation_df = evaluation.evaluate()
                    ^^^^^^^^^^^^^^^^^^^^^
  File "/home/joiyushkay/dev/biocartis_demand_planning/forecast_assessment/apps/core/data_process/forecasting.py", line 97, in evaluate
    cross_validation_df = self.sf.cross_validation(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/joiyushkay/dev/biocartis_demand_planning/.venv/lib/python3.12/site-packages/statsforecast/core.py", line 1588, in cross_validation
    return super().cross_validation(
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/joiyushkay/dev/biocartis_demand_planning/.venv/lib/python3.12/site-packages/statsforecast/core.py", line 1007, in cross_validation
    res_fcsts = self.ga.cross_validation(
                ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/joiyushkay/dev/biocartis_demand_planning/.venv/lib/python3.12/site-packages/statsforecast/core.py", line 339, in cross_validation
    raise error
  File "/home/joiyushkay/dev/biocartis_demand_planning/.venv/lib/python3.12/site-packages/statsforecast/core.py", line 336, in cross_validation
    res_i = model.forecast(**forecast_kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/joiyushkay/dev/biocartis_demand_planning/.venv/lib/python3.12/site-packages/statsforecast/models.py", line 790, in forecast
    fcst = forecast_ets(mod, h=h, level=level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/joiyushkay/dev/biocartis_demand_planning/.venv/lib/python3.12/site-packages/statsforecast/ets.py", line 1241, in forecast_ets
    fcst = pegelsfcast_C(h, obj)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/joiyushkay/dev/biocartis_demand_planning/.venv/lib/python3.12/site-packages/statsforecast/ets.py", line 929, in pegelsfcast_C
    states = obj["states"][-1, :]
             ~~~~~~~~~~~~~^^^^^^^
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed

Versions / Dependencies

Click to expand Dependencies: statsforecast 2.0.1

Reproducible example

class ForecastEvaluation:
    def __init__(self, pannel: pd.DataFrame, horizon: int, sf: StatsForecast):
        self.pannel = pannel
        self.horizon = horizon
        self.sf = sf

    def evaluate(self):
        cross_validation_df = self.sf.cross_validation(
            df=self.pannel,
            h=self.horizon,
            step_size=self.horizon // 2,
            n_windows=5
        )
        return cross_validation_df

Issue Severity

High: It blocks me from completing my task.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions