2015-01-15 3 views
3

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 

도움을 주시면 대단히 감사하겠습니다.

감사합니다.

답변

0

는 다음과 같은 추가해야 좀 더 구체적으로는 수염 길이가 무엇인지 매트랩 "표준"또는 "기본"상자 그림을 이해하기 위해 잠시 동안 시도하고, 한

h = flipud(findobj(gca,'Tag','Outliers')); 
for j=1:length(h); 
    ydata = get(h(j),'YData'); 
    xdata = get(h(j),'XData'); 
    remdata = (ydata >= p(1,j)) & (ydata <= p(2,j)); 
    ydata(remdata) = []; 
    xdata(remdata) = []; 
    set(h(j),'XData',xdata,'YData',ydata); 
end 
0

. 그것은 당신이 잘못 생각

"수염이 수염 길이 내에서 가장 먼 관찰에 사 분위 범위의 끝에서 작성한"한다고 할 때

은 물론, 수동은 완전히 쓸모없는, 재귀 적 정의를 제공합니다 그러나 "MATLAB의 휘스커 길이는 1.5 IQR입니다." 기본적으로 (Q25 - 1.5 IQR) 이하 (Q75 + 1.5 IQR)의 모든 샘플 데이터를 찾고 해당 데이터를 "이상치"라고합니다. 그다음 위 수염은 상한 이상이 아닌 샘플에서 가장 큰 값이며, 낮은 수염은 낮은 특이 치가 아닌 가장 작은 샘플 값입니다.

즉, 위스커 사이의 총 거리는 고정되어 있지 않으며 4 IQR과 같지만 샘플에서 가장 큰 값과 가장 작은 값 사이의 거리는 예외 값이 아닙니다.