Skip to content
Snippets Groups Projects
Commit e486088a authored by marwan's avatar marwan
Browse files

definitions of criteria checked and corrected

parent c14ce6ef
No related branches found
No related tags found
No related merge requests found
......@@ -23,7 +23,7 @@ function varargout=arfit(varargin)
% end
% arfit(x,10)
% Copyright (c) 2002-2006 by AMRON
% Copyright (c) 2002-2007 by AMRON
% Norbert Marwan, Potsdam University, Germany
% http://www.agnld.uni-potsdam.de
%
......@@ -31,6 +31,9 @@ function varargout=arfit(varargin)
% $Revision$
%
% $Log$
% Revision 2.5 2006/02/14 11:45:49 marwan
% *** empty log message ***
%
% Revision 2.4 2005/03/16 11:19:02 marwan
% help text modified
%
......@@ -211,7 +214,7 @@ switch(action)
'Tag','text',...
'String','Uni Potsdam',...
'Position',[66 2 22 3.5714]);
h2=textwrap(h,{[char(169),' AGNLD'],'University of Potsdam','2002-2006'});
h2=textwrap(h,{[char(169),' AGNLD'],'University of Potsdam','2002-2007'});
set(h,'String',h2)
%%%%% data and model axes
......@@ -251,7 +254,7 @@ switch(action)
set(h,'Position',[66.3333 25.1429-.33 pos(3) pos(4)])
h=axes('NextPlot','add');
for k=1:5,
h2=plot(0,0,'Tag',['criteria_line',num2str(k)],'Visible','off',props.criteria_line(k));
h2=plot(0,0,'Tag',['criteria_line',num2str(k)],'Visible','off',props.criteria_line(k));
end
set(h,props.axes,...
'Tag','criteria_axes',...
......@@ -435,8 +438,9 @@ switch(action)
case 'criteria'
set(h_fig,'CurrentAxes',h_criteria_axes)
h=findobj('Tag','significance_line','Parent',h_criteria_axes);
h=findobj('Tag','significance_line1','Parent',h_criteria_axes);
signif=get(h,'UserData');
for k=1:length(noshow_crit)
h=findobj('Tag',['criteria_line',num2str(noshow_crit(k))],'Parent',h_criteria_axes);
if ~isempty(h)
......@@ -447,7 +451,8 @@ switch(action)
for k=1:length(show_crit)
h=findobj('Tag',['criteria_line',num2str(show_crit(k))],'Parent',h_criteria_axes);
if isempty(h)
h=plot(1:maxm,crit(:,show_crit(k)));
h=plot(1:maxm,crit(:,show_crit(k)), 'Tag',['criteria_line',num2str(show_crit(k))]);
set(h,'Parent',h_criteria_axes,'Tag','criteria_line',props.criteria_line(k),'Visible','On')
set(h_criteria_axes,props.axes,...
'YTickLabel',[],...
......@@ -461,19 +466,44 @@ switch(action)
end
end
h=findobj('Tag','significance_line','Parent',h_criteria_axes);
% significance line for PACF
h=findobj('Tag','significance_line1','Parent',h_criteria_axes);
if isempty(h)
h=line([1 maxm],[signif(1) signif(1)])
set(h,props.criteria_line(6),...
'Parent',h_criteria_axes,...
'LineWidth',2,...
'Tag','significance_line1',...
'Color', props.criteria_line(2).Color, ...
'Visible','Off')
else
set(h,'YData',[signif(1) signif(1)],...
'XData',[1 maxm],...
'Visible','Off')
end
if strcmpi(get(findobj('Tag','criteria_line2','Parent',h_criteria_axes),'Visible'),'on')
set(h,'Visible','On')
else
set(h,'Visible','Off')
end
% significance line for Q criterion
h=findobj('Tag','significance_line2','Parent',h_criteria_axes);
if isempty(h)
h=line([1 maxm],[signif signif]);
h=line([1 maxm],[signif(2) signif(2)]);
set(h,props.criteria_line(6),...
'Parent',h_criteria_axes,...
'LineWidth',2,...
'Tag','significance_line',...
'LineWidth',2,...
'Color', props.criteria_line(5).Color, ...
'Tag','significance_line2',...
'Visible','Off')
else
set(h,'YData',[signif signif],...
set(h,'YData',[signif(2) signif(2)],...
'XData',[1 maxm],...
'Visible','Off')
end
if strcmpi(get(findobj('Tag','criteria_line5','Parent',h_criteria_axes),'Visible'),'on')
set(h,'Visible','On')
else
......@@ -548,7 +578,8 @@ switch(action)
% varianz
for p=1:maxm;
l=1:p;
V(p)=C(1)-sum(a(p+1,l+1).*C(l+1));
% V(p)=C(1)-sum(a(p+1,l+1).*C(l+1));
V(p)=C(1)-sum(a(p+1,l+1).^l .*C(l+1));
end
% criterias: 1 - residues variance
......@@ -566,23 +597,27 @@ switch(action)
y=filter([0 a(m+1,(1:m)+1)],1,x);
epsilon=(x-y);
epsilon_mean=mean(epsilon(m:end));
% sigma=sum(epsilon.^2)/(N);
sigma=var(epsilon);
% sigma=mean((x-mean(x)).*(y-mean(y)).^2);
clear rho
for k=1:25;
i=m+1:N-k-1;
rho(k)=sum((epsilon(i+1)-epsilon_mean).*(epsilon(i+k+1)-epsilon_mean))/sum((epsilon(i+1)-epsilon_mean).^2);
end
crit(m,1)=sigma;
crit(m,2)=a(m+1,m+1);
crit(m,3)=log(sigma)+2*(m+1)/(N);
crit(m,4)=log(sigma)+(m+1)*log(N)/(N);
crit(m,1)=sigma; % Variance of the residues
crit(m,2)=abs(a(m+1,m+1)); % PACF
crit(m,3)=log(sigma)+2*(m)/(N); % AIC
crit(m,4)=log(sigma)+(m)*log(N)/(N); % BIC
% crit(m,5)=log(sigma)+2*(m+1)*5*log(log(N-m))/(N-m);
crit(m,5)=N*sum(rho.^2);
end
signif=30/(max(crit(:,5))-min(crit(:,5))); % significance level for the Q criterion
% signif(1)=1.96 * std(diag(a(2:end,2:end))) / (max(crit(:,2))-min(crit(:,2))); % significance level for the PACF criterion
signif(1)=1.96 * sqrt(1/N) / (max(crit(:,2))-min(crit(:,2))); % significance level for the PACF criterion
signif(2)=30/(max(crit(:,5))-min(crit(:,5))); % significance level for the Q criterion
for k=1:size(crit,2);crit(:,k)=(crit(:,k)-min(crit(:,k)))/(max(crit(:,k))-min(crit(:,k)));end
y=make_model(a(2:end,2:end),V,in_m,N);
%%%% graphical output
......@@ -633,18 +668,44 @@ switch(action)
'XData',[1:size(crit,1)],...
'Visible','On')
end
end
% significance line for PACF criterion
h=findobj('Tag','significance_line1','Parent',h_criteria_axes);
if isempty(h)
h=line([1 maxm],[signif(1) signif(1)]);
set(h,props.criteria_line(6),...
'Parent',h_criteria_axes,...
'Tag','significance_line1',...
'Color', props.criteria_line(2).Color, ...
'UserData',signif,...
'LineWidth',2,...
'Visible','Off')
else
set(h,'YData',[signif(1) signif(1)],...
'XData',[1 maxm],...
'UserData',signif,...
'Visible','Off')
end
h=findobj('Tag','significance_line','Parent',h_criteria_axes);
if strcmpi(get(findobj('Tag','criteria_line2','Parent',h_criteria_axes),'Visible'),'on')
set(h,'Visible','On')
else
set(h,'Visible','Off')
end
% significance line for Q criterion
h=findobj('Tag','significance_line2','Parent',h_criteria_axes);
if isempty(h)
h=line([1 maxm],[signif signif]);
h=line([1 maxm],[signif(2) signif(2)]);
set(h,props.criteria_line(6),...
'Parent',h_criteria_axes,...
'Tag','significance_line',...
'UserData',signif,...
'LineWidth',2,...
'Tag','significance_line2',...
'UserData',signif,...
'Color', props.criteria_line(5).Color, ...
'LineWidth',2,...
'Visible','Off')
else
set(h,'YData',[signif signif],...
set(h,'YData',[signif(2) signif(2)],...
'XData',[1 maxm],...
'UserData',signif,...
'Visible','Off')
......@@ -654,11 +715,12 @@ switch(action)
else
set(h,'Visible','Off')
end
set(h_criteria_axes,props.axes,...
'Tag','criteria_axes',...
'Tag','criteria_axes',...
'YTickLabel',[],...
'Xlim',[1 maxm],...
'Ylim',[0 1],...
'Xlim',[1 maxm],...
'Ylim',[0 1],...
'UserData',crit,...
'Units','Norm',...
'NextPlot','add')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment