필터 지우기
필터 지우기

Code correct? - signrank testing

조회 수: 1 (최근 30일)
Sascha
Sascha 2014년 1월 6일
Hi.
I want to compare two conditions of my dataset using the signrank function (data distribution is not normal). The data ("outputmatrix2") is threedimensional (pixels-timesteps-conditions) and unwanted pixels are set to NaN- which would be all but approximately 80.
Unfortunately, in almost every timestep, I get significant differences between the two conditions, even before stimulus onset (see attached image, "0" on x-axis is stimulus onset, an asterisk above the 2 graphs indicates significance with p<0.05).
I wonder, if my- pretty primitive- code is correct? Or maybe anyone has any other suggestions? Thx!
% settings
from_plot = -20; to_plot = 200;
condA = [19];
condB = [23];
clear cond2b cond1b A A2 A3 B B2 B3 AAA AA C D AAA2 D2 C2 AA2 p2 indeks2
% get rid of NaNs
A = nanmean(outputmatrix2(:,:,condA),3);
for j=1:size(outputmatrix2,2) %frames
A2 = A(:,j);
A2 = A2(A2==A2);
A3 (:,j) = A2;
end
B = nanmean(outputmatrix2(:,:,condB),3);
for j=1:size(outputmatrix2,2)%frames
B2 = B(:,j);
B2 = B2(B2==B2);
B3 (:,j) = B2;
end
% testing
for jj=1:size(A3,2)
[p2(1,jj),h2(1,jj)]=signrank(A3(:,jj),B3(:,jj));
end
% create fancy asterisk-plot for significance
indeks2 = find(p2<0.05);
AAA2(1,:)=nanmean(A3,1);
AAA2(2,:)=nanmean(B3,1);
AA2=nanmax(AAA2,[],1)+0.0001;
C2=zeros(size(AA2)); C2(indeks2)=1;
D2=AA2.*C2; D2(D2==0)=NaN;
% errorbar
A3std = nanstd(A3);
B3std = nanstd(B3);
D2 = D2+max([A3std; B3std]);
% plot
ff=figure;
hold on;
plot1 = plot(from_plot:10:to_plot,nanmean(A3(:,18:40),1),'o-','Linewidth',3,'markersize',4,'Color','green');
errorbar(from_plot:10:to_plot,nanmean(A3(:,18:40),1),A3std(:,18:40),'ko-','Linewidth',2,'markersize',4,'Color','green'); hold on;
plot2 = plot(from_plot:10:to_plot,nanmean(B3(:,18:40),1),'ro-','Linewidth',3,'markersize',4,'Color','black');
errorbar(from_plot:10:to_plot,nanmean(B3(:,18:40),1),B3std(:,18:40),'ro-','Linewidth',2,'Color','black');
plot(from_plot:10:to_plot,D2(:,18:40),'k*','markersize',8,'LineWidth',1)
plot(from_plot:10:to_plot,zeros(1,23),'k--')
set(gca,'Fontsize',14,'XGrid','on','XLim',[from_plot to_plot])
plot3 = [plot1,plot2];
LE = legend(plot3,{'cond_A'; 'cond_B'});
set(LE,'Interpreter','none','Fontsize',16)
set(gcf,'PaperPositionMode','auto')

답변 (0개)

카테고리

Help CenterFile Exchange에서 Hypothesis Tests에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by