Documente Academic
Documente Profesional
Documente Cultură
% This is the Matlab code to detect bubbles using the testing procedure in Phillips, Shi and Yu
(2015). We thank Dr. Shuping Shi at Macquarie University for technical support.
% *************************************************************************
clear all
close all
clc
format short
qe=[0.90;0.95;0.99];
tic;
m=2000;
T=2183;
r0=0.01+1.8/sqrt(T);
swindow0=floor(r0*T);
dim=T-swindow0+1;
SI=1;
randn('seed',SI);
e=randn(T,m);
a=T^(-1);
y=cumsum(e+a);
gsadf=ones(m,1);
for j=1:1:m;
sadfs=zeros(dim,1);
for r2=swindow0:1:T;
dim0=r2-swindow0+1;
rwadft=zeros(dim0,1);
for r1=1:1:dim0;
rwadft(r1)= ADF_FL(y(r1:r2,j),0,1);
end;
sadfs(r2-swindow0+1)=max(rwadft);
end;
gsadf(j)=max(sadfs);
end;
quantile_gsadf=quantile(gsadf,qe);
filename = 'CV_GSADF.xlsx';
xlswrite(filename,gsadf,1,'A1:A2000');
disp([qe quantile_gsadf]);
clear all
close all
clc
format short
tic;
qe=[0.90;0.95;0.99];
m=2000;
T=2183;
r0=0.01+1.8/sqrt(T);
swindow0=floor(r0*T);
dim=T-swindow0+1;
Msadfs=zeros(m,dim);
for r2=swindow0:1:T;
SI=1;
randn('seed',SI);
e=randn(r2,m);
a=r2^(-1);
y=cumsum(e+a);
badfs=zeros(r2-swindow0+1,m);
for j=1:1:m;
for r1=1:1:r2-swindow0+1;
badfs(r1,j)= ADF_FL(y(r1:r2,j),0,1);
end;
end;
sadfs=max(badfs);
Msadfs(:,r2-swindow0+1)=sadfs';
end;
quantile_bsadfs=quantile(Msadfs,qe);
toc;
type CV_BSADF.txt;
% Third, we calculate sample sequences for the GSADF/BSADF statistic
clear all
close all
clc
format short
SPDV=xlsread('D:\dataset.xlsx');
y=price;
T=length(y);
r0=0.01+1.8/sqrt(T);
swindow0=floor(r0*T);
dim=T-swindow0+1;
badfs=zeros(T-swindow0+1,1);
for i=swindow0:1:T;
badfs(i-swindow0+1,1)= ADF_FL(y(1:i,1),0,1);
end;
sadf=max(badfs);
figure (1)
plot(badfs);
pause
%% THE GENERALIZED SUP ADF TEST %%%%%%
r2=swindow0:1:T;
r2=r2';
rw=r2-swindow0+1;
bsadfs=zeros(1,dim);
for v=1:1:size(r2,1);
swindow=swindow0:1:r2(v);
swindow=swindow';
r1=r2(v)-swindow+1;
rwadft=zeros(size(swindow,1),1);
for i=1:1:size(swindow,1);
rwadft(i)= ADF_FL(y(r1(i):r2(v),1),0,1);
end;
bsadfs(1,v)=max(rwadft);
end;
gsadf=max(bsadfs(1,:),2);
figure (2)
plot(bsadfs);