tkt*_*711 8 python time-series statsmodels
我按照教程学习SARIMAX模型:https://www.digitalocean.com/community/tutorials/a-guide-to-time-series-forecasting-with-arima-in-python-3 .数据的日期范围是1958-2001.
mod = sm.tsa.statespace.SARIMAX(y,
order=(1, 1, 1),
seasonal_order=(1, 1, 1, 12),
enforce_stationarity=False,
enforce_invertibility=False)
results = mod.fit()
Run Code Online (Sandbox Code Playgroud)
当拟合ARIMA时间序列模型时,我发现作者所有日期范围数据都适合模型参数.但在验证预测时,作者使用从1998-01-01开始的日期作为拟合模型的数据日期范围的一部分.
pred = results.get_prediction(start=pd.to_datetime('1998-01-01'), dynamic=False)
Run Code Online (Sandbox Code Playgroud)
我知道在机器学习模型中,训练数据和验证(测试)数据不同,我的意思是不同的范围.我的意思是作者是对的?为什么这样(我的意思是所有列车数据的原因),我是一个新的SARIMAX模型.
你能告诉我更多关于这个模型的信息吗,例如如何预测几天或几周而不仅仅是一个月,我的意思是如何设置order =(1,1,1),seasonal_order =(1,1,1,12)的参数).谢谢!
作者是对的.当您进行回归时(线性,高阶或逻辑 - 无关紧要) - 绝对可以偏离您的训练数据(例如,即使对训练数据进行逻辑回归也可能会给您误报).
同样代表时间序列.我认为这样作者想要证明模型是正确构建的.
seasonal_order=(1, 1, 1, 12)
Run Code Online (Sandbox Code Playgroud)
如果你看一下tsa stats 文档,你会看到如果你想用季度数据操作 - 你必须分配最后一个参数 - 值4.每月 - 12.这意味着如果你想用每周数据操作seasonal_order应该是这样的
seasonal_order=(1, 1, 1, 52)
Run Code Online (Sandbox Code Playgroud)
每日数据将是
seasonal_order=(1, 1, 1, 365)
Run Code Online (Sandbox Code Playgroud)
order component是分别负责非季节性参数p,d和q的参数.您必须根据数据行为找到它们
对...产生影响
.或者换句话说,如果您有每日数据且p为6,您可以理解它周二数据会对周日数据产生影响.以下是一个很好的答案,您可以找到非季节性组件值
| 归档时间: |
|
| 查看次数: |
9418 次 |
| 最近记录: |