function r = stats1(r) max_conv_length = 100; interval = 1500:2000; for i=1:r.n part = r.x(i,interval); part = part - mean(part) * ones(size(part)); res = xcorr( part, max_conv_length, 'coef'); r.signal_xcorr(i,:) = res(max_conv_length+1+1:numel(res)); seq = r.signal_xcorr(i,:); seq(1)=-1; [y, ind] = max(seq); step = ind(1); fprintf('For node %d, max corr is for step size = %d\n', i, step); r.conv_length(i) = step; end for i=1:r.n conv_length = r.conv_length(i); mask = ones(1,conv_length)/conv_length; degree = sum(r.A(i,:)); res = conv( r.x(i,:) - r.epsilon * r.compensate(i,:) , mask); r.convolved(i,1:numel(res)) = res; end T = size(r.x,2); for k = 1:T x = r.convolved(:,k); r.convolved_disagreement(k) = x' * r.L * x; r.convolved_bias(k) = mean(x) - r.goal; r.convolved_mse(k) = 0; for i=1:r.n r.convolved_mse(k)=r.convolved_mse(k)+ (1/r.n) * ( x(i) - r.goal)^2; end end %return figure; num_fig = 6; fig = 1; colors = {'g','b','k','m'}; subplot(num_fig,1,fig); fig=fig+1; hold on; title('correlation / convolution step') plot(r.signal_xcorr', 'b.'); axis([1 size(r.signal_xcorr,2) 0 1.2]); subplot(num_fig,1,fig); fig=fig+1; hold on; plot(r.x','b-'); plot([0 T],[r.goal r.goal],'r-'); title('Unsmoothed'); a=axis; axis([1 T r.goal-3*r.epsilon r.goal+3*r.epsilon]) subplot(num_fig,1,fig); fig=fig+1; hold on; plot(r.convolved(:,1:T)','b-') plot([0 T],[r.goal r.goal],'r-'); title('Smoothed'); a=axis; axis([1 T r.goal-3*r.epsilon r.goal+3*r.epsilon]) subplot(num_fig,1,fig); fig=fig+1; hold on; plot( log_or_small(r.mse(1:T)), 'r') plot( log_or_small(r.convolved_mse(1:T)),'b') legend('normal','convolved'); title('MSE'); ylabel('log') % a=axis; axis([1500 2000 a(3) a(4)]) subplot(num_fig,1,fig); fig=fig+1; hold on; plot( log_or_small(r.disagreement(1:T)), 'r') plot( log_or_small(r.convolved_disagreement(1:T)),'b') legend('normal','convolved'); title('Disagreement'); ylabel('log') % a=axis; axis([1500 2000 a(3) a(4)]) subplot(num_fig,1,fig); fig=fig+1; hold on; plot( r.bias(1:T), 'r') plot( r.convolved_bias(1:T),'b') legend('normal','convolved'); title('Bias'); % a=axis; axis([1500 2000 a(3) a(4)]) a=axis; axis([1 T -3*r.epsilon 3*r.epsilon]) function r = log_or_small(k) for i=1:numel(k) r(i) = log(max(k(i),0.00000001)); end