異常値を見つけ、排除するMatlab

外れ値を検出して取り除くには、次の手順に従います。

  1. 平均値や中央値、標準偏差などの記述統計量の範囲によって異常値の範囲を決定する。これらの統計量はMATLABのmean()、median()、std()などの関数を使用して計算できる。
  2. 異常値の範囲を上回るデータ点を識別するには、論理インデックスを使用します。たとえば、論理式data > upper_bound | data < lower_boundを使用すると、上限と下限を上回るデータポイントを見つけることができます(ここで、dataは処理対象のデータベクトル、upper_boundとlower_boundは異常値の上限と下限です)。
  3. 論理インデックスを使用すると異常値をデータベクターから外せます。異常値ではないものを選ぶには、MATLABのdata(logical_index)構文を使用できます。

MATLABで外れ値を検索および除去する方法を示すコードのサンプルを次に示します。

% 生成一些示例数据
data = [1, 2, 3, 4, 5, 100, 6, 7, 8, 9, 10];
% 计算数据的均值和标准差
mean_value = mean(data);
std_value = std(data);
% 定义异常值的范围(这里假设异常值是超过3倍标准差)
upper_bound = mean_value + 3 * std_value;
lower_bound = mean_value - 3 * std_value;
% 使用逻辑索引找到异常值
outliers = data > upper_bound | data < lower_bound;
% 剔除异常值
cleaned_data = data(~outliers);
% 输出结果
disp('原始数据:');
disp(data);
disp('剔除异常值后的数据:');
disp(cleaned_data);

この例では、元データは[1, 2, 3, 4, 5, 100, 6, 7, 8, 9, 10]で、100が外れ値です。平均と標準偏差を計算することで、外れ値の範囲(mean_value ± 3 * std_value)を特定しました。次に、論理インデックスを使用して外れ値の範囲を超えるデータポイントを特定し、論理インデックスを使用して外れ値を取り除きました。最後に、外れ値を取り除いたデータを出力しました。

bannerAds