我不确定在这里问这个是否正确,但非常感谢任何帮助。我在 sas 预测工作室工作。
这是我的时间序列数据集(季度数据):
- 日期例如 80 年 1 月 1 日、80 年 4 月 1 日、80 年 7 月 1 日
- DateQ 例如 1980Q1、1980Q2、1980Q3
- 年份 例如 1980、1981、1982
- GDP(可靠变量)例如 2650.1
- 例如 1、2、3
这个变量中的哪一个,或者我应该创建一个新的季度变量,用作线性回归的自变量来评估是否有任何季节性影响?
我不确定在这里问这个是否正确,但非常感谢任何帮助。我在 sas 预测工作室工作。
这是我的时间序列数据集(季度数据):
这个变量中的哪一个,或者我应该创建一个新的季度变量,用作线性回归的自变量来评估是否有任何季节性影响?
在分析时间序列数据时,不应使用对时间变量的简单线性回归来识别季节性影响。但是,要回答您的问题,请使用date
该intnx()
函数将其转换为四分之一。
data want;
format quarter yyq.;
set have;
quarter = intnx('quarter', date, 0, 'B');
run;
可以通过多种方式识别季节性影响:
1. 绘制它
如果时间序列具有季节性影响,它往往是清晰的。只需查看数据图表,您就可以根据您选择的时间间隔了解它是否是季节性的。
在 sashelp.air 中,很明显有一个 12 个月的季节。
2. 光谱密度分析
proc timeseries
将为您提供频谱分析,以帮助识别数据中的重要季节。峰值表示可能的周期或季节。您需要对合理的季节性数量进行一些过滤,因为在某个点之后密度可能会显着增加,并且它并不代表真实的季节。
Forecast Studio 和 Time Series Studio 将为您执行此操作,并可以为您提供与以下类似的输出。
proc timeseries data=sashelp.air
outspectra=outspectra;
id date interval=month;
var air;
spectra;
run;
proc sgplot data=outspectra;
where period BETWEEN 1 AND 24;
scatter x=period y=p;
series x=period y=p;
run;
我们可以看到一个强烈的 12 季节性指标。我们还看到了一些潜在的 3 个月和 6 个月的周期,可以在模型中测试其显着性。
3. ACF/PACF/IACF 图 Forecast Studio 中的 ACF/PACF/IACF 图也将帮助您识别清晰的季节。
经典的腐朽吊桥外观表明了季节性影响。请注意,季节在 12 点左右增加,然后再次减少。此外,PACF 和 IACF 图中 12 处的显着负峰值是 12 处显着季节性影响的其他指标。
模型构建和测试
Forecast Studio 提供的季节性增强 dickey fuller 测试等工具可以帮助您确定您是否已经捕获了季节性并在差分后实现了平稳性。
系列视图中的选择框允许您快速添加简单或季节性差异。选择 (1) 进行简单差分将添加一个简单差分。IE:
y = y - lag(y)
为季节性差异选择 (1) 将增加 1 个季节性差异。请注意,当您在 Forecast Studio 中创建项目时,会自动诊断和假定季节。这应该在完成上述诊断后完成,以便我们最好地猜测真正的季节是什么。在我们的例子中,我们假设我们的季节是 12。这相当于:
y = y - lag12(y)
然后我们可以使用平稳性测试来确保我们已经实现了平稳性。在我们的例子中,我们将添加 1 个简单的季节性差异。
请注意我们的白噪声图是如何改进的,并且我们在 12 处的峰值已经降低到不显着。此外,我们的平稳性测试看起来很好且很重要——也就是说,不存在单位根。
添加季节性或周期性影响
您的模型选择将决定如何添加季节性或周期性影响。ARIMA 模型中的差异将处理季节性问题。虚拟变量可用于 ARIMA 模型中的附加周期性效应。例如:
data want;
set have;
q1 = (qtr(date) = 1);
q2 = (qtr(date) = 2);
q3 = (qtr(date) = 3);
run;
UCM 可以通过添加季节性和周期性影响来处理所有这些问题。Holt-Winters ESM 无需虚拟变量即可处理趋势和季节性。您对每种模型的建模目标和性能考虑因素将决定您选择哪种模型。