Main Content

DriftDiagnostics

バッチ ドリフト検出の診断情報

R2022a 以降

    説明

    DriftDiagnostics オブジェクトには、関数 detectdrift でバッチ ドリフト検出用の並べ替え検定を実行した後に返される診断情報が格納されます。

    作成

    DriftDiagnostics オブジェクトは、detectdrift を使用してベースラインとターゲットのデータ セット間のドリフトを検定することで作成します。

    プロパティ

    すべて展開する

    この プロパティ は読み取り専用です。

    ベースライン データ セット。数値配列、categorical 配列、または table として指定します。

    データ型: double | categorical | table

    この プロパティ は読み取り専用です。

    データ内のカテゴリカル変数のインデックス。数値配列として指定します。データにカテゴリカル変数が含まれていない場合、このプロパティは空 ([]) になります。

    データ型: double

    この プロパティ は読み取り専用です。

    変数の推定 p 値の 95% 信頼区間の範囲。0 から 1 までの正のスカラー値の 2 行 k 列の行列として指定します。ここで、k は変数の数です。ConfidenceIntervals の行は信頼区間の下限と上限にそれぞれ対応します。

    detectdrift の呼び出しで EstimatePValuesfalse に設定した場合、関数で信頼区間の範囲は計算されません。この場合、ConfidenceIntervals プロパティには NaN が格納されます。

    データ型: double

    この プロパティ は読み取り専用です。

    各変数のドリフト ステータス。次の表に示す可能な値を含む string 配列として指定します。

    ドリフト ステータス条件
    DriftUpper < DriftThreshold
    WarningDriftThreshold < Lower < WarningThreshold または DriftThreshold < Upper < WarningThreshold
    StableLower > WarningThreshold

    Lower と Upper は、推定 p 値の信頼区間の下限と上限です。

    データ型: string

    この プロパティ は読み取り専用です。

    ドリフト ステータスを判定するしきい値。0 から 1 までのスカラー値として指定します。推定 p 値の信頼区間の上限が DriftThreshold を下回っている場合、ドリフト ステータスは Drift になります。

    データ型: double

    この プロパティ は読み取り専用です。

    detectdrift による並べ替え検定で各変数のベースライン データとターゲット データの間の差異を定量化するために使用されるメトリクスのリスト。string 配列として指定します。

    データ型: string

    この プロパティ は読み取り専用です。

    対応する変数のメトリクス値。ドリフト検出用に指定された変数の数と等しい数の列をもつ行ベクトルとして指定します。各変数に対応するメトリクスは Metrics プロパティに格納されます。

    データ型: double

    この プロパティ は読み取り専用です。

    多重仮説検定の補正。"Bonferroni" または "FalseDiscoveryRate" として指定します。

    detectdrift の呼び出しで EstimatePValuesfalse に設定する場合、名前と値の変数 MultipleTestCorrection は設定しないでください。設定しても関数で無視されます。

    データ型: string

    この プロパティ は読み取り専用です。

    MultipleTestCorrection の多重検定補正方法を使用して detectdrift で推定されるデータ全体についてのドリフト ステータス。"Drift""Warning"、または "Stable" として指定します。多重検定補正は、複数の変数について検定する場合のドリフト ステータスの保守的な推定を提供します。

    detectdrift の呼び出しで EstimatePValuesfalse に設定した場合、関数で MultipleTestDriftStatus は取り込まれません。

    データ型: string

    この プロパティ は読み取り専用です。

    変数のドリフト ステータスを判定するために各変数について detectdrift で実行される並べ替え検定の数。整数値の配列として指定します。

    detectdrift の呼び出しで EstimatePValuesfalse に設定した場合、NumPermutations は指定されたベースライン データとターゲット データに対応する 1 の行ベクトルになります。メトリクス値は、ベースライン データとターゲット データを使用して計算した各変数の初期値です。

    データ型: double

    この プロパティ は読み取り専用です。

    各変数についての並べ替え検定の結果。k 行 1 列の table として指定します。ここで、k は変数の数です。各行が 1 つの変数に対応し、その変数の順列の数と等しいサイズをもつメトリクス値のベクトルの 1 行 1 列の cell 配列が格納されます。たとえば、2 つ目の変数のメトリクス値にアクセスするには、DDiagnostics.PermutationResults{2,1}{1,1} を使用します。

    detectdrift の呼び出しで EstimatePValuesfalse に設定した場合、PermutationResults には各変数の初期メトリクス値のみが格納されます。

    検定結果は plotPermutationResults を使用して可視化できます。

    データ型: table

    この プロパティ は読み取り専用です。

    各変数の推定 p 値。0 から 1 までのスカラー値のベクトルとして指定します。

    detectdrift の呼び出しで EstimatePValuesfalse に設定した場合、PValuesNaN のベクトルになります。

    データ型: double

    この プロパティ は読み取り専用です。

    ターゲット データ セット。数値配列、categorical 配列、または table として指定します。

    データ型: single | double | categorical | table

    この プロパティ は読み取り専用です。

    detectdrift の呼び出しでドリフト検出用に指定された変数。string 配列として指定します。

    データ型: string

    この プロパティ は読み取り専用です。

    警告ステータスを判定するしきい値。0 から 1 までのスカラー値として指定します。

    データ型: double

    オブジェクト関数

    ecdfデータ ドリフト検出用に指定されたベースライン データとターゲット データの経験的累積分布関数 (ecdf) を計算
    histcountsドリフト検出用のベースライン データとターゲット データの指定した変数についてヒストグラムのビンのカウント数を計算
    plotDriftStatusデータ ドリフトを検定した変数についての p 値と信頼区間をプロット
    plotEmpiricalCDFデータ ドリフト検出用に指定された変数についての経験的累積分布関数 (ecdf) をプロット
    plotHistogramデータ ドリフト検出用に指定された変数についてのヒストグラムをプロット
    plotPermutationResultsデータ ドリフト検出用に指定された変数についての順列の結果のヒストグラムをプロット
    summaryDriftDiagnostics オブジェクトの概要テーブル

    すべて折りたたむ

    標本データを読み込みます。

    load humanactivity

    データ セットの詳細については、コマンド ラインで Description を入力してください。

    1 番目から 15 番目までの変数について、最初の 250 個の観測値をベースライン データとして割り当て、次の 250 個をターゲット データとして割り当てます。

    baseline = feat(1:250,1:15);
    target = feat(251:500,1:15);

    すべての変数についてドリフトを検定します。

    DDiagnostics = detectdrift(baseline,target);

    検定結果の概要を表示します。

    summary(DDiagnostics)
        Multiple Test Correction Drift Status: Drift
    
               DriftStatus    PValue       ConfidenceInterval   
               ___________    ______    ________________________
    
        x1      "Drift"       0.001     2.5317e-05     0.0055589
        x2      "Drift"       0.001     2.5317e-05     0.0055589
        x3      "Drift"       0.001     2.5317e-05     0.0055589
        x4      "Drift"       0.001     2.5317e-05     0.0055589
        x5      "Drift"       0.001     2.5317e-05     0.0055589
        x6      "Drift"       0.001     2.5317e-05     0.0055589
        x7      "Drift"       0.001     2.5317e-05     0.0055589
        x8      "Stable"      0.863        0.84012       0.88372
        x9      "Stable"      0.726        0.69722       0.75344
        x10     "Drift"       0.001     2.5317e-05     0.0055589
        x11     "Stable"      0.496        0.46456       0.52746
        x12     "Stable"      0.249        0.22247       0.27702
        x13     "Drift"       0.001     2.5317e-05     0.0055589
        x14     "Stable"      0.574        0.54267       0.60489
        x15     "Warning"     0.094       0.076629        0.1138
    

    ドリフト検出用に検定した各変数のドリフト ステータスと推定 "p" 値が概要テーブルに表示されます。"p" 値の 95% 信頼区間の範囲も表示されます。

    変数 x10x15 のドリフト ステータスをプロットします。

    plotDriftStatus(DDiagnostics,Variables=(10:15))

    変数 x13x15 についての ecdf 値を計算します。

    E = ecdf(DDiagnostics,Variables=["x13","x15"])
    E=2×3 table
                     x             F_Baseline         F_Target   
               ______________    ______________    ______________
    
        x13    {501×1 double}    {501×1 double}    {501×1 double}
        x15    {501×1 double}    {501×1 double}    {501×1 double}
    
    

    ecdf で変数のベースライン データとターゲット データについての経験的累積分布関数を計算する共通領域が x に格納されます。x13 の共通領域にアクセスします。

    E.x{1}
    ans = 501×1
    
        0.0420
        0.0420
        0.0423
        0.0424
        0.0424
        0.0425
        0.0425
        0.0426
        0.0426
        0.0426
          ⋮
    
    

    ベースライン データの x15 についての ecdf 値にアクセスします。

    E.F_Baseline{2}
    ans = 501×1
    
             0
             0
        0.0040
        0.0080
        0.0080
        0.0080
        0.0080
        0.0080
        0.0120
        0.0120
          ⋮
    
    

    変数 x13x15 についての ecdf 値をプロットします。

    tiledlayout(1,2)
    ax1 = nexttile;
    plotEmpiricalCDF(DDiagnostics,ax1,Variable="x13")
    ax2= nexttile;
    plotEmpiricalCDF(DDiagnostics,ax2,Variable="x15")

    変数についての並べ替え検定の結果を可視化することもできます。変数 x13 の順列の結果をプロットします。

    figure 
    plotPermutationResults(DDiagnostics,Variable="x13")

    プロットにはメトリクスのしきい値も直線で示されます。並べ替え検定で取得されたメトリクス値のヒストグラムから、変数 x13 についてのベースライン データとターゲット データの分布が同じであれば、メトリクス値がしきい値を超える確率は非常に低くなることがわかります。推定 "p" 値 0.001 とドリフト ステータス Drift もプロットのタイトルの下に表示されます。

    3 つの変数をもつベースライン データとターゲット データを生成します。ターゲット データで 2 つ目と 3 つ目の変数の分布パラメーターを変化させます。

    rng('default') % For reproducibility
    baseline = [normrnd(0,1,100,1),wblrnd(1.1,1,100,1),betarnd(1,2,100,1)];
    target = [normrnd(0,1,100,1),wblrnd(1.2,2,100,1),betarnd(1.7,2.8,100,1)];

    "p" 値を推定せずに、ベースライン データとターゲット データの間ですべての変数の初期メトリクスを計算します。

    DDiagnostics = detectdrift(baseline,target,EstimatePValues=false)
    DDiagnostics = 
      DriftDiagnostics
    
               VariableNames: ["x1"    "x2"    "x3"]
        CategoricalVariables: []
                     Metrics: ["Wasserstein"    "Wasserstein"    "Wasserstein"]
                MetricValues: [0.2022 0.3468 0.0559]
    
    
      Properties, Methods
    
    

    detectdrift により、ベースライン データとターゲット データを使用して各変数の初期メトリクス値のみが計算されます。並べ替え検定および "p" 値の推定に関連付けられたプロパティについては、空になるか NaN が格納されます。

    summary(DDiagnostics)
              MetricValue       Metric    
              ___________    _____________
    
        x1      0.20215      "Wasserstein"
        x2      0.34676      "Wasserstein"
        x3     0.055922      "Wasserstein"
    

    関数 summary により、初期メトリクス値と指定した各変数に使用されるメトリクスのみが表示されます。

    plotDriftStatusplotPermutationResults では、"p" 値を推定せずにメトリクスを計算すると、プロットが生成されずに警告メッセージが返されます。plotEmpiricalCDFplotHistogram では、既定では 1 つ目の変数についての ecdf とヒストグラムがそれぞれプロットされます。どちらの場合も、"p" 値および変数に関連付けられているドリフト ステータスについては NaN が返されます。

    plotEmpiricalCDF(DDiagnostics)

    plotHistogram(DDiagnostics)

    バージョン履歴

    R2022a で導入