Main Content

excludedata

近似からデータを排除

説明

tf = excludedata(x,y,'box',box) は、どの要素が box によって指定された XY 平面のボックスの外側にあるかを示す logical 配列を返します。tf の要素は、ボックスの外側のデータ点については 1、ボックスの内側のデータ点については 0 となります。fit を使用して曲線を当てはめる際にデータを排除するには、'Exclude' 値として tf を指定します。

tf = excludedata(x,y,'domain',domain) は、domain の区間外の x 値をもつデータ点を特定します。

tf = excludedata(x,y,'range',range) は、range の区間外の y 値をもつデータ点を特定します。

tf = excludedata(x,y,'indices',indices) は、インデックスが indices と等しいデータ点を特定します。

すべて折りたたむ

ランダム データを使用して排除規則を可視化します。

ランダムな x および y データを生成します。

xdata = -3 + 6*rand(1,1e4);
ydata = -3 + 6*rand(1,1e4);

例として、ボックス [-1 1 -1 1] の内側またはドメイン [-2 2] の外側のいずれかのデータを排除します。

outliers1 = ~excludedata(xdata,ydata,'box',[-1 1 -1 1]);
outliers2 = excludedata(xdata,ydata,'domain',[-2 2]);
outliers = outliers1|outliers2;

排除されていないデータをプロットします。白の領域は排除された領域に対応します。

plot(xdata(~outliers),ydata(~outliers),'.')
axis([-3 3 -3 3])
axis square

Figure contains an axes object. The axes object contains an object of type line.

2000 年アメリカ合衆国大統領選挙におけるフロリダ州の投票数と郡名を読み込みます

load flvote2k

2 大政党の候補者であるブッシュとゴアへの投票数を、サードパーティの候補者であるブキャナンへの投票数の予測子として使用し、散布図をプロットします。

plot(bush,buchanan,'rs')
hold on
plot(gore,buchanan,'bo')
legend('Bush data','Gore data')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Bush data, Gore data.

ブッシュまたはゴアへの固定割合の投票者がブキャナンに投票するモデルを仮定します。

f = fittype({'x'})
f = 
     Linear model:
     f(a,x) = a*x

問題視されていた "チョウ型" 投票用紙を使用しなかった不在投票者のデータは除外します。

nobutterfly = strcmp(counties,'Absentee Ballots');

モデルの二重平方重みのロバスト近似を 2 つのデータ セットに対して実行し、不在投票者を排除します。

bushfit = fit(bush,buchanan,f,'Exclude',nobutterfly,'Robust','on');
gorefit = fit(gore,buchanan,f,'Exclude',nobutterfly,'Robust','on');

ロバスト近似により外れ値に小さい重みが与えられるため、ロバスト近似の大きな残差を使用して外れ値を特定できます。

figure
plot(bushfit,bush,buchanan,'rs','residuals')
hold on
plot(gorefit,gore,buchanan,'bo','residuals')

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent data, zero line.

残差を計算します。

bushres = buchanan - feval(bushfit,bush);
goreres = buchanan - feval(gorefit,gore);

範囲 [-500 500] の外側にあるものを大きな残差と見なします。

bushoutliers = excludedata(bush,bushres,'range',[-500 500]);
goreoutliers = excludedata(gore,goreres,'range',[-500 500]);

外れ値に対応する郡を表示します。マイアミデイド郡とブロワード郡は予測子の最大値に対応します。州で唯一 “チョウ型” 投票用紙を使用したパーム ビーチ郡は、最大残差値に対応します。

counties(bushoutliers)
ans = 2x1 cell
    {'Miami-Dade'}
    {'Palm Beach'}

counties(goreoutliers)
ans = 3x1 cell
    {'Broward'   }
    {'Miami-Dade'}
    {'Palm Beach'}

入力引数

すべて折りたたむ

データ値のデータ サイト。数値ベクトルとして指定します。

データ値。数値ベクトルとして指定します。

範囲外のデータを検出するためのボックス。4 要素の数値ベクトル [xmin xmax ymin ymax] として指定します。

例: [-1 1 0 2]

範囲外のデータを検出するための領域。2 要素の数値ベクトル [xmin xmax] として指定します。

例: [-1 1]

範囲外のデータを検出するための範囲。2 要素の数値ベクトル [ymin ymax] として指定します。

例: [3 4]

検出するデータ点のインデックス。数値ベクトルとして指定します。

例: [3 7 9]

バージョン履歴

R2006a より前に導入

参考

|