外れ値データの削除
説明
外れ値データの削除タスクでは、データ内の外れ値を対話的に処理できます。このタスクは、ライブ スクリプト用の MATLAB® コードを自動生成します。
このタスクを使用すると、次を行うことができます。
ワークスペース変数内のデータの外れ値の検出、埋め込みまたは削除。
外れ値の検出メソッドと埋め込みメソッドのカスタマイズ。
外れ値データとクリーニング済みのデータの可視化。
その他
関連する関数
[外れ値データの削除] では、関数 isoutlier
、filloutliers
、および rmoutliers
を使用するコードが生成されます。
![](outlierslet.png)
タスクを開く
[外れ値データの削除] タスクを MATLAB エディターでライブ スクリプトに追加するには、次を行います。
[ライブ エディター] タブで [タスク] 、 [外れ値データの削除] を選択します。
スクリプトのコード ブロック内に、
outlier
、clean
、fill
、remove
などの関連キーワードを入力します。コマンドの補完候補から[外れ値データの削除]
を選択します。キーワードによっては、1 つ以上の対応するパラメーターがタスクで自動的に更新されます。
例
table からの外れ値の削除
ライブ エディターの [外れ値データの削除] タスクを使用して、table から外れ値を対話的に削除します。
サンプル ファイルに含まれている患者の身長と体重のデータを使用して table を作成します。
load("patients.mat","Height","Weight") T = table(Height,Weight); head(T)
Height Weight ______ ______ 71 176 69 163 64 131 67 133 64 119 68 142 64 142 68 180
ライブ エディターで [外れ値データの削除] タスクを開きます。患者データをクリーニングするには、T
を入力データとして選択します。次に、[サポートされているすべての変数]
を選択して変数 Height
および Weight
に対して計算を行います。
[外れ値データの削除] タスクでは、外れ値データを埋めるか削除できます。身長または体重の測定値が外れ値である患者に対応する table の行を削除するには、[クリーニング メソッド] フィールドを使用して [外れ値の削除]
を選択します。次に、外れ値を 10 番目の百分位数を下回る要素、または 90 番目の百分位数を超える要素として定義するために、[検出メソッド] フィールドを使用して [百分位数]
を選択します。
次に、クリーニングした身長と体重のデータを可視化するには、[表示する変数] フィールドを使用してすべての変数を選択します。
このタスクは、クリーニングしたデータの table と、入力 table から削除された行を示す logical ベクトルを返します。outlierIndices
を使用して、table から削除された行数を判定します。
nrows = sum(outlierIndices)
nrows = 24
関連する例
パラメーター
入力データ
— ワークスペースからの有効な入力データ
ベクトル | table | timetable
このタスクは、ベクトル、table、または timetable に含まれる入力データに対して実行されます。データは single
型または double
型にできます。
入力データが table または timetable の場合、single
型または double
型の変数をすべて削除するには、[サポートされているすべての変数]
を選択します。single
または double
の変数のうち、削除する対象を選択するには、[指定された変数]
を選択します。
クリーニング メソッド
— 外れ値の埋め込みのためのクリーニング メソッド
線形内挿
(既定値) | 定数値
| 欠損に変換
| ...
外れ値の埋め込みメソッドを次のオプションのいずれかとして指定します。
埋め込みメソッド | 説明 |
---|---|
線形内挿 | 隣接する非外れ値の線形内挿 |
定数値 | 指定したスカラー値 (既定では 0 ) |
欠損に変換 | 標準欠損値の既定の定義に変換 |
中心値 | 検出メソッドで求めた中心値 |
しきい値までクリップ | 検出メソッドで求めた下限しきい値よりも小さな要素についての下限しきい値、検出メソッドで求めた上限しきい値よりも大きな要素についての上限しきい値 |
前の値 | 前の非外れ値 |
次の値 | 次の非外れ値 |
最も近い値 | 最も近い非外れ値 |
スプライン内挿 | 区分的 3 次スプライン内挿 |
形状保持 3 次内挿 (PCHIP) | 形状維持区分的 3 次スプライン内挿 |
修正 Akima 3 次内挿 | 修正 Akima 3 次エルミート内挿 |
検出メソッド
— 外れ値を検出するメソッド
移動中央値
(既定値) | 中央値
| 平均値
| ...
外れ値を見つけるための検出メソッドを次のオプションのいずれかとして指定します。
メソッド | 説明 |
---|---|
移動中央値 | 外れ値は、指定したウィンドウでの局所中央値から、スケーリングされた局所中央絶対偏差 (MAD) の指定したしきい値を超えて離れている要素と定義されます。既定のしきい値は 3 です。 |
中央値 | 外れ値は、スケーリングされた MAD の指定したしきい値を超えて中央値から離れている要素と定義されます。既定のしきい値は 3 です。入力データ A の場合、スケーリングされた MAD は c*median(abs(A-median(A))) と定義されます。ここで、c=-1/(sqrt(2)*erfcinv(3/2)) です。 |
平均値 | 外れ値は、標準偏差の指定したしきい値を超えて平均値から離れている要素と定義されます。既定のしきい値は 3 です。このメソッドは [中央値] より高速ですが、ロバスト性は低下します。 |
四分位数 | 外れ値は、上位四分位数 (75%) から上に、または下位四分位数 (25%) から下に、四分位範囲の指定したしきい値を超えて離れている要素と定義されます。既定のしきい値は 1.5 です。このメソッドは、入力データが正規分布でない場合に便利です。 |
Grubbs | 外れ値の検出にグラブス検定を使用します。これにより、仮説検定に基づいて反復ごとに 1 つの外れ値が除去されます。このメソッドは、入力データが正規分布していることを前提としています。 |
一般化極値スチューデント化偏差 (GESD) | 外れ値に対して一般化 ESD 検定を使用して、外れ値を検出します。この反復メソッドは [Grubbs] に似ていますが、複数の外れ値が相互にマスキングしている場合に、より効果的に機能します。 |
移動平均値 | 外れ値は、指定したウィンドウでの局所平均値から、局所標準偏差の指定したしきい値を超えて離れている要素と定義されます。既定のしきい値は 3 です。 |
百分位数 | 外れ値は、上限および下限しきい値により指定される百分位数範囲外の要素として定義されます。既定の百分位数の下限しきい値は 10 であり、既定の百分位数の上限しきい値は 90 です。有効なしきい値は [0, 100] 間の値です。 |
移動ウィンドウ
— 移動メソッドのウィンドウ
中央揃え
(既定値) | 非対称
外れ値検出のメソッドが [移動中央値]
または [移動平均値]
である場合は、ウィンドウのタイプとサイズを指定します。
ウィンドウ | 説明 |
---|---|
中央揃え | 現在の点を中心にしてウィンドウの長さを指定する |
非対称 | 現在の点の前にある要素数と、現在の点の後にある要素数を含むウィンドウを指定する |
ウィンドウのサイズは、[X 軸] の変数の単位を基準とします。
バージョン履歴
R2019b で導入R2022b: 複数の table 変数のプロット
このライブ エディター タスクの表示で、複数の table 変数を同時にプロットします。データが table または timetable の場合、選択したすべての table 変数をタイル表示チャート レイアウトで一度に可視化するには、[表示する変数] フィールドを設定します。
R2022b: 外れ値を欠損に変換
外れ値データを値 NaN
によって示される欠損データに変換できます。[クリーニング メソッド] フィールドを [外れ値の埋め込み]
に設定し、[欠損に変換]
オプションを選択します。
R2022b: クリーニングした table 変数の追加
入力 table 変数に、クリーニングしたデータを含む table 変数を追加します。入力データが table または timetable の場合、クリーニングしたデータを追加するには、[出力形式] フィールドを設定します。
R2022a: 入力に 100 万個を超える要素がある場合、ライブ エディター タスクは自動実行されない
入力に 100 万個を超える要素がある場合、このライブ エディター タスクは自動実行されません。以前のリリースでは、入力がどのようなサイズでもタスクは必ず自動実行されていました。入力の要素が多い場合、このタスクで生成されたコードは実行にかなりの時間 (数秒間以上) を要することがあります。
タスクが自動的に実行されない場合、自動実行インジケーターが無効になります。必要に応じてタスクを手動で実行するか、タスクの自動実行の有効化を選択することができます。
R2021a: 複数の table 変数の操作
このライブ エディター タスクは、複数の table 変数を同時に操作できます。入力データが table または timetable の場合、複数の変数を操作するには、[サポートされているすべての変数]
または [指定された変数]
を選択します。すべての変数、または変更した変数のみを返し、可視化する変数を指定します。
R2021a: ヒストグラムを使用した結果の可視化
ほとんどの検出メソッドでヒストグラム プロットを使用して結果を可視化します。ヒストグラムは入力データ、外れ値、外れ値が埋められたクリーニング済みのデータ、および外れ値検出しきい値と中心値を集計できます。
参考
関数
ライブ エディター タスク
アプリ
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)