matlan coding error massage where ~ is used

1 view (last 30 days)
Maria hassan
Maria hassan on 6 Dec 2016
Edited: Geoff Hayes on 6 Dec 2016
Hi
I am running some codes but getting error massages in each line with sign (~). How can I fix it please?
here are the codes:
%%This codes are written by Furkan Emirmahmutoglu and updated at February 2016.
close all
clear all
clc
%%Generator
sprev = rng(325354,'v5normal');
%%Selection of the Relevant Model
method=input('Enter the appropriate method (1 for UO,2 for IPS, 3 for EO):');
model=input('1 for no deterministic term; 2 for demeaned; 3 for demeaned and detrended =>');
%%Inputs:
bs=input('The number of bootstrap replication =>'); %%The number of bootsrap replication
pmax=input('The number of maximal lag length => '); %%maximal lag length
lagcriteria=input('1 for AIC; 2 for SBC =>'); %%1 for aic; 2 for sbc
donguZamani=0;
%%Read Data Set
y = xlsread('short.xlsx');
[T,N]=size(y);
if model==1
y=y;
elseif model==2
y=detrend(y,'constant');
elseif model==3
y=detrend(y);
end
dy=zeros(T,N); dy(1,:)=NaN; dy(2:T,:)=diff(y);
lagno=zeros(N,1); tvalue=zeros(N,1); Wald=zeros(N,1); Fvalue=zeros(N,1);
if method==1
y1=realpow(y,3);
elseif method==2
y1=y;
elseif method==3
y1=realpow(y,3);
y2=realpow(y,4);
end
A=cell(N,1); alfahat=cell(N,1);
for i=1:N
if method==1
A{i}=y1(:,i);
elseif method==2
A{i}=y1(:,i);
elseif method==3
A{i}=[y1(:,i) y2(:,i)];
end
y1lag=lagmatrix(A{i},1);
%%p=>1 için AIC ve SIC deðerlerinin hesaplanmasý
sbc=zeros(pmax,1);aic=zeros(pmax,1);
for j=1:pmax
dylag=lagmatrix(dy(:,i),(1:j));
W=[y1lag(pmax+2:T,:) dylag(pmax+2:T,:)];
[~,error,~,~]=OLS(dy(pmax+2:T,i),W);
[aic(j),sbc(j)]=IC(y,error,pmax,j);
end
if lagcriteria==1
[~,lagno(i)]=min(aic);
elseif lagcriteria==2
[~,lagno(i)]=min(sbc);
end
dylag=lagmatrix(dy(:,i),(1:lagno(i)));
W=[y1lag(lagno(i)+2:T,:) dylag(lagno(i)+2:T,:)];
[alfahat{i},~,sigma2,tstat]=OLS(dy(lagno(i)+2:T,i),W);
if method==1 || method==2
tvalue(i,1)=tstat(1);
elseif method==3
R=[eye(2) zeros(2,lagno(i))];
Wald(i)=(R*alfahat{i})'*pinv(R*pinv(W'*W)*R')*(R*alfahat{i})/sigma2;
Fvalue(i)=Wald(i)/2;
tvalue(i,1)=tstat(2);
end
end
%%Orjinal veriden elde edilen tbar istatistiði
if method==1 || method==2
tbar=mean(tvalue);
elseif method==3
Fbar=mean(Fvalue);
tbar=mean(abs(tvalue));
end
uhat=diff(y,1);
epsilonhat=cell(N,1);tohat=cell(N,1);
%%Step2:Sieve Bootstarp
for i=1:N
uhatlag=lagmatrix(uhat(:,i),(1:lagno(i)));
[beta,error,~,~]=OLS(uhat(lagno(i)+1:end,i),uhatlag(lagno(i)+1:end,:));
epsilonhat{i}=error;
tohat{i}=beta;
end
for i=1:N
if lagno(i)==max(lagno)
epsilonhat{i}=epsilonhat{i};
else
epsilonhat{i}(1:max(lagno)-lagno(i))=[];
end
end
%%Step 2' den elde edilen artýklarýn zaman boyutunda ortalamadan çýkarýlmasý
epsilonhatmean=cellfun(@mean, epsilonhat,'UniformOutput',0);
epsilontilda=cellfun(@minus, epsilonhat,epsilonhatmean,'UniformOutput',0);
T1=size(epsilontilda{1},1);
M=round(T);
E=cat(3,epsilontilda{:});
%%Step 3: Bootstrap hatalarýn üretilmesi
tbarboot=zeros(bs,1);Fbarboot=zeros(bs,1);
for s=1:bs
tic
star=unidrnd(T1,T+M,1);
Estar=E(star,:,:);
epsilonstar=cell(N,1); ustar=cell(N,1); ystar=cell(N,1);
for i=1:N
epsilonstar{i}=Estar(:,:,i);
AA=[1 -1*tohat{i}'];
ustar{i}=filter(1,AA,epsilonstar{i});
ustar{i}(1:M)=[];
ystar{i}=filter(1,[1 -1],ustar{i});
end
AAA=cell2mat(ystar);
ystar=reshape(AAA,T,N);
if model==1
ystar=ystar;
elseif model==2
ystar=detrend(ystar,'constant');
elseif model==3
ystar=detrend(ystar);
end
if method==1
ystar1=realpow(ystar,3);
elseif method==2
ystar1=ystar;
elseif method==3
ystar1=realpow(ystar,3);
ystar2=realpow(ystar,4);
end
dystar=zeros(T,N); dystar(1,:)=NaN; dystar(2:T,:)=diff(ystar);
Astar=cell(N,1); alfahatstar=cell(N,1);
for i=1:N
if method==1
Astar{i}=ystar1(:,i);
elseif method==2
Astar{i}=ystar1(:,i);
elseif method==3
Astar{i}=[ystar1(:,i) ystar2(:,i)];
end
y1lagstar=lagmatrix(Astar{i},1);
dylagstar=lagmatrix(dystar(:,i),(1:lagno(i)));
Wstar=[y1lagstar(lagno(i)+2:T,:) dylagstar(lagno(i)+2:T,:)];
[alfahatstar{i},~,sigma2star,tstatstar]=OLS(dystar(lagno(i)+2:T,i),Wstar);
if method==1 || method==2
tvaluestar(i,1)=tstatstar(1);
elseif method==3
R=[eye(2) zeros(2,lagno(i))];
Waldstar(i)=(R*alfahatstar{i})'*pinv(R*pinv(Wstar'*Wstar)*R')*(R*alfahatstar{i})/sigma2star;
Fvaluestar(i,1)=Waldstar(i)/2;
tvaluestar(i,1)=tstatstar(2);
end
end
if method==1 || method==2
tbarboot(s,1)=mean(tvaluestar);
elseif method==3
Fbarboot(s,1)=mean(Fvaluestar);
end
if method==1 || method==2
if tbarboot(s,1)<tbar
ind1(s)=1;
else
ind1(s)=0;
end
elseif method==3
if Fbarboot(s,1)>Fbar
ind1(s)=1;
else
ind1(s)=0;
end
end
toc
end
pvalue=(sum(ind1)+1)/(bs+1);
%%Istatistikleri ve bootstrap p degerlerini ekrana yazdir.
if method==1 || method==2
disp(sprintf('\n tbar test value \t p value \t \n'));
disp(sprintf('\t\t %4.3f \t %4.3f \t \n',tbar,pvalue));
elseif method==3
disp(sprintf('\n Fbar test value \t p value \t \n'));
disp(sprintf('\t\t %4.3f \t\t %4.3f \t \n',Fbar,pvalue));
end
if method==3 && pvalue<0.10
options=gaoptimset('Generations',1000,'TolFun', 1e-8,'TolCon',1e-8,'Display','off');
lb=[0 -inf]; ub=[inf 0];
ylag=lagmatrix(y,1);
lagno1=zeros(N,1);uhat1=cell(N,1); beta1=cell(N,1);beta2=cell(N,1);
for i=1:N
myfun1=@(c) (dy(2:end,i)-(1-exp(-c(1)*ylag(2:end,i).^2)).*ylag(2:end,i)*c(2))'*(dy(2:end,i)-(1-exp(-c(1)*ylag(2:end,i).^2)).*ylag(2:end,i)*c(2));
c=ga(myfun1,2,[],[],[],[],lb,ub,[],[],options);
eps(:,i)=dy(2:end,i)-(1-exp(-c(1)*ylag(2:end,i).^2)).*ylag(2:end,i)*c(2);
sbc1=zeros(pmax,1); aic1=zeros(pmax,1);
for j=1:pmax
epslag=lagmatrix(eps(:,i),(1:j));
[~,error,~,~]=OLS(eps(pmax+1:end,i),epslag(pmax+1:end,:));
[aic1(j),sbc1(j)]=IC(eps,error,pmax,j);
end
if lagcriteria==1
[~,lagno1(i)]=min(aic1);
elseif lagcriteria==2
[~,lagno1(i)]=min(sbc1);
end
epslag=lagmatrix(eps(:,i),(1:lagno1(i)));
W=epslag(lagno1(i)+1:end,:);
[alfa,error,~,~]=OLS(eps(lagno1(i)+1:end,i),W);
uhat1{i}=error;
beta1{i}=c;
beta2{i}=alfa;
end
for i=1:N
if lagno1(i)==max(lagno1)
uhat1{i}=uhat1{i};
else
uhat1{i}(1:max(lagno1)-lagno1(i))=[];
end
end
uhatmean1=cellfun(@mean, uhat1,'UniformOutput',0);
utilda1=cellfun(@minus, uhat1,uhatmean1,'UniformOutput',0);
T1=size(utilda1{1},1);
M=round(T);
E1=cat(3,utilda1{:});
tbarstar=zeros(bs,1);
for s=1:bs
tic
star1=unidrnd(T1,T+M,1);
Estar1=E1(star1,:,:);
ustar1=cell(N,1); epsilonstar1=cell(N,1);
for i=1:N
ustar1{i}=Estar1(:,:,i);
epsilonstar1{i}=filter(1,[1 -1*beta2{i}'],ustar1{i});
epsilonstar1{i}(1:M)=[];
end
AAA=cell2mat(epsilonstar1);
epsilonstar1=reshape(AAA,T,N);
for i=1:N
ystar1(1,i)=epsilonstar1(1,i);
for t=2:T
ystar1(t,i)=ystar1(t-1,i)+(1-exp(-beta1{i}(1)*ystar1(t-1,i)^2))*beta1{i}(2)*ystar1(t-1,i)+epsilonstar1(t,i);
end
end
if model==1
ystar1=ystar1;
elseif model==2
ystar1=detrend(ystar1,'constant');
elseif model==3
ystar1=detrend(ystar1);
end
tvaluestar=zeros(N,1);
for i=1:N
ystar_1=realpow(ystar1(:,i),3);
ystar_2=realpow(ystar1(:,i),4);
A=[ystar_1 ystar_2];
ystarlag1=lagmatrix(A,1);
dystar1=zeros(T,N);dystar1(2:end,:)=diff(ystar1,1);
dystarlag1=lagmatrix(dystar1(:,i),(1:lagno1(i)));
W=[ystarlag1(lagno1(i)+2:end,:) dystarlag1(lagno1(i)+2:end,:)];
[~,~,~,tstat]=OLS(dystar1(lagno1(i)+2:end,i),W);
tvaluestar(i,1)=tstat(2);
end
tbarboot(s,1)=mean(abs(tvaluestar));
if tbarboot(s,1)>tbar
ind2(s)=1;
else
ind2(s)=0;
end
toc
end
pvalue1=(sum(ind2)+1)/(bs+1);
disp(sprintf('\n tbar test value \t p value \t \n'));
disp(sprintf('\t\t %4.3f \t %4.3f \t \n',tbar,pvalue1));
end
Regards Sarah
  3 Comments
Maria hassan
Maria hassan on 6 Dec 2016
Hi KSSV,
Many thanks for your reply.
The first massage I get is '?? Error: File: matlablabtest.m Line: 62 Column: 11 Expression or statement is incorrect--possibly unbalanced (, {, or [.
Also getting same error in line: 67,69,74,98,169,225,230,232,237,298 where (~)is used. I have attached the data is that help in checking it.
Regards Sarah
James Tursa
James Tursa on 6 Dec 2016
Edited: James Tursa on 6 Dec 2016
What version of MATLAB are you using? The ~ syntax was introduced relatively recently.

Sign in to comment.

Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!