MATLAB의 박스 플롯에 대해 특정 백분위 수위가 위 수염으로 사용될 수 있는지 묻고 싶습니다. 95 위 백분위 수위를 위 수염으로, 5 백분위 수위를 낮은 수염으로 사용하고 싶습니다.Matlab Boxplot : 상단 위스커로 특정 백분위 수를 사용하거나 수동 위 위 커 편집 후 여분의 아웃 라이어를 제거합니다.
MATLAB의 기본 동작은 수염 길이 = 1.5 * IQR (75 번째 백분위 수 - 25 번째 백분위 수)이며이 수염 길이는 IQR의 다른 배수로 변경할 수 있지만 특정 백분위 수는 변경할 수 없습니다. 이 방법을 설명해 달라. 데이터의 다음 100 개에 대한 예
:
50 (반복 80 회), 76 (반복 10 회) 91, 92, 93, 94, 95, 96, 97, 98 99,
또는 MATLAB에서 100 :
A([1:80],1) = 50; A([81:90],1) = 76; A([91:100],1) = [91:100]; boxplot(A)
95 또는 76이 수염 이내로 지정하는 방법이 있나요? 또는 위 수염의 가치?
다음 코드를 사용하여 위아래 휘수를 조정했습니다 (이 예에서는 아래쪽 위스커가 필요하지 않음). 그러나이 코드는 더듬이 내의 특이점을 제거하지 않아 결과가 분명하지 않게 보입니다.
p([1:2],1) =prctile(A,[5,95])
h = flipud(findobj(gca,'Tag','Upper Whisker'));
for j=1:length(h);
ydata = get(h(j),'YData');
ydata(2) = p(2,j);
set(h(j),'YData',ydata);
end
% Replace all y values of adjacent value
h = flipud(findobj(gca,'Tag','Upper Adjacent Value'));
for j=1:length(h);
ydata = get(h(j),'YData');
ydata(:) = p(2,j);
set(h(j),'YData',ydata);
end
% Replace lower end y value of whisker
h = flipud(findobj(gca,'Tag','Lower Whisker'));
for j=1:length(h);
ydata = get(h(j),'YData');
ydata(1) = p(1,j);
set(h(j),'YData',ydata);
end
% Replace all y values of adjacent value
h = flipud(findobj(gca,'Tag','Lower Adjacent Value'));
for j=1:length(h);
ydata = get(h(j),'YData');
ydata(:) = p(1,j);
set(h(j),'YData',ydata);
end
도움을 주시면 대단히 감사하겠습니다.
감사합니다.