이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

이상값 제거하기

대화형 방식으로 이상값 제거하기

곡선 피팅 앱에서 이상값을 제거하려면 다음 단계를 따르십시오.

  1. > 이상값 제외를 선택하거나 도구 모음 버튼 을 클릭합니다.

    마우스 커서를 플롯 위로 이동하면 커서가 십자 모양으로 바뀌어서 현재 이상값 선택 모드에 있음을 보여줍니다.

  2. 기본 플롯 또는 잔차 플롯에서 제외하려는 점을 클릭합니다. 또는 클릭하고 끌어서 사각형을 정의하고 여기에 포함된 모든 점을 제거합니다.

    제거된 플롯 점은 플롯에서 빨간색 십자로 표시됩니다. 자동 피팅이 선택되어 있는 경우, 곡선 피팅 앱이 해당 점 없이 곡면을 다시 피팅합니다. 선택되어 있지 않은 경우 피팅을 클릭하여 다시 피팅할 수 있습니다.

  3. 제외하려는 모든 점에 대해 반복합니다.

곡면 피팅에서 이상값을 제거할 때는 이상값의 검토 및 제거를 위해 2차원 잔차 플롯을 표시하는 것이 도움이 될 수 있습니다. 플롯 커서가 회전 모드에 있는 상태에서 플롯을 마우스 오른쪽 버튼으로 클릭하여 X-Y, X-Z 또는 Y-Z 보기를 선택합니다.

피팅에 있는 각각의 제외된 점을 개별적으로 바꾸려면 이상값 제외 모드에서 제외된 점을 다시 클릭하십시오. 피팅에 있는 모든 제외된 점을 바꾸려면 마우스 오른쪽 버튼을 클릭하고 모든 제외 데이터 지우기를 선택하십시오.

곡면 플롯에서, 회전 모드로 돌아가려면 이상값 제외 도구 막대 버튼 을 다시 클릭하여 이상값 선택 모드를 끕니다.

데이터 범위 제외하기

곡선 피팅 앱에서 범위를 기준으로 데이터 섹션을 제외하려면 다음 단계를 따르십시오.

  1. > 규칙 기반 제외를 선택합니다.

  2. 제외할 데이터를 지정합니다. 각각의 상자에 숫자를 입력하여 X, Y 또는 Z 데이터에서 제외할 시작 또는 끝 구간을 정의합니다.

  3. Enter 키를 눌러서 배제 규칙을 적용합니다.

    곡선 피팅 앱이 플롯에 음영이 적용된 분홍색 영역으로 제외된 범위를 표시합니다. 제외된 점은 빨간색으로 표시됩니다.

프로그래밍 방식으로 이상값 제거하기

이 예제에서는 프로그래밍 방식으로 곡선을 피팅할 때 fit 또는 fitoptions 함수의 'Exclude' 이름/값 쌍 인수를 사용하여 이상값을 제거하는 방법을 보여줍니다. plot 함수에 Exclude 또는 outliers 인수를 제공하여 제외된 데이터를 플로팅할 수 있습니다.

간단한 규칙을 사용하여 데이터 제외하기

간단한 예제로, 일부 데이터를 불러와서 가우스 모델을 피팅하고, 표현식을 사용하여 일부 데이터를 제외하고, 피팅, 데이터 및 제외된 점을 플로팅합니다.

[x, y] = titanium;
f1 = fit(x',y','gauss2', 'Exclude', x<800);
plot(f1,x,y,x<800)

모델로부터의 거리를 기준으로 데이터 제외하기

표준편차를 사용하여 모델로부터의 거리를 기준으로 이상값을 제외하는 것이 유용할 수 있습니다. 다음 예제에서는 모델로부터 1.5 표준편차보다 큰 거리를 사용하여 이상값을 식별하고, 이를 이상값에 보다 작은 가중치를 부여하는 로버스트 피팅과 비교합니다.

기준 정현파 신호를 만듭니다.

xdata = (0:0.1:2*pi)'; 
y0 = sin(xdata);

신호에 일정하지 않은 분산을 갖는 잡음을 추가합니다.

% Response-dependent Gaussian noise
gnoise = y0.*randn(size(y0));

% Salt-and-pepper noise
spnoise = zeros(size(y0)); 
p = randperm(length(y0));
sppoints = p(1:round(length(p)/5));
spnoise(sppoints) = 5*sign(y0(sppoints));

ydata = y0 + gnoise + spnoise;

잡음이 있는 데이터를 기준 정현파 모델로 피팅합니다.

f = fittype('a*sin(b*x)'); 
fit1 = fit(xdata,ydata,f,'StartPoint',[1 1]);

"이상값"을 기준 모델에서 1.5 표준편차보다 큰 거리에 있는 점으로 식별하고, 이상값을 제외한 상태에서 데이터를 다시 피팅합니다.

fdata = feval(fit1,xdata); 
I = abs(fdata - ydata) > 1.5*std(ydata); 
outliers = excludedata(xdata,ydata,'indices',I);

fit2 = fit(xdata,ydata,f,'StartPoint',[1 1],...
           'Exclude',outliers);

이상값을 제외하는 것의 효과와 로버스트 피팅에서 이상값에 보다 적은 겹제곱 가중치를 부여하는 것의 효과를 비교합니다.

fit3 = fit(xdata,ydata,f,'StartPoint',[1 1],'Robust','on');

데이터, 이상값 및 피팅의 결과를 플로팅합니다.

plot(fit1,'r-',xdata,ydata,'k.',outliers,'m*') 
hold on
plot(fit2,'c--')
plot(fit3,'b:')
xlim([0 2*pi])

참고 항목

|

관련 항목