永发信息网

怎样用matlab做时间序列平稳性检验

答案:2  悬赏:0  手机版
解决时间 2021-11-15 06:36
  • 提问者网友:杀手的诗
  • 2021-11-14 18:10
怎样用matlab做时间序列平稳性检验
最佳答案
  • 五星知识达人网友:等灯
  • 2021-11-14 18:53
检验一个时间序列是否平稳,用ADF检验,在matlab中是adftest( )函数,最简单的用法就是
h = adftest(Y), 其中Y为待检验序列,返回值h=1表示序列平稳,h=0表示非平稳。比如


%构造两个序列进行检测
t = (1:100)';
y1 = randn(100,1); %平稳序列
y2 = randn(100,1) + .2*t;  %非平稳序列
plot(t,y1,t,y2);
adftest(y1) %返回1,即序列平稳

adftest(y2) %返回0,即序列非平稳



全部回答
  • 1楼网友:污到你湿
  • 2021-11-14 19:20
另外对于平稳时间序列有三大建模方法:
1、Box-Jenkins建模方法
2、Pandit-Wu建模方法
3、长自回归、白噪化建模方法
一般用Box-Jenkins建模方法,但Pandit-Wu建模方法更简单。
把数据转化为时间序列数据在估计,函数为y=iddata(x)
再给你举个例子(不是很严格);
x=[2;2.5]
for k=1:198
x(k+2)=0.7*x(k+1)+0.2*x(k)+3*randn(1,1);
end
clear k
plot(x)
另外matlab有平稳检验的函数。函数说明如下:
dfARDTest Augmented Dickey-Fuller unit root
test for AR model with drift

dfARTest Augmented Dickey-Fuller unit root
test for zero-drift AR model

dfTSTest Augmented Dickey-Fuller unit root
test for trend-stationary AR model

ppARDTest Phillips-Perron unit root test for
AR(1) model with drift

ppARTest Run Phillips-Perron unit root test
for zero-drift AR(1) model

ppTSTest Phillips-Perron unit root test for
trend-stationary AR(1) model
实际上时间序列x(t)可能有趋势因素,有季节因素,有异常因素,有异方差情形
如有趋势因素,要得到平稳的序列有如下方法
Box-Jenkins建模方法是差分,再用ADF检验,不行就再差分,再用ADF检验
直到通过ADF检验
Pandit-Wu建模方法样本减去平均值

如有季节因素,就用HEGY检验,在季节差分。得到平稳的序列

如有异常因素,就就用异常值检验。

如有异方差(用Ljung-Box Q统计量检验),就用ARCH,或GARCH模型

模型定阶有很多方法:
1,残差方差图定阶
2、F检验定阶
3、AIC,BIC定阶
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯