季节性调整是现代宏观经济分析的支柱。许多经济时间序列表现出季节性波动,在执行计量经济学分析之前,需要从数据的基础模式中删除这些波动。在这个由两部分组成的系列中,我们将在第 1 部分中使用 EViews 14 将 JDemetra+ 与 X13 进行比较,并在第 2 部分中了解如何将 JDemetra+ 与农历新年结合使用。
目录
介绍
EViews 一直提供对许多季节性调整例程的访问,包括美国人口普查中流行的 X-11、X-12 和 X-13 例程,以及 TRAMO/SEATS 例程。JDemetra+ 是由 Eurostat 提供的这些软件包的开源替代方案。
虽然 JDemetra+ 可以同时进行 X-13 样式和 TRAMO/SEATS 样式的季节性调整,但目前 EViews 仅支持其 X-13 样式调整。如果您希望我们也扩展到 TRAMO/SEATS,请告诉我们!
JDemetra+:X-11
JDemetra 执行的计算与 EViews 中现有 X-13 接口提供的计算几乎相同,但对错误指定的数据更健壮,并引入了相当大的速度提升,尤其是在分析多个系列时。在第一篇博文中,我们将演示如何使用 JDemetra,并展示结果如何与现有的 X-13 包几乎相同。
我们有一个工作文件,其中包含 1990 年至 2023 年间的月度新屋开工数据。有一个序列 HOUSTNSA,它是从 FRED 获取的非季节性调整数据。
以图表形式打开序列,我们可以看到存在强烈的季节性模式:
我们可以通过单击 Proc->Seasonal Adjustment->JDemetra+ 来调整这些数据以使用 JDemetra+ 删除季节性模式,然后会弹出 JDemetra+ 对话框:
JDemetra+ 具有内置规范,允许您快速指定要使用的模型类型,而无需设置许多不同的选项。这些内置规范可通过 X-13 spec: 下拉列表进行访问。
最基本的调整形式是简单的 X-11 规范:
此方法通过迭代移动平均线程序将原始序列分解为趋势、季节性和余数分量,而无需通过 ARIMAX 回归对数据进行任何预调整。
在对话框中单击 OK,设置该规范后,将生成输出:
图表的最后一个面板显示了 JDemetra+ 生成的季节性调整数据,该数据也已作为名为 HOUSTNSA_D11 的新序列添加到我们的工作文件中(D11 是季节性调整值的旧美国人口普查代码)。我们可以看到,没有明显的季节性模式,调整后的序列要平滑得多。
这种基本形式的 X-11 季节性调整是 EViews 中 X-13 界面执行的默认调整形式。通过单击 Proc->Seasonal Adjustment->Census X-13,然后单击 OK 生成默认结果,我们可以获得相同的结果。(请注意,X-13 还将生成一个名为 HOUSTNSA_D11 的输出 – 因此请小心先重命名您之前的 JDemetra 输出系列!
将 JDemetra+ 和 X-13 作为一个组一起打开,我们可以看到它们在数值上是相同的。
此视频展示了我们迄今为止采取的步骤:
视频 1:JDemetra+ X-11 工作流程 |
JDemetra+:RSA3
与基本的 X-11 调整不同,研究人员通常更喜欢执行更复杂的季节性调整,包括在执行趋势、季节、余数分解之前,使用基于日历的外生回归器对数据运行 ARIMAX 模型。
这些预调整例程可用于在执行季节性调整之前删除非周期性不规则性和模式(例如非静态假期、每月/季度天数的差异或指数趋势)。如果不执行此步骤,季节性调整例程可能会产生不太准确的结果。
在 JDemetra+ 中,RSA3 默认规范执行这种类型的例程。具体来说,它会自动检测是否记录基础数据,执行异常值检测,并包括一个自动 ARIMA 模型。请注意,它不执行日历效果(RSA4c 规范添加了这些 – 有关更多详细信息,请参阅我们的第二篇博客文章)。
我们可以通过简单地使用 JDemetra+ 规范下拉列表选择 RSA3 来计算这种形式的季节性调整:
此调整的输出看起来与之前的 X11 调整非常相似:
将输出序列与之前调整的输出序列进行比较,我们可以看到它们几乎相同,但 RSA3 版本减少了一些峰值:
我们可以通过在 X-13 对话框中设置一些选项来使用 X-13 界面执行这种调整方式,即将 Transform 更改为 Auto/None,选择 Additive、Level Shift 和 Temporary Change 自动异常值检测,以及将 ARIMA 模型更改为 X-11 Auto。与 X-11 调整一样,这两个包给出相同的结果:
以下视频演示了两个封装中的 RSA3 调整:
视频 2:JDemetra+ RSA3 工作流程 |
结束语
如果您更愿意通过命令进行操作,我们在本博客文章中所做的每一件事都可以使用以下 EViews 程序进行复制:
本博客文章的第 2 部分将研究日历效果,并使用您自己的自定义假期变量,包括那些旨在补偿农历新年的变量。
close @wf
wfcreate m 1990 2023
dbopen(type=fred)
fetch houstnsa
'simple X-11 style adjustment
'JDemetra+
houstnsa.jdemetra(spec=x11)
rename houstnsa_d11 houst_d11_x11jdm
'X-13
houstnsa.x13
rename houstnsa_d11 houst_d11_x11x13
'RSA3 style adjustment with ARIMA and outliers
'JDemetra+
houstnsa.jdemetra(spec=rsa3)
rename houstnsa_d11 houst_d11_rsa3jdm
'X-13
houstnsa.x13(tf=auto, outtype="tc ao ls") @x11arima() @x11()
rename houstnsa_d11 houst_d11_rsa3x13