ホームページ  >  記事  >  バックエンド開発  >  Python で Grubbs テストを実行する方法

Python で Grubbs テストを実行する方法

WBOY
WBOY転載
2023-08-28 15:49:07797ブラウズ

######導入###

グラブス検定は、データセット内の外れ値を検出するために使用される統計的仮説検定方法です。外れ値は、データ分布に割り当てられる観測値であり、異常とも呼ばれます。外れ値を含むデータセットは、正規分布/ガウス分布のデータよりも過学習の影響を受けやすい傾向があります。したがって、機械学習モデリングの前に外れ値に対処する必要があります。処理する前に、データセット内の外れ値を検出して特定する必要があります。最も一般的な外れ値検出手法は、QQPlot、四分位範囲、および Grubbs 統計検定です。ただし、この記事では、外れ値を検出するための Grubbs テストについてのみ説明します。 Grubbs テストとは何か、およびそれを Python で実装する方法を学びます。

外れ値とは何ですか?

外れ値は、他のデータ値から数値的に大きく離れたデータ観測値です。これらの値は正規分布データの範囲外です。正規分布を実現するには、データ セットには、最初の標準偏差のレコードの 67%、2 番目の標準偏差のデータの 95%、および 3 番目の標準偏差のポイントの 99.7% が含まれている必要があります。言い換えれば、データ ポイントは第 1 四分位範囲と第 3 四分位範囲の間にある必要があります。第 1 四分位未満および第 3 四分位を超えるレコードは外れ値または外れ値と見なされます。

グラブス統計的仮説検定

他の統計的仮説検定と同様に、グラブス検定でも帰無仮説 (H0) または対立仮説 (H1) を承認または拒否できます。グラブス テストは、データ セット内の外れ値を検出するテストです。

グラブス検定は 2 つの方法で実行できます:

片側検定

および

両側検定 (単変量データセットまたは少なくとも 7 つの変数分布を持つほぼ正規のサンプルの場合) 。このテストは、極端なスチューデント化偏差テストまたは最大正規化残差テストとも呼ばれます。 Grubbs テストでは次の仮定が使用されます -

Null (H0): データセットには外れ値がありません。
  • 代替 (H1): データ セットには外れ値が 1 つだけあります。
  • Python での Grabbs テスト
Python は、膨大なライブラリのコレクションを使用して、あらゆるプログラミングの課題に対処できます。これらのライブラリは、任意の操作、統計テストなどを実行するために直接使用できる組み込みメソッドを提供します。同様に、Python には、外れ値を検出するための Grubbs テストを実行するメソッドを含むライブラリがあります。ただし、Python で Grubbs テストを実装する 2 つの方法、ライブラリ内の組み込み関数、および最初から式を実装する方法を検討します。

外れ値ライブラリと Smirnov_grubbs

まず、次のコマンドを使用して outlier_utils ライブラリをインストールしましょう。

リーリー

次に、外れ値を含むデータセットを作成し、Grubbs テストを実行してみましょう。

両面グラブテスト

###文法### リーリー

パラメータ

data

- データ値の数値ベクトル。

alpha - テストの有意水準。

イラスト

このメソッドでは、Grubb のテストを実行するために、ユーザーは outlier パッケージの smirnov_grubbs.test() 関数を使用し、必要なデータを入力として渡す必要があります。 ###例### リーリー ###出力### リーリー

上記のコードは、ライブラリとデータをロードすることから始まり、最後に「test」メソッドを使用してこのデータに対して Grubbs テストを実行します。このテストでは、両側 (左と右) の外れ値、または第 1 四分位以下および第 3 四分位以上の値が検出されます。データには外れ値が 1 つだけ (40) ありましたが、これは Grubbs の検定を使用して削除されました。

片側グラブステスト

シナックス

リーリー

イラスト

このメソッドでは、ユーザーは

grubbs.min_test()

関数を呼び出して、提供されたデータセットから最小異常値を取得するか、

grubbs.max_test()

関数を呼び出す必要があります。提供されたデータセットから最小外れ値を取得する関数 データセット内の最大外れ値を取得して、片側グラブス検定を取得します。

###例### リーリー ###出力### リーリー

片側 Grubbs 検定は、第 1 四分位以下または第 3 四分位以上の外れ値を検出します。 min_test メソッドはデータの最小側から外れ値を削除し、max_test メソッドはデータの上部から外れ値を削除することがわかります。

式の実装

ここでは、Python を使用して次の Grubbs テスト式を実装します。これを実現するには、Numpy ライブラリと Scipy ライブラリを使用します。

###文法### リーリー ###アルゴリズム###

実装手順は次のとおりです -

データセット値の平均を計算します。

データセット値の標準偏差を計算します。

Python で Grubbs テストを実行する方法

グラブス検定式を実装するには、データセット内の各値を平均から減算して分子を計算します。

分子の値を標準偏差で割ると、計算されたスコアが得られます。

  • 同じ値のクリティカル スコアを計算します。

  • 臨界値が計算値より大きい場合、データセットに外れ値はありませんが、そうでない場合は外れ値があります。

  • ###例### リーリー ###出力### リーリー
  • Grubb テストの結果は、配列 x には外れ値がありませんが、y には外れ値が 1 つあることを示しています。

    ###結論は###

    この記事では、Python での外れ値と Grubbs テストについて学びました。重要なポイントをいくつか挙げてこの記事を締めくくりましょう。
  • 外れ値は、四分位範囲外にあるレコードです。
  • 外れ値は、データセットの正規分布に準拠しません。

  • グラブス仮説統計検定を使用して外れ値を検出できます。

  • outlier_utils ライブラリで提供される組み込みメソッドを使用して、Grubbs テストを実行できます。

  • 両側 Grubbs テストは、左側と右側の外れ値を検出して削除します。

  • ただし、片側 Grubbs 検定ではどちらの側でも外れ値が検出されます。

以上がPython で Grubbs テストを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。