单位根检验、航空模型、季节模型

本文详细介绍了时间序列分析中的单位根平稳性检验,包括ADF、PP、KPSS检验,以及在航空模型和季节模型中的应用。通过实例展示了日收入序列的平稳性检验和季节差分,强调了在遇到不一致检验结果时如何判断序列的平稳性。文章还探讨了不同平稳过程,如差分平稳和趋势平稳,并提供了ACF图和单位根检验结果的解读,以及在实际问题中如何选择合适的模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单独写这篇文章的用意是源于我在单位根平稳性检验上面花费了很多时间,在这个过程中,又不断对季节模型有了更为深刻的理解,所以我要单独将这些心得写出来。本篇文章需要结合《收入时间序列——之模型探索篇》来看,其数据源于那篇文章中,这里不再赘述。

一. 平稳性检验

平稳性检验的主要方法是看时序图、ACF图和单位根检验,其中单位根检验方法有ADF、PP、KPSS等。本次ADF和PP检验都拒绝原假设,即认为序列平稳;KPSS拒绝原假设,即认为序列非平稳(KPSS零假设和ADF/PP恰好相反)。当出现不一致时,需要根据属于下面哪种平稳过程来判断,有一种观点认为KPSS检验结果更强更鲁棒,因为ADF和PP检验将差分平稳模型作为零假设,它检验随机游走或带漂移的随机游走效果奇好,但它们都需要假设是否包含常数均值和时间趋势,因此拒绝零假设的功效(low power)较低,而KPSS则完全不需要选择假设类型。

非平稳序列的平稳过程包括差分平稳过程和趋势平稳过程。

差分平稳过程:确定性时序分析对随机性信息浪费严重,通过差分变换为 \Delta x_{t}=\mu+a_{t} 可消除随机性趋势,a_{t} 是平稳序列,\mu 是均值。

趋势平稳过程:确定性趋势无法通过差分消除,通过去除时间函数变换为 \Delta x_{t}-\beta t=\mu+a_{t}可消除确定性趋势,\beta t 是时间函数,a_{t} 是平稳序列,\mu 是均值。

特殊情形下,当KPSS检验结果非平稳、ADF检验结果平稳时,利用差分平稳过程可使序列平稳。当KPSS检验结果平稳、ADF检验结果非平稳时,利用趋势平稳过程可使序列平稳。

下面这张图很好的总结了平稳性检验:

二. 日收入序列的平稳性检验

(1)ADF检验

这里需要注意一下ADF检验的三种类型,若没有设置regression参数系统默认就是第二种。

一般ADF检验顺序是类型3->类型2->类型1,即先从有趋势有常数均值(ct)、再到无趋势有常数均值(c)、最后到无趋势无常数均值(nc)。按3->2->1顺序直至检验平稳终止,如果都不平稳就需要采用差分等手段后继续检验。

我尝试了3和2都是平稳,1不是平稳,按上述理论ADF检验结果为平稳:

# 单位根检验 3->2->1
dftest_ct = adfuller(timeseries, regression='ct', autolag='AIC')
(-5.488932371099615, 2.42350869843851e-05, 21, 838, {'1%': -3.9696139315814714, '5%': -3.415742085237588, '10%': -3.1301410687829927}, 19515.823525154956) 

dftest_c = adfuller(timeseries, regression='c', autolag='AIC')
(-4.921922984782108, 3.160487308474228e-05, 21, 838, {'1%': -3.4381774989729816, '5%': -2.8649951426291, '10%': -2.568609799556849}, 19519.837221505346) 

dftest_
### 使用MATLAB实现ARIMA模型进行时间序列特征提取 #### ARIMA模型概述 ARIMA(p,d,q) 是一种广泛应用于时间序列分析中的统计方法,其中 p 表示自回归项数,d 表示差分次数以使序列平稳化,q 表示移动平均项数。通过调整这些参数可以有效捕捉时间序列的主要动态特性[^1]。 #### 数据预处理 在构建ARIMA模型之前,通常需要对原始数据做一些必要的预处理工作: - **缺失值填充**:对于存在缺失的数据点,可以通过插值法或其他方式填补。 - **趋势和季节性分解**:如果观察到明显的时间依赖模式,则应先去除长期趋势成分以及周期性的波动影响。 - **检验并确定最佳阶数 d** :利用单位根测试(ADF Test)来判断原序列是否已经达到了稳定状态;如果不是,则需进一步求解合适的差分级数使得新得到的一阶或高阶差异后的序列为白噪声过程。 ```matlab % 加载样本数据集 load('airlineData.mat'); % 假设文件名为 airlineData.mat 并含有变量 y (月度乘客数量) % 绘制原始数据图 figure; plot(y); title('Original Data'); xlabel('Time Index'); ylabel('Passenger Count'); % 进行一阶差分操作 diff_y = diff(y); % 显示差分后图形 figure; plot(diff_y); title('First Difference of Original Data'); xlabel('Time Index'); ylabel('Differenced Passenger Count'); ``` #### 参数估计与诊断检查 一旦确认了适当的选择 `d` 的取值范围之后就可以着手于拟合具体的 AR 和 MA 部分了。这一步骤涉及到最大似然估计等数值优化算法,在此过程中还需要关注残差性质及其分布情况以便验证所选设定是否合理可靠。 ```matlab % 定义并训练ARIMA(2,1,0) 模型实例 model = arima('Constant', 0,'D', 1,'ARLags',[1 2]); fitModel = estimate(model,y); disp(fitModel); ``` 上述代码片段展示了如何定义一个具有两个滞后阶次的自回归部分而无任何移动平均组件且经过一次差分变换后的简单版 ARIMA 结构,并调用了内置函数来进行参数学习从而获得最终版本的对象表示形式。 #### 特征提取 完成建模以后可以从多个角度出发挖掘潜在有用的信息作为后续任务输入源之一: - **预测未来走势**:基于已知历史记录推断短期内可能发生的变化轨迹; - **频谱分析**:探索隐藏在其背后的周期规律揭示内在机制运作原理等等。 ```matlab % 获取对未来一年内每月客流量变化幅度的预期估值 [YF, YMSE] = forecast(fitModel, 12, 'Y0',y); % 可视化展示实际观测值同模拟结果之间的对比关系 figure; hold on; hObs = plot(y,'Color','b'); hPred = plot(length(y)+1:length(YF), YF, 'r-o',... 'LineWidth',2,... 'MarkerFaceColor','r',... 'DisplayName',{'Forecast'}); legend([hObs,hPred],'Observations','Forecast') title(['Forecasted Values with ', num2str(sqrt(mean(YMSE))) ... '-Standard Error Bands']); xlabel('Month'); ylabel('Log Airline Passengers'); hold off; % 计算标准化残差平方和用于评估整体拟合优劣程度 residuals = infer(fitModel,y); stdResid = residuals ./ sqrt(infer(fitModel,y)); sumOfSquaredStdResids = sum(stdResid.^2); fprintf('\nSum-of-Squared Standardized Residuals: %.4f\n',... sumOfSquaredStdResids); ``` 这段脚本实现了对未来十二个月份内的航空旅客运输量做出定量推测并将之绘制成直观易懂的趋势线图表;同时还计算出了标准误差带宽度衡量不确定性水平高低;最后还给出了关于残差特性的量化指标帮助理解当前方案的有效性和局限所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值