【MATLAB第33期】源码分享 | 基于MATLAB的时间序列平稳性检测方法

【MATLAB第33期】源码分享 | 基于MATLAB的时间序列平稳性检测

一、平稳性检测

1、KPSS测试
2、ADF测试
3、PP测试

若adf1或者kpss0或者pp==0,则表明是平稳时间序列。
反之,则表明是非平稳时间序列。

二、代码展示


clc,
clear all,
close all,
format short,

%% 1.从源读取数据(Excel文件,*.xlsx格式)并打印
input = readtable('ch02_EXAMPLE 3.xlsx', 'Sheet',"Sheet1",...
                                'Range',"A:C");   %选择Sheet1 表格,A-C列数据
ts = timeseries(input.DATA,input.DATE);  %建立时间序列数据 ,第一列时间,第二列数据
ts.Name = 'CPI数据';  %数据标题
ts.TimeInfo.Units = 'years';
ts.TimeInfo.StartDate = '1954';     % 设置开始时间(年份)
ts.TimeInfo.Format = 'yyyy';       % 设置在x轴上显示的格式
ts.Time = ts.Time - ts.Time(1); %
plot(ts, 'Color', '#7E2F8E', 'LineJoin','round', 'Marker', '.')
xlabel('Time (years)', 'fontsize',12)
ylabel('INF_C', 'fontsize',12)

%% 1.平稳性,KPSS测试
[kpss_H, kpss_pVal, kpss_stat, kpss_crit] = kpsstest(input.DATA,'trend',true);
kpss_test_results={'测试拒绝决定H值','p值','统计量','临界值';...
                                    kpss_H, kpss_pVal, kpss_stat, kpss_crit}
                                
%% 2.平稳性,ADF测试
[adf_H, adf_pval, adf_stat, adf_crit] = adftest(input.DATA);
ADF_test_results={'测试拒绝决定H值','p值','统计量','临界值';...
                                    adf_H, adf_pval, adf_stat, adf_crit}
                                
%% 3.平稳性,PP测试
[pp_H, pp_pVal, pp_stat, pp_crit] = pptest(input.DATA);
PP_test_results={'测试拒绝决定H值','p值','统计量','临界值';...
                                    pp_H, pp_pVal, pp_stat, pp_crit}

三、效果展示

在这里插入图片描述

1.kpss_test_results :

{'测试拒绝决定H值'}    {'p值'   }    {'统计量' }    {'临界值' }
{[            1]}    {[0.0100]}    {[0.6618]}    {[0.1460]}

2.ADF_test_results :

{'测试拒绝决定H值'}    {'p值'   }    {'统计量'  }    {'临界值'  }
{[            0]}    {[0.3255]}    {[-0.8769]}    {[-1.9476]}

3.PP_test_results :

{'测试拒绝决定H值'}    {'p值'   }    {'统计量'  }    {'临界值'  }
{[            0]}    {[0.3255]}    {[-0.8769]}    {[-1.9476]}

四、代码及案例数据获取

后台私信回复“33”即可获得下载链接

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风飘摇的土木狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值