ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

外れ値の削除

外れ値の対話的な削除

曲線近似アプリで外れ値を削除するには、以下の手順に従います。

  1. [ツール][外れ値を排除] を選択するか、ツール バー ボタン をクリックします。

    マウス カーソルをプロットに移動すると、カーソルが十字に変わり、外れ値選択モードであることが示されます。

  2. メイン プロットまたは残差プロットで排除する点をクリックします。または、クリックしてドラッグすることにより四角形を指定し、囲まれたすべての点を削除します。

    削除したプロットの点は、プロット内で赤い X 印になります。[自動近似] を選択している場合、その点を含まずに曲面で再近似されます。そうでない場合は、[近似] をクリックして再近似します。

  3. 排除する必要があるすべての点について繰り返します。

曲面近似から外れ値を削除するときは、外れ値を確認して削除できるため、2 次元残差プロットを表示すると便利です。プロット カーソルが回転モードの状態で、プロットを右クリックし、[X-Y][X-Z] または [Y-Z] 表示を選択します。

近似内の排除した個々の点を元に戻すには、[外れ値を排除] モードで排除した点を再度クリックします。近似内の排除したすべての点を元に戻すには、右クリックして [すべての排除をクリア] を選択します。

表面プロットで回転モードに戻るには、[外れ値を排除] ツール バー ボタン を再度クリックして外れ値選択モードをオフにします。

データ範囲の排除

曲線近似アプリで、ある範囲内のデータを排除するには、以下の手順に従います。

  1. [ツール][排除規則] を選択します。

  2. 排除するデータを指定します。いずれかのボックスに数を入力して、X、Y または Z データについて排除する区間の開始値または終了値を定義します。

  3. Enter キーを押して、排除規則を適用します。

    プロット上に影付きのピンク色領域が表示され、排除された範囲が示されます。排除された点は赤色になります。

外れ値のプログラムによる削除

この例では、関数 fit または fitoptions で 'Exclude' の名前と値のペアの引数を使用して、プログラムによって曲線で近似するときに外れ値を削除する方法を示します。関数 plot に Exclude または外れ値引数を指定することにより、排除したデータをプロットできます。

簡単な規則を使用したデータの排除

簡単な例として、データを読み込み、一部のデータを式で排除してガウスで近似してから、近似、データ、排除した点をプロットします。

[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])

参考

|

関連するトピック