快捷搜索:  汽车  科技

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)出于本文的目的,我只想关注一种时间表示——AR 结构以及 R 语言中函数“auto.arima”中隐含的算法的稳定性。该函数是forecast包的一部分。我希望读者能够就如何最好地定义我提到的其他结构的稳定性提出想法。首先,与 k/n 折交叉验证不同,我们不能在不失去时间关系的情况下随机对数据进行子集化。我们用来预测的模型通常依赖于这样一个假设,即时间 t 的值可能与其滞后 {t-1 t-2 ... t-n} 有因果关系。此外,根据我们决定对这些时间关系建模的方式,我们使用不同的时间序列结构表示——ARIMAX、指数状态空间、傅里叶基表示、径向基表示等。每一种利用时间关系略有不同。这意味着学习机制(稳定性)无法通过一种通用的交叉验证技术来衡量。总之,在两个非常精确的模型之间,我们想要选择一个更普遍适用的模型,以及一个如果我们稍微改变事情,不会失控的模型。例如,如果证券价格变得高度波

在本文中,我想从一位数据科学家的书中翻出一页,探索数据科学界作为建模过程的一部分实施的一道重要屏障——定义独立于模型性能的模型稳定性。

随着大数据的兴起,可用于对给定问题建模的变量数量呈指数增长。例如,用于识别歌曲或电影的模型不再仅仅使用诸如以前看过的电影或喜欢的歌曲等通用变量。现在我们可以包含一整套指标,使用户配置文件更加动态 - 一天中的时间、天气、历史、潜在的情绪,喜欢但不再听的歌曲等。该列表可以永久增长,并且可能会不断增长。每天,我们拥有的数据量最少,而我们拥有的数据量却是前所未有的。每天都会发现更多的相关性。有些是因果关系,有些则不是。

我们如何知道使用哪些变量以及忽略哪些变量?如果某些变量对于预测一个用户的行为很重要,但对另一个用户的行为影响不大,该怎么办?

幸运的是,数据科学提出了定义模型稳定性的想法。这是定义模型性能的另一种方法,但并不完全取决于预测精度。”“稳定性”是一个流动术语,其含义取决于手边的模型;更一般地说,它是衡量模型如何学习(稳定性)而不是学习什么(准确性)。为了控制准确度,我们希望选择一个更“稳定”的模型——可以应用于大多数用户,能够一致地识别相关变量集,并保持变量相关性的有序性。

总之,在两个非常精确的模型之间,我们想要选择一个更普遍适用的模型,以及一个如果我们稍微改变事情,不会失控的模型。

例如,如果证券价格变得高度波动,复杂、准确和实用的高频交易算法可能会失控。如此之多,以至于纳斯达克不得不实施断路器,以停止交易,如果这样的事件发生,它已经。最近一次爆炸发生在2020年3月9日。虽然有许多因素导致断路器被激活,但事实仍然是,在达到一定阈值后,模型无法做出准确或稳定的决策。因此,当数据科学意识到要将稳定性和准确性分开时,我想知道计量经济学是否应该积极地建立模型,同时牢记准确性和稳定性。如果我们这样做了,我们应该如何定义稳定?

一旦我们开始定义稳定性,就很容易让它变得越来越细微。许多机器学习模型利用 k-fold 或 n-fold 交叉验证来衡量稳定性或选择的变量,我们可以轻松地将这些方法应用于计量经济学建模。然而,由于计量经济学主要在“频率”域中工作,即用于训练模型的数据具有时间关系,因此我们有必要更仔细地研究如何在这个新的变量空间中定义稳定性。

首先,与 k/n 折交叉验证不同,我们不能在不失去时间关系的情况下随机对数据进行子集化。我们用来预测的模型通常依赖于这样一个假设,即时间 t 的值可能与其滞后 {t-1 t-2 ... t-n} 有因果关系。此外,根据我们决定对这些时间关系建模的方式,我们使用不同的时间序列结构表示——ARIMAX、指数状态空间、傅里叶基表示、径向基表示等。每一种利用时间关系略有不同。这意味着学习机制(稳定性)无法通过一种通用的交叉验证技术来衡量。

出于本文的目的,我只想关注一种时间表示——AR 结构以及 R 语言中函数“auto.arima”中隐含的算法的稳定性。该函数是forecast包的一部分。我希望读者能够就如何最好地定义我提到的其他结构的稳定性提出想法。

ARMA 过程可以表示如下:

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)(1)

X 和 Epsilon 的每个滞后的系数都可以使用信息标准 (AIC) 进行校准,该标准本质上可以减少错误(提高准确性)。然而,AIC 没有关于结构稳定性的信息,只评估模型在保留训练数据信息方面的效率。

如果 AIC 是系数值和滞后的选择标准,那么也许我们可以通过查看来衡量 ARMA 模型的稳定性:

1. 分配给每个滞后的系数值——一个准确而稳定的模型应该能够计算出正确的系数,然后每次我们添加另一个数据点进行训练时都这样做。

2. 当我们向数据添加随机扰动时模型的反应——如果我们尝试 tric k 模型通过添加与我们的训练数据来自不同群体的数据,一个稳定的模型,理想情况下,即使以准确性为代价也不会轻易被欺骗;相反,它不应试图预测冲击。

稳定性测量的另一个重要特征是所有测量都必须在相同样本数据的子集上进行。鉴于我们数据的时间性质,我们必须稍微改变这些技术以保留我们模型的时间信息。一种解决方案是使用滚动验证。通常我们用它来衡量样本外预测的准确性,但我们可以在这里使用相同的机制;只需让机器在工作时测量不同的指标即可。

我们可以轻松模拟 AR 过程。我们将先验地知道滞后系数是什么。接下来,我们可以使用滚动验证方法训练 auto.arima 算法,并查看 auto.arima 算法获取正确滞后和系数的速度和频率。AR 过程的可视化表示,如下:

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)(2)

上述过程有 4 个滞后,系数向量分别为 {0.7 -0.2 0.5 -0.8},长度为 1 000 个周期。滚动验证/训练从 n=20 开始,以下是每次迭代计算的系数的表示。至少对于这个模拟数据集,auto.arima 算法需要大约 400 个数据点来接近数值稳定且准确的系数解(图 1)。但请注意,即使模型非常不稳定的前 200 个数据点,校准模型的样本外精度也与后面的数据点相当(图 2);唯一的区别是,后来校准的模型对于为算法进行训练而添加的每个新数据点都更加稳健。

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)(3)

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)(4)

为了进一步强调准确性与稳定性——时间序列预测中的另一个常见问题是训练数据包含随机不连续性,这些不连续性不一定遵循与时间序列本身相同的潜在动态。通常,如果我们能够准确识别这些冲击,我们会寻求从训练数据中完全删除数据点或选择平滑它们以减少其对模型的偏差。

但是,如果我们能够衡量我们的方法/算法的稳健性,我们就可以在对原始数据进行建模之前对应该修改原始数据或对其进行工程设计的程度做出更明智的选择。这并不是说特征工程是一种无效的建模方法,而是必须停下来反思它是帮助我们改进模型还是只是使模型复杂化。在我看来,不应该用简约来换取复杂的声音模型,这些模型对我们从中得出的见解几乎没有改进。

为了测试 auto.arima 的稳定性,我们希望通过添加与我们希望预测的数据来自不同分布的随机冲击来稍微扰乱数据。我们知道,对于这个数据集,auto.arima 在大约 400 个数据点上达到了稳定性;我们可以在同一时间序列的扰动版本上运行滚动验证,看看它与未扰动的对等系列相比如何。请参阅下面的相同时间序列,有随机不连续性:

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)(5)

下面是 auto.arima 的准确性与我们数据的先前未受干扰版本的比较(黄线显示添加不连续性的位置):

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)(6)

很容易看出,当我们随机冲击训练数据时,预测算法实际上变得相对不准确。人们往往忘记的是,虽然稳定性可能与准确性无关,但它直接影响准确性。为这个新数据集计算的系数见下文:

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)(7)

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)(8)

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)(9)

计量经济学中的预测有哪几种模型(评估计量经济模型的结构稳定性-时间序列预测最简单的重要思想)(10)

图例显示了我们知道模型在未受干扰的数据中准确收敛的真实系数值。但是,当随机冲击相同的数据时,它会完全将系数值从红线中明显地剔除。对数据的一些不相关冲击完全改变了估计的模型表示。一个稳定的算法不应受到未经证实的数据冲击的太大影响。

有趣的是,该算法不稳定,因此在计算系数方面都不准确——AR1、AR2、AR3 和 AR4 值与原始数据集以及计算的系数数量非常不同——原始数据没有有 MA1 或 MA2 项,算法错误地为我们的扰动数据集分配了非零值。如果 auto.arima 选择了错误的模型表示(系数),那么与具有未受干扰数据的模型相比,通过构建使用这些系数产生的预测将进一步偏离实际值。

我希望读者停下来想一想上面的结果——当你完成一个前进行练习,软件会输出结果,你认为你的算法向你展示了哪些值——黑线还是红线?由于我们只看到最终值而不是它如何收敛到它,稳定性的细微差别就消失了。您的回答将决定您需要采取哪些特征工程步骤,以确保您对计量经济学过程进行了负责任的建模。

在这种情况下,auto.arima 牺牲了稳定性和准确性。不幸的是,根据我的经验,从准确性中打破稳定性并不是传统计量经济学工作流程的一部分。如果我们将准确性和稳定性作为原始数据和处理过的数据的两个不同指标来衡量,那么我们就能够就是否应该对原始数据进行工程设计做出更明智的决定。有许多设计方法可以减少单个测量的偏差,甚至还有更多算法可供选择以进行预测;我们必须有一个一致且严格的框架来帮助我们选择每个框架

请记住,本文只是触及了衡量计量经济学稳定性的皮毛,但我们已经能够为许多通常基于“受过教育的”猜测或更糟的预感的建模决策提供足够且务实的支持。

猜您喜欢: