Как исправить «Значение истинности ряда неоднозначно». ошибка в экспоненциальном сглаживании Холта

#python-3.x #pandas #statsmodels

#python-3.x #pandas #statsmodels

Вопрос:

Я использую метод Холта для экспоненциального сглаживания из пакета python statsmodels. Я пытаюсь создать прогнозы для некоторых данных временных рядов. Я могу создать 2 из 3 прогнозов. Когда я пытаюсь использовать экспоненциальную модель, а не аддитивную модель Холта, я получаю ошибку.

Я использую python 3.6.8 и statsmodels 0.9.0.

Это работает:

 fit1 = Holt(df1).fit(smoothing_level=0.8, smoothing_slope=0.2, optimized=False)
fcast1 = fit1.forecast(12).rename("Holt's linear trend")
  

Это не работает:

 fit2 = Holt(df1, exponential=True).fit(smoothing_level=0.8, smoothing_slope=0.2, optimized=False)
fcast2 = fit2.forecast(12).rename("Exponential trend")
  

Я получаю ошибку:

Ошибка значения: значение истинности ряда неоднозначно. Используйте.empty, a.bool(), a.item(), a.any() или a.all()

Комментарии:

1. Возможно, вы захотите включить полную обратную трассировку для своей ошибки, поскольку ошибка, с которой вы сталкиваетесь, очень распространена.

2. Я предполагаю, что вы передавали DataFrame , а не Series в Holt модель, что вызвало бы проблему, когда exponential=True . Попробуйте fit2 = Holt(df1.iloc[:,0], exponential=True).fit(smoothing_level=0.8, smoothing_slope=0.2, optimized=False) .

3. @Ian, большое тебе спасибо, что решил это! Спасибо!