我遇到了同样的问题。我可以在Mac上运行的同一脚本不在Windows上运行。你有相同的区别吗?也许是与环境有关的问题?
此代码:
import numpy as np
from statsmodels.tsa.api import ExponentialSmoothing
time_series = np.array([1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4])
print(ExponentialSmoothing(time_series, seasonal_periods=4, trend=None, seasonal="add").fit().forecast(4)) # [1. 2. 3. 4.]
在无警告的情况下运行并正确打印[1。 2. 3. 4.]在我的计算机上(带有Visual Studio Code 1.45.1的Anconda Navigator 1.9.12,运行python 3.7.6,numpy 1.18.1,statsmodels 0.11.0)。
然而,在我同事的计算机上(运行Python 3.8的Visual Studio代码,numpy 1.18.4,statsmodels 0.11.0),相同的代码会在正确打印之前触发以下警告[1。 2. 3. 4。]:
... \ statsmodels \ tsa \ holtwinters.py:725:RuntimeWarning:在less_equal loc = initial_p <= lb]中遇到的无效值>
... \ statsmodels \ tsa \ holtwinters.py:731:RuntimeWarning:在Greater_equal loc = initial_p> = ub中遇到无效值
... \ statsmodels \ tsa \ holtwinters.py:956:RuntimeWarning:被log aic = self.nobs * np.log(sse / self.nobs)+ k * 2]遇到的零除
... \ statsmodels \ tsa \ holtwinters.py:962:RuntimeWarning:除以log bic中遇到的零bic = self.nobs * np.log(sse / self.nobs)+ k * np.log(self.nobs )
我们该如何解决问题,以便我的同事不会收到这些RuntimeWarnings?还是我们不应该担心它们?非常感谢。
更新:我想我找到了答案。我的测试数据太完美了,警告是由此引起的。在数据中引入抖动可以消除警告。在此基础上,我认为无论哪种方式我们都可以忽略警告:
import numpy as np from statsmodels.tsa.api import ExponentialSmoothing time_series = np.array([1.2, 1.8, 3.2, 3.8, 1, 2, 3, 4, 1.1, 1.9, 3.1, 3.9, 1, 2, 3, 4]) print(ExponentialSmoothing(time_series, seasonal_periods=4, trend=None, seasonal="add").fit().forecast(4)) # [1.07500096 1.92499933 3.07500112 3.92499949]
另一个更新:不是,不是吗。在我的计算机上,我仍然没有收到任何警告,但是我的同事却收到了
... \ statsmodels \ tsa \ holtwinters.py:725:RuntimeWarning:在less_equal loc = initial_p <= lb]中遇到的无效值>
... \ statsmodels \ tsa \ holtwinters.py:731:RuntimeWarning:在Greater_equal loc = initial_p> = ub中遇到无效值
此代码:从statsmodels.tsa.api中将numpy作为np导入import exponentialsmoothing time_series = np.array([1,2,3,4,1,2,3,4,1,2,3,4,1, 2,3,4])print(ExponentialSmoothing(timeseries,season_periods = 4,...
我遇到了同样的问题。我可以在Mac上运行的同一脚本不在Windows上运行。你有相同的区别吗?也许是与环境有关的问题?
我遇到了同样的问题。我可以在Mac上运行的同一脚本不在Windows上运行。你有相同的区别吗?也许是与环境有关的问题?