我有一个名为“dataframe”的数据框,其中包含一堆特定日期的销售信息。每个日期条目的格式为 YYYY-MM-DD,数据范围从 2012 年到 2017 年。我想将此数据框拆分为 6 个单独的数据框,每年一个。例如,第一个分割数据帧将包含 2012 年的所有条目。
我想我可以在下面的代码中做到这一点。我将数据框分成每年一个,并将它们放入“年”列表中。但是,当我尝试在每个数据帧上运行 auto_arima 时,我收到错误“发现样本数量不一致的输入变量”。
我认为这是因为我没有正确分割原始数据框。如何根据年份正确分割数据框?
#Partition data into years
years = [g for n, g in dataframe.set_index('Date').groupby(pd.Grouper(freq='Y'))]
#Create a list that will hold all auto_arima results for every dataframe
stepwise_models = []
#Call auto_arima on every dataframe
for x in range(len(years)-1):
currentDf = years[x]
model = auto_arima(currentDf['price'], exogenous=xreg, start_p=1, start_q=1,
max_p=3, max_q=3, m=12,
start_P=0, seasonal=True,
d=1, D=1, trace=True,
error_action='ignore',
suppress_warnings=True,
stepwise=True)
stepwise_models.append(model) #Store current auto_arima result in our stepwise_models[] list
Run Code Online (Sandbox Code Playgroud) 我使用auto_arimapmdarima软件包执行了时间序列预测。我知道该程序包基于statsmodel SARIMAX程序包。
使用命令:fit.predict_in_sample(ARIMA_input, dynamic=None),可以将结果缩放/归一化为0。我想将样本中的预测转换回去,以使用我的输入数据进行绘制。有谁知道它是如何转变的?我从pmdarima中搜索了源代码,但找不到任何东西。使用statsmodel SARIMAX,样本中的预测与我的输入具有相同的比例。
注意:我的数据不是季节性的,因此我仅将ARIMA与statsmodel SARIMAX一起使用。
此外,如果我使用auto_arimapmdarima拟合给出的顺序并将其与statsmodel SARIMAX一起使用,则会得到不同的预测结果(pmdarima的预测非常合理,而SARIMAX的预测只是一条直线)。看来我看不出有什么不同。也许你们中的某人更了解它并可以帮助我?
如果您需要更多信息,我们很乐意提供。
存在持续错误,并且所有要求均已满足。
C:\Users\dobri>python -m pip install --user pmdarima
Collecting pmdarima
Using cached https://files.pythonhosted.org/packages/1a/4f/6851c8d37551efcb8cfe12539f42f0f1b42a2d28a7275f1e1f6bdd6956a2/pmdarima-1.4.0.tar.gz
Requirement already satisfied: Cython>=0.29 in c:\users\dobri\appdata\roaming\python\python38\site-packages (from pmdarima) (0.29.14)
Requirement already satisfied: joblib>=0.11 in c:\users\dobri\appdata\roaming\python\python38\site-packages (from pmdarima) (0.14.0)
Requirement already satisfied: numpy>=1.16 in c:\users\dobri\appdata\roaming\python\python38\site-packages (from pmdarima) (1.17.4+mkl)
Requirement already satisfied: pandas>=0.19 in c:\users\dobri\appdata\roaming\python\python38\site-packages (from pmdarima) (0.25.3)
Requirement already satisfied: scikit-learn>=0.19 in c:\users\dobri\appdata\roaming\python\python38\site-packages (from pmdarima) (0.21.3)
Requirement already satisfied: scipy>=1.3 in c:\users\dobri\appdata\roaming\python\python38\site-packages (from pmdarima) (1.4.0rc1)
Requirement already satisfied: six>=1.5 in c:\users\dobri\appdata\roaming\python\python38\site-packages (from pmdarima) (1.13.0)
Requirement already satisfied: statsmodels>=0.10.0 in …Run Code Online (Sandbox Code Playgroud) 显然,Anaconda有一个不同的金字塔包,用于Web框架。https://anaconda.org/anaconda/pyramid
Arima pyramid用户指南建议使用pip安装金字塔Arima。https://www.alkaline-ml.com/pyramid/setup.html#setup
但是,由于Anaconda使用conda来配置程序包,如何为Jupyter笔记本电脑在Anaconda环境中添加金字塔形?
arima ×2
python ×2
anaconda ×1
data-science ×1
forecasting ×1
pandas ×1
python-3.8 ×1
python-3.x ×1
statistics ×1
time-series ×1