Standard deviation values are to big

조회 수: 4 (최근 30일)
Nik Rocky
Nik Rocky 2020년 7월 4일
댓글: Nik Rocky 2020년 7월 6일
Hello,
the measures on first pic is a dataset:
later. I change my script and now I create a mean values (between groups 0.5m and 2m) and plot MEAN-Values of both groups and STD deviation:
Mean is right, but std seems are too big!?
Why is this happens? Any idea?
code:
steps_SNR = 15; %%% give step size and be happy
save_plot = 1; %%% print
print_lablepoints = 1; %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TIME1 = datestr(now, 'dd/mm/yy-HH:MM:SS');
disp('*******************************************************************')
disp('Beginn:')
disp(TIME1)
disp('*******************************************************************')
addpath(genpath('/home/user/workspace/QT/Software_2.0_QT/IO/'));
Res = ('/home/user/workspace/QT/Software_2.0_QT/SORT_RESULTS/End/');
%ah = cd('/home/nikitajarocky/workspace/QT/Software_2.0_QT/IO/RESULTS/VS/');
set(groot, 'DefaultFigureVisible', 'on')
i = dir('**/*.mat');
tic
cla()
M_input_1 = cell(length(i), 1);
M_input_2 = cell(length(i), 1);
M_input_3 = cell(length(i), 1);
M_input_4 = cell(length(i), 1);
plotCount = 1;
legendStrings = [];
Value_Sort = cell(length(i),1);
for j = 1:length(i)
roc_file_folder = i(j).folder;
roc_file_name = i(j).name;
ROC_File_Folder_Name = fullfile(roc_file_folder,roc_file_name);
load(ROC_File_Folder_Name)
disp(roc_file_name)
folder = i(j).folder;
Title_Parts = strsplit(folder, '/');
Motor = Title_Parts{1,end-3};
Motor = strsplit(Motor, '_');
Motor = Motor{1,end};
Mic_Dis = Title_Parts{1,end-1};
Scen = Title_Parts{1,end-2};
Scen = strsplit(Scen, '_');
Scen = Scen{1,end};
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SNR_help = ((length(M)-1)/2)*steps_SNR;
SNR = -SNR_help:steps_SNR:SNR_help;
%figure('Name',' receiver operating characteristic','NumberTitle','on');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
str = strsplit(roc_file_name, '_');
str_dist = str{1,4};
str_mic = str{1,5};
if (strcmp(str_dist,'0.5m')|| strcmp(str_dist,'0.5')) && strcmp(str_mic,'AKG')
M_input_1{j} = M;
label1 = extractBefore({i(j).name}, ".mat");
label1 = extractAfter(label1, "_");
elseif strcmp(str_dist,'2m') && strcmp(str_mic,'AKG')
M_input_2{j} = M;
label2 = extractBefore({i(j).name},".mat");
label2 = extractAfter(label2, "_");
elseif (strcmp(str_dist,'0.5m')|| strcmp(str_dist,'0.5')) && strcmp(str_mic,'SONY')
M_input_3{j} = M;
label3 = extractBefore({i(j).name}, ".mat");
label3 = extractAfter(label3, "_");
elseif strcmp(str_dist,'2m') && strcmp(str_mic,'SONY')
M_input_4{j} = M;
label4 = extractBefore({i(j).name}, ".mat");
label4 = extractAfter(label4, "_");
end
for u = 1:length(M)
if print_lablepoints ==1
buffer = [.1 .3 .5];
buffer = repmat(buffer,1,ceil(numel(M(:,2))/numel(buffer)));
buffer(numel(M(:,2))+1:end) = [];
[~, ySortIdx] = sort(M(:,2));
buffer(ySortIdx) = buffer;
end
end
end
M_input_1 = cat(3, M_input_1{:});
M1 = mean(M_input_1, 3);
S1 = std(M_input_1,0,3);
M_input_2 = cat(3, M_input_2{:});
M2 = mean(M_input_2, 3);
S2 = std(M_input_2,0,3);
M_input_3 = cat(3, M_input_3{:});
M3 = mean(M_input_3, 3);
S3 = std(M_input_3,0,3);
M_input_4 = cat(3, M_input_4{:});
M4 = mean(M_input_4, 3);
S4 = std(M_input_4,0,3);
ax = gca;
axes.SortMethod='ChildOrder';
if any(M1)
%plot(M1(:,2),M1(:,1),'-o','DisplayName',label1{1});
errorbar(M1(:,2),M1(:,1),S1(:,2),S1(:,1),'-o','both','DisplayName',label1{1})
legendStrings{plotCount} = label1{1};
plotCount = plotCount + 1;
labelpoints(M1(:,2),M1(:,1), SNR, 'E', buffer)
hold on
end
if any(M2)
%plot(M2(:,2),M2(:,1),'-o','DisplayName',label2{1});
errorbar(M2(:,2),M2(:,1),S2(:,2),S2(:,1),'-o','both','DisplayName',label2{1})
legendStrings{plotCount} = label2{1};
plotCount = plotCount + 1;
labelpoints(M2(:,2),M2(:,1), SNR, 'E', buffer)
hold on
end
if any(M3)
%plot(M3(:,2),M3(:,1),'-o','DisplayName',label3{1});
errorbar(M3(:,2),M3(:,1),S3(:,2),S3(:,1),'-o','both','DisplayName',label3{1})
legendStrings{plotCount} = label3{1};
plotCount = plotCount + 1;
labelpoints(M3(:,2),M3(:,1), SNR, 'E', buffer)
hold on
end
if any(M4)
%plot(M4(:,2),M4(:,1),'-o','DisplayName',label4{1});
errorbar(M4(:,2),M4(:,1),S4(:,2),S4(:,1),'-o','both','DisplayName',label4{1})
legendStrings{plotCount} = label4{1};
plotCount = plotCount + 1;
labelpoints(M4(:,2),M4(:,1), SNR, 'E', buffer)
hold on
end
lgd = legend(legendStrings, 'Interpreter', 'none','Location','best');
title(lgd,'Datasets')
title(['ROC: Motorentyp ',Motor,', Motorengruppe ',Scen,', Konstante ',Mic_Dis],'Interpreter','none')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
help_x = 0:0.1:1;
help_y = 0:0.1:1;
h = plot(help_x,help_y,'--','Color','g');
h.Annotation.LegendInformation.IconDisplayStyle = 'off';
xlabel('False discovery rate')
ylabel('True positive rate')
xlim([0 1]);
ylim([0 1]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
set(0,'DefaultFigureColor','remove')
file_save = strcat('Motorentyp_',Motor,'Motorengruppe_',Scen,'_Konstante_',Mic_Dis,'.eps');
Full_Export_Path = fullfile(Res,file_save);
if save_plot == 1
export_fig(Full_Export_Path)
end
disp('*******************************************************************')
disp('Time Beginn:')
disp(TIME1)
disp('*******************************************************************')
disp('Time finish:')
TIME2 = datestr(now, 'dd/mm/yy-HH:MM:SS');
disp(TIME2)
disp('*******************************************************************')
toc
Should I use errorbar wrong or std-function?
Thank you!

답변 (1개)

Nik Rocky
Nik Rocky 2020년 7월 4일
Oh, mea culpa - I see, standard deviation bars are not wrong - the results from different measures are really far away from each other! Maybe its a right time to make a laser correction =)
I still left my code here - maybe someone can use it)
  댓글 수: 2
Nik Rocky
Nik Rocky 2020년 7월 6일
Why errorbars has different length? What is wrong?
Nik Rocky
Nik Rocky 2020년 7월 6일
Here is solution:
errorbar(M4(:,2),M4(:,1),S4(:,2),S4(:,2),S4(:,1),S4(:,1),'-v','LineWidth',1.5,'MarkerFaceColor','green','MarkerSize',10,'MarkerEdgeColor','black','DisplayName',label4{1})

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Data Distribution Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by