Matlab实现ADF检验,adftest函数使用详细说明(看完就会用)

这篇具有很好参考价值的文章主要介绍了Matlab实现ADF检验,adftest函数使用详细说明(看完就会用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ADF检验简介

ADF检验全称为Augmented Dickey-Fuller test。通常在使用时间序列模型(如ARMA,ARIMA)的时候用于检验时间序列数据的平稳性。他主要通过检验数据是否有单位根判断序列是否平稳。

adftest的使用及参数介绍

——简单调用:h = adftest(y)

输入参数:
y:进行检验的时间序列
输出参数:
h:检验结果
h = 0,说明序列不平稳;
h = 1,说明序列平稳。

——多参数调用:[h,pValue,stat,cValue] = adftest(y,‘alpha’,0.05)

输入参数:
y:进行检验的时间序列
‘alpha’,0.05:组合起来使用可以改变假设检验的显著性水平,如果不设置则默认为0.05

输出参数:
h:检验结果
pValue:假设检验的P值,依据他的大小可以判断是否拒绝原假设
stat:检验统计量,与cValue一起可以决定是否拒绝原假设
cValue:假设检验的临界值,与stat一起可以决定是否拒绝原假设
(下文会介绍三种利用输出参数判断是否平稳的方法,他们的结果是统一的,会一种就行)

adftest如何判断是否平稳?

——原假设与备择假设

原假设:存在单位根(时间序列不平稳)
备择假设:不存在单位根(时间序列平稳)

——通过h判断是否平稳

h = 0时,我们无法拒绝原假设,也就是接受原假设→序列存在单位根→时间序列不平稳
h = 1时,我们拒绝原假设→序列不存在单位根→时间序列平稳

——通过pValue判单是否平稳

pValue>0.05(显著性水平,这里用0.05举例):我们无法拒绝原假设,也就是接受原假设→序列存在单位根→时间序列不平稳
pValue<0.05:我们拒绝原假设→序列不存在单位根→时间序列平稳

——通过stat和cValue判断是否平稳

stat>cValue:落在接受域,我们无法拒绝原假设,也就是接受原假设→序列存在单位根→时间序列不平稳
stat<cValue:落在拒绝域,我们拒绝原假设→序列不存在单位根→时间序列平稳

应用举例(以1978年到2020年的中国GDP为例):

原始序列的ADF检验

clc;
clear;
data = readtable("data.xlsx");
data = table2array(data);
data = data(:,2)
plot(data,'LineWidth',1.5)
[h,pValue,stat,cValue] = adftest(data,'alpha',0.05)

输出结果为:
h = 0; (h等于0→接受原假设→有单位根→不平稳)
pValue = 0.9990 (p大于0.05→接受原假设→有单位根→不平稳)
stat = 13.4332 (stat>cValue→接受原假设→有单位根→不平稳)
cValue = -1.9474
Matlab实现ADF检验,adftest函数使用详细说明(看完就会用)
从折线图和函数返回结果看,该序列都是不平稳的。

一阶差分序列的ADF检验

%%  接上述代码
datad1 = diff(data,1)
figure
plot(datad1,'LineWidth',1.5)
[h,pValue,stat,cValue] = adftest(datad1,'alpha',0.05)

输出结果为:
h = 0;
pValue = 0.2810
stat = -0.9989
cValue = -1.9475
Matlab实现ADF检验,adftest函数使用详细说明(看完就会用)
从折线图可见一阶差分仍然具有显著上升趋势,序列不平稳,与函数返回结果契合。

二阶差分序列

datad2 = diff(data,2)
figure
plot(datad2,'LineWidth',1.5)
[h,pValue,stat,cValue] = adftest(datad2,'alpha',0.05)

输出结果为:
h = 1;
pValue = 1.0000e-03
stat = -4.3792
cValue = -1.9476
Matlab实现ADF检验,adftest函数使用详细说明(看完就会用)
由折线图,数据在0附近随机波动,表现为平稳序列,与函数返回值契合。文章来源地址https://www.toymoban.com/news/detail-423361.html

完整代码及数据

clc;
clear;
data = readtable("data.xlsx");
data = table2array(data);
data = data(:,2)
%可注释上面三行,将下一行取消注释
%data = [3678.70250000000	4100.45370000000	4587.58110000000	4935.83280000000	5373.35010000000	6020.92410000000	7278.50230000000	9098.94800000000	10376.1545000000	12174.5947000000	15180.3865000000	17179.7417000000	18872.8688000000	22005.6285000000	27194.5309000000	35673.2304000000	48637.4503000000	61339.8913000000	71813.6296000000	79715.0445000000	85195.5071000000	90564.3758000000	100280.139300000	110863.123000000	121717.424700000	137422.034900000	161840.160900000	187318.903100000	219438.474800000	270092.323700000	319244.612800000	348517.743700000	412119.255800000	487940.180500000	538579.953500000	592963.229500000	643563.104500000	688858.218000000	746395.059500000	832035.948600000	919281.129100000	990865.111300000	1015986.20000000]'
plot(data,'LineWidth',1.5)
[h,pValue,stat,cValue] = adftest(data,'alpha',0.05)
%%  一阶差分
datad1 = diff(data,1)
figure
plot(datad1,'LineWidth',1.5)
[h,pValue,stat,cValue] = adftest(datad1,'alpha',0.05)
%%  二阶差分
datad2 = diff(data,2)
figure
plot(datad2,'LineWidth',1.5)
[h,pValue,stat,cValue] = adftest(datad2,'alpha',0.05)
%adftest:原假设:存在单位根(说明这是一个非平稳的时间序列)  备择假设:不存在单位根(说明这是一个平稳时间序列)
%h = 0则不能拒绝原假设,那么接受原假设,说明时间序列不平稳

作者水平有限,第一次发文,有错误及需要改正的地方请指正

到了这里,关于Matlab实现ADF检验,adftest函数使用详细说明(看完就会用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 基于MATLAB实现CAD技术及其应用完整教程(附上完整源码+数据+使用说明)

    MATLAB是一种功能强大的计算机辅助设计(CAD)工具,它为工程师和设计师提供了一种高效、灵活的方式来创建、分析和优化各种设计。在本文中,我们将介绍MATLAB如何实现CAD技术,并探讨其在不同领域中的应用。 首先,MATLAB提供了一套丰富的工具箱,包括图形用户界面(GU

    2024年02月15日
    浏览(152)
  • Matlab中画柱状图详细教程bar函数使用方法(二维附matlab代码)柱状图创建/位置/颜色/图例

    Matlab中画柱状图详细教程bar函数使用方法(二维附matlab代码)柱状图创建/位置/颜色/图例

    bar(y) bar(x,y) bar(___,width) bar(___,style) bar(___,color) bar(___,Name,Value) bar(ax,___) b = bar(___) bar(y) 创建一个柱状图/条形图,y 中的每个元素对应一个柱状/条形。如果 y 是矩阵,则 bar 根据 y 中的行对柱状/条形分组。 bar(x,y) 在 x 指定的位置绘制柱状/条形。 bar(___,width) 设置柱状/条形的相对

    2023年04月24日
    浏览(10)
  • Windows下MATLAB调用Python函数操作说明

    Windows下MATLAB调用Python函数操作说明

    具体可参看MATLAB与Python版本的兼容 操作说明请参看下面两个链接: 操作指南 简单说明: 我安装的是MATLAB2022a和Python3.8.6(安装时请勾选所有可以勾选的,包括 路径 )。对应版本安装完成后,在MATLAB命令行中敲入执行路劲’D:SoftwareAppsPython3_7python.exe’(因人而异) 完了以

    2024年02月11日
    浏览(16)
  • 详细接口和使用说明的FPGA IP实现VGA转HDMI功能

    详细接口和使用说明的FPGA IP实现VGA转HDMI功能

    FPGA实现VGA转HDMI功能的IP,配详细的接口和使用说明 ID:3440 718008093072 木若君熙 标题: FPGA实现VGA转HDMI功能的IP及其详细接口和使用说明 摘要: 本文针对FPGA(Field-Programmable Gate Array)实现VGA转HDMI功能的IP进行了详细的分析与说明。首先介绍了FPGA的基本原理和应用领域,然后详细介

    2024年04月25日
    浏览(9)
  • python中函数的详细说明def:

    1.函数的代码块是以def开头,后面跟函数名和括号。 2.函数可有入参,函数的入参必须放在括号的内部。 3.return返回返回值,如果没有return,默认返回None。return是结束语句。 4.函数是以:起始,必须缩进 2.1【实参和形参】 形参:就是函数定义时小括号里的变量 实参:函

    2024年02月12日
    浏览(12)
  • 【ADF4351】使用FPGA进行SPI寄存器配置、使用FPGA计算各个频率的频点,ADF4351配置程序

    【ADF4351】使用FPGA进行SPI寄存器配置、使用FPGA计算各个频率的频点,ADF4351配置程序

    输出频率范围:35 MHz至4,400 MHz 小数N分频频率合成器和整数N分频频率合成器 具有低相位噪声的VCO 可编程的1/2/4/8/16/32/64分频输出 典型抖动:0.3 ps rms EVM(典型值,2.1 GHz): 0.4% 电源:3.0 V至3.6 V 逻辑兼容性: 1.8 V 可编程双模预分频器:4/5或8/9 可编程的输出功率 RF输出静音功能

    2024年04月11日
    浏览(17)
  • 物联网|按键实验---学习I/O的输入及中断的编程|函数说明的格式|如何使用CMSIS的延时|读取通过外部中断实现按键捕获代码的实现及分析-学习笔记(14)

    物联网|按键实验---学习I/O的输入及中断的编程|函数说明的格式|如何使用CMSIS的延时|读取通过外部中断实现按键捕获代码的实现及分析-学习笔记(14)

    1 代码的流程分析 2 代码的实现 库函数HAL_Init(void)分析: HAL_Delay()系统延时的步骤: 它的实现步骤如下: 1.用变量获得系统时钟源计数器的值 2.获得要延迟时间的参数值 3.比较两者大小,若时钟计数器的值大于要实现延迟的值,就会困在循环里;反之,跳出循环,延时完成。

    2024年02月14日
    浏览(12)
  • Friedman 检验--Matlab

    Friedman 检验--Matlab

    一:Friedman检验        Friedman函数(非参数检验)检验矩阵X的各列是否来自于相同的总体,即检验因素A的各水平之间无显著差异,他对分组因素B不感兴趣。Frideman函数返回检验的p值,当检验的p值小于或等于给定的显著性水平时,应拒绝原假设,原假设认为X总体来自于相同

    2024年02月03日
    浏览(8)
  • 基于matlab实现生成模糊fis文件,包括模糊隶属函数和模糊规则等,不使用fuzzy工具箱

    基于matlab实现生成模糊fis文件,包括模糊隶属函数和模糊规则等,不使用fuzzy工具箱

    目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 4.完整MATLAB matlab2022a仿真结果如下:          Zadeh创立的模糊数学,对不明确系统的控制有极大的贡献,自七十年代以后,一些实用的模糊控制器的相继出现,使得我们在控制领域中又向前迈进了一大步。模糊逻

    2024年02月12日
    浏览(12)
  • 你是真的“C”——实用memory类库函数的详细实现和使用

    你是真的“C”——实用memory类库函数的详细实现和使用

        😎博客昵称:博客小梦 😊最喜欢的座右铭:全神贯注的上吧!!! 😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主! 😘博主小留言:哈喽! 😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不

    2024年02月02日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包