python - 日期变量回归 (python)

标签 python pandas machine-learning scikit-learn time-series

我有一个时间序列(每日)数据集,由 1 个标签(整数)和 5 年内的 15 个特征组成。我不知道特征的含义,但我必须根据这些特征预测标签。

为此,首先,我使用 pandas.tools.plotting 中的 autocorrelation_plot 来确定标签 (y) 中是否有季节性。请参见下图:

enter image description here

然后我使用seasonal_decompose通过扫描Freq参数来查找我的标签(y)的季节性、趋势和残差:

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

  • 您能否告诉我哪个频率合适,为什么?
  • 下一步是什么?我是否需要从数据中删除趋势项和季节性项,然后尝试通过回归(例如 SVR、线性等)来建模和预测残差因子?或者我需要通过回归来预测整个数据(不删除季节性和趋势)。我尝试通过几种回归技术来预测整个数据(不去除季节性和趋势),但结果非常糟糕。最后,我如何预测最后的季节? ARIMA 还好吗?趋势呢???\ 3)我是否走在正确的轨道上(提取季节性等),或者我应该将“日期”视为除其他 15 个特征之外的一个特征,例如:
  • 一天中的某个小时(24 个 bool 特征)
  • 一周中的哪一天(7 个 bool 功能)
  • 一月中的某一天(最多 31 个 bool 特征)
  • 月份(12 个 bool 特征)
  • 年份

最佳答案

让我向您解释一下通常如何处理季节性。

大多数时候,人们尝试提取季节性成分并处理校正后的序列进行分析。在北美,统计机构应用一系列对称移动平均滤波器来估计季节性、趋势周期和不规则成分,并且季节性调整数据对应于数据减去估计的季节性成分。通常,它们还在其他表中提供原始数据,有时,它们还在其他表中提供趋势周期。在澳大利亚,他们更喜欢呈现趋势周期。

在欧洲,分解通常基于模型:他们指定具有季节性成分的 ARIMA 模型 - 它允许集成季节性成分、季节性动态中的移动平均器成分等 - 并通过施加假设进行分解在模型上提取特定频率。

现在,您需要了解的第一件事是您的函数到底是做什么的。如果您使用移动平均滤波器,您必须意识到这些滤波器是对称的,并且它强制使用回溯和预测(您需要开始之前和结束之后的点来应用对称滤波器 - 这是相同的终点例如,Hoddrick-Prescott 等过滤器面临的问题)。因此,它需要指定一个具有季节性的良好 ARIMA 作为代理,以免端点表现太差(或为端点指定不对称过滤器),并且如果您使用校正后的数据集来比较预测,则对称性意味着小的数据窥探偏差模型(因为所有新点都包含 future 信息)。如果您使用 ARIMA 模型,则过滤器是不对称的,并且校正后的数据点不是使用 future 点构建的。

现在,要进行预测,您有两种选择。 (1)您可以尝试预测校正值(如果您绝对需要原始值,则可以单独预测季节性); (2) 您预测原始序列。

目前尚不清楚什么是最好的继续方式。理论上,您需要 (2),但它可能非常复杂(例如前沿研究模型),除非您使用具有季节性成分的 ARIMA 或强加恒定季节性并使用季节性虚拟变量。

至于“频率”的选择,我倾向于使用非正式的测试来确定什么是合适的。在移动平均文献中,我们选择过滤器的长度或长度,目标是产生完全捕捉季节性规律的估计季节性。您可以对修正后的数据使用非参数检验,例如 Kruskal-Wallis 检验,但它相当宽容。

我的建议是找到一个可以使用季节性参数模型的软件包,我认为这对于预测来说更可取。然后,您将拥有清晰的测试和信息标准,可用于在合理的统计基础上做出决策。

关于python - 日期变量回归 (python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47610529/

相关文章:

Python显示.ply、.STL、.igs、.step图像

python - 内联表单集 is_valid 错误 : list index out of range

python - tensorflow /Keras : model's output layer expects different input shape than what it recieved

python - Pandas:反向 Liker 调查答案

machine-learning - 无导数的梯度下降

Python,特征选择

Python:Jupyter Notebook 中的 pretty-print

python - 打开openpyxl保存的工作簿时Excel有不可读的内容

python - 将 pandas to_datetime 应用于所有日期列

python - Pandas 日期范围对于 yyyy-w 返回 "could not convert string to Timestamp"