天天看點

matlab遊程法檢驗平穩性,輪次(遊程)檢驗法.docx

輪次檢驗法原理輪次檢驗法是平穩性的非參數檢驗法,該方法隻涉及一組實測資料,而不需要假設資料的分布規律,是以本方法具有良好的實用性。輪次(遊程)檢驗法的工作步驟:1)将待檢驗資料序列{xi}分成m個等分,并計算各等分的方差2)計算3)當 時将該等分記為“+”,當時将該等分記為“-”。4)将m個等分按“+”“-”排成觀察序列,并将符号相同的連續序列定義為一個輪次(遊程)。統計輪次(遊程)數r作為檢驗統計量。5) (“+”的總數), (“-”的總數)6)當15時,認為是小樣本量,查輪次(遊程)檢驗分布表,可得在顯著性水準的上下限。7)若,則為平穩性資料8) 當當15時,可認為是大樣本量,這時可用正态來近似,可用正态分布表來定出檢驗的接受域和否定域。計算統計量 9) +1 10)在,若|Z|,則為平穩性資料。流程圖輪次檢驗的matlab程式代碼clearx=rand(1,100); %取随機數序列for i=1:25 a=x((4*i-3):4*i); %平均分組 c(i)=var(a); %求每一組的方差 fprintf('c(%d)=%f\n',i,c(i)); %輸出每一組的方內插補點endc=[c(1) c(2) c(3) c(4) c(5) c(6) c(7) c(8) c(9) c(10) c(11) c(12) c(13) c(14) c(15) c(16) c(17) c(18) c(19) c(20) c(21) c(22) c(23) c(24) c(25)];cev=(max(c)+min(c))/2 ; %求方差的均值N1=0;N2=0;for i=1:25 if c(i)>cev b='+'; q(i)=1;%用來計量觀察序列正負号的變化 N1=N1+1; %統計“+”的總數 else b='-'; q(i)=-1; N2=N2+1; %統計“-”的總數 end fprintf(b,q(i)); r=1;end for i=2:1:25 if q(i)*q(i-1)==1 r=r; else r=r+1;%統計遊程數 r end end fprintf('r=%d\n',r); %輸出遊程數 N1,N2if N1<=15&N2<=15 fprintf('請查輪次檢驗分布表\n');%通過查輪次檢驗用分布表判斷資料平穩性elseif N1>15|N2>15 %大樣本量,用正太分布近似 N=N1+N2; u=2*N1*N2/N+1; cigma=sqrt(2*N1*N2*(2*N1*N2-N)/(N^2*(N-1))); z=(r-u)/cigma; fprintf('z=%f\n',z); z=abs(z); %取z的絕對值 z if z<=1.96 fprintf('此資料為平穩資料'); else fprintf('此資料為不平穩資料'); endend參考文獻:楊位欽.時間序列分析與動态資料模組化.北京:北京理工大學,1987吉林大學 汽車工程學院 車輛工程 袁中亮 研[email protected]