Normality Testは、データセットが正規分布母集団に由来するかどうかを判断するために使用される統計的方法です。 テストには、Anderson-Darlingテスト、Kolmogorov-Smirnovテスト、QQプロットテストなどの方法が含まれます。これらのテストでは、データセットの分布特性を評価して、さらなる統計分析とモデリングをサポートします。
アルゴリズムの説明
Normality Testコンポーネントは、Anderson-Darlingテスト、Kolmogorov-Smirnovテスト、およびQQプロットテスト方法を提供します。 1つまたは複数のテスト方法を選択できます。
アンダーソン − ダーリング検定: この改良された適合度検定法は、分布のテール差を強調します。 重み付き累積分布関数の2乗差を評価することにより、サンプルデータが特定の理論分布にどれだけよく適合するかを測定します。
Kolmogorov-Smirnov検定: ノンパラメトリック法として、この検定はサンプル分布を参照分布または2つのサンプル分布と比較します。 それは、適合度を評価するために、それらの累積分布関数間の最大差を計算します。
QQプロットテスト: このグラフィカルツールは、サンプル分布を理論分布または2つのサンプル分布間で視覚的に比較するために使用されます。 分位数を比較することによって分布の不一致を識別します。
コンポーネントの設定
方法1: パイプラインページでコンポーネントを設定する
パイプラインページにNormality Testコンポーネントを追加し、次のパラメーターを設定します。
カテゴリ | パラメーター | 説明 |
フィールドの設定 | カラム | 正規性テストを実行する列。 |
パラメーター設定 | アンダーソン-ダーリンテスト | アンダーソン-ダーリンテストを実行するかどうか。 |
Kolmogorov-Smirnovテスト | Kolmogorov-Smirnovテストを実行するかどうか。 | |
QQプロットを使用する | QQプロットテストを実行するかどうか。 | |
チューニング | コンピューティングコア | コンピューティングで使用されるコアの数。 値は正の整数である必要があります。 |
コアあたりのメモリサイズ (単位: MB) | 各コアのメモリサイズ。 |
方法2: PAIコマンドを使用する
PAIコマンドを使用してコンポーネントパラメータを設定します。 SQLスクリプトコンポーネントを使用してPAIコマンドを呼び出すことができます。 詳細については、「SQLスクリプト」をご参照ください。
PAI -name normality_test
-project algo_public
-DinputTableName=test
-DoutputTableName=test_out
-DselectedColNames=col1,col2
-Dlifecycle=1;
パラメーター | 必須 / 任意 | デフォルト値 | 説明 |
inputTableName | 可 | なし | テストする入力テーブルの名前。 |
outputTableName | 可 | なし | 出力テーブルの名前。 |
selectedColNames | ✕ | なし | 入力テーブルから選択された列。 DOUBLEまたはBIGINTタイプの複数の列を選択できます。 |
inputTablePartitions | 不可 | "" | 入力テーブルのパーティションの名前。 |
enableQQplot | 不可 | true | QQプロットテストを実行するかどうか。 |
enableADtest | 不可 | true | アンダーソン-ダーリンテストを実行するかどうか。 |
enableKStest | 不可 | true | Kolmogorov-Smirnovテストを実行するかどうか。 |
lifecycle | 不可 | -1 | 出力テーブルのライフサイクル。 値は -1以上の整数です。 デフォルト値: -1。 この値は、出力テーブルのライフサイクルが設定されていないことを示します。 |
coreNum | 不可 | -1 | このパラメーターはmemSizePerCoreで使用されます。 値は正の整数である必要があります。 デフォルト値: -1。 この値は、入力データ量によってインスタンス数が決まることを示します。 |
memSizePerCore | 不可 | -1 | 各コアのメモリサイズ。 単位:MB。 値は正の整数でなければなりません。 有効値: (100,64 × 1024) デフォルト値: -1。 この値は、各コアのメモリサイズが入力データ量によって決まることを示します。 |
例
SQLスクリプトコンポーネントを追加し、[スクリプトモードの使用] および [テーブル作成ステートメントを追加するかどうか] の選択を解除します。 次のSQL文を入力します。
drop table if exists normality_test_input; create table normality_test_input as select * from ( select 1 as x union all select 2 as x union all select 3 as x union all select 4 as x union all select 5 as x union all select 6 as x union all select 7 as x union all select 8 as x union all select 9 as x union all select 10 as x ) tmp;
別のSQLスクリプトコンポーネントを追加し、[スクリプトモードの使用] および [テーブル作成ステートメントを追加するかどうか] の選択を解除します。 次のPAIコマンドを入力し、ステップ1とステップ2のコンポーネントを接続します。
drop table if exists ${o1}; PAI -name normality_test -project algo_public -DinputTableName=normality_test_input -DoutputTableName=${o1} -DselectedColNames=x -Dlifecycle=1;
左上隅のアイコンをクリックしてパイプラインを実行します。
手順2で作成したSQLスクリプトコンポーネントを右クリックし、[データの表示]> [SQLスクリプトの出力] を選択してトレーニング結果を表示します。
| colname | testname | testvalue | pvalue | | ------- | ----------------------- | ------------------- | ------------------ | | x | | 1.0 | 0.8173291742279805 | | x | | 2.0 | 2.470864450785345 | | x | | 3.0 | 3.5156067948020056 | | x | | 4.0 | 4.3632330349313095 | | x | | 5.0 | 5.128868067945126 | | x | | 6.0 | 5.871131932054874 | | x | | 7.0 | 6.6367669650686905 | | x | | 8.0 | 7.4843932051979944 | | x | | 9.0 | 8.529135549214654 | | x | | 10.0 | 10.182670825772018 | | x | Anderson_Darling_Test | 0.1411092332197832 | 0.9566579606430077 | | x | Kolmogorov_Smirnov_Test | 0.09551932503797644 | 0.9999888659426232 |