时间序列回归/数据挖掘的序数/连续与虚拟变量

机器算法验证 回归 时间序列 数据挖掘 支持向量机 解释
2022-04-12 02:03:33

假设我有一个时间序列数据,我想在 $x$ 和 $Time$ 上对 $y$ 进行回归。有关数据集,请参见下文。y on x and Time. See below for the dataset.

y   x   time
12  100 1
14  101 2
16  102 3
18  103 4
20  201 1
22  202 2
24  203 3
26  204 4

方法一:

一种方法是通过将时间视为序数 (?) 或连续变量,直接在上述数据集上执行多元线性回归或神经网络或 SVM。我可以按如下方式进行时间序列回归:

y=a+β1x+β2time+ε

其中 $\varepsilon$ 被建模为 ARMAε is modeled as ARMA

方法二:

或者,我可以重新排列数据并为时间创建虚拟变量,如下所示:

y   x   Time_1  Time_2  Time_3
12  100 1   0   0
14  101 0   1   0
16  102 0   0   1
18  103 0   0   0
20  201 1   0   0
22  202 0   1   0
24  203 0   0   1
26  204 0   0   0

并进行时间序列回归/神经网络/SVM。例如,时间序列将是

y=a+β1x+β2time1+β3time2+β4time3+ε

其中 $\varepsilon$ 被建模为 ARMA。ε is modeled as ARMA.

以下是我的问题:

  1. 什么是正确的方法 - 1 或 2?
  2. 如果我们使用诸如神经网络或 svm 之类的数据挖掘方法,我们使用方法 1 还是方法 2 是否重要?
  3. 方法 1 是否更简洁,因为我们有 1 个表示时间的变量,而方法 2 有 3 个变量?
2个回答
  1. 建模时间不断引入这样一个假设,即时间对结果有线性影响,以 $x$ 为条件。然而,将时间调整为固定和随机效应使得这种解释有点站不住脚。x. However, adjusting for time as a fixed and random effect makes this interpretation a bit untenable.

  2. 是的,它确实很重要,它在绝对所有情况下都很重要。您可以通过根据任一线性模型模拟数据来验证这一点。当您为线性时间拟合分类效应时,您仍然始终如一地估计时间的线性趋势,但您在自由度方面“花费更多”。

  3. 一般来说,是的。第一个模型中的影响较少。然而,关于哪种模型(分类效应与线性时间)是正确的总体概念,可以通过以下问题最正确地解决:什么是科学问题?

是什么让您认为时间对因变量有任何影响?

我建议根据时间绘制因变量来衡量哪种模型可能有用。

这两种方法 - 线性(或非线性)时间趋势季节性虚拟变量可能都是必要的。(通常虚拟变量用于季节性或日历效应或冲击)。

如果您为每个时间段拟合一个虚拟时间变量,并且每个时间段没有很多观察结果,那么您很容易过度拟合。此外,如果您使用一系列独立的虚拟变量,您将不知道下一个时间段的影响是什么——因为它也是独立的。与在模型中使用时间的其他方式相比,这使得它在预测方面的用处较小。

也许更复杂的过程(例如 ARIMA)可能有用。R中的包之类的东西forecast可能有助于理解时间序列。为了拟合模型,您可能希望超越 OLS 并考虑自回归或动态回归模型。