⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chafen.m

📁 使用游程法对时间序列进行平稳性检验
💻 M
字号:
function [ w ] = ChaFen( TimeSeries,dMax )%UNTITLED1 Summary of this function goes here%  Detailed explanation goes herex=TimeSeries;% 计算时间序列的长度len=length(x);%平稳性分析,确定差分次数d%判断序列是否为平稳序列,是,则不变,不是则进行差分,直至差分后的序列是平稳的d=0;  %初始化差分次数为0%用w表示差分后的平稳时间序列w=x;  %初始化for i=1:dMax   flag = stationary(w); % 判断是否平稳,平稳flag=1	if  flag==0          %不平稳        temp=zeros(1,len);        for j=(i+1):len            temp(j)=w(j)-w(j-1);        end        w=temp; 		d=d+1;    else                %平稳        break;    endendfunction flag = stationary(timeSeries)%平稳性判断函数%平稳序列满足均值方差与t无关,自相关函数与起始时间无关只与时间间隔有关%根据游程法判断数据是否是平稳的,如果是平稳过程,flag=1;反之则flag=0;%初始化flag=0;N1=0;N2=0;Num_ych=1;       %正符号数N1,负符号数N2,游程数Num_ych;E_ych=0;V_ych=0;T_Z=0;mean_timeSeries=mean(timeSeries);  %求平均值flen=length(timeSeries);for i=1:1:flen;	if timeSeries(i)>=mean_timeSeries;	    N1=N1+1;    else        N2=N2+1;	end	if i>1&&((timeSeries(i)>=mean_timeSeries&&timeSeries(i-1)<mean_timeSeries)||(timeSeries(i)<mean_timeSeries&&timeSeries(i-1)>=mean_timeSeries));	    Num_ych= Num_ych+1;	endendE_ych=1+2*N1*N2/(N1+N2);V_ych=sqrt(2*N1*N2*(2*N1*N2-(N1+N2))/((N1+N2)*(N1+N2)*(N1+N2-1)));T_Z=(Num_ych-E_ych)/(2*V_ych);if abs(T_Z)<=1.96   flag=1;            %平稳else    flag=0;          %不平稳end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -