Borrar filtros
Borrar filtros

matlan coding error massage where ~ is used

2 visualizaciones (últimos 30 días)
Maria hassan
Maria hassan el 6 de Dic. de 2016
Editada: Geoff Hayes el 6 de Dic. de 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 comentarios
Maria hassan
Maria hassan el 6 de Dic. de 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 el 6 de Dic. de 2016
Editada: James Tursa el 6 de Dic. de 2016
What version of MATLAB are you using? The ~ syntax was introduced relatively recently.

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Community Treasure Hunt

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

Start Hunting!

Translated by