2つの独立した比率の検出力解析で停止ルールを作成するにはどうすればよいですか?


18

私は、A / Bテストシステムに取り組んでいるソフトウェア開発者です。安定した統計情報の背景はありませんが、過去数か月にわたって知識を集めてきました。

一般的なテストシナリオでは、Webサイト上の2つのURLを比較します。訪問者が訪問LANDING_URLし、URL_CONTROLまたはのいずれかにランダムに転送されますURL_EXPERIMENTAL。訪問者はサンプルを構成し、訪問者がそのサイトで望ましいアクションを実行すると勝利条件が達成されます。これはコンバージョンを構成し、コンバージョン率はコンバージョン率です(通常はパーセンテージで表されます)。特定のURLの一般的なコンバージョン率は、0.01%から0.08%の範囲です。テストを実行して、新しいURLと古いURLを比較する方法を決定します。場合はURL_EXPERIMENTALアウトパフォームに表示されURL_CONTROL、我々は交換してくださいURL_CONTROLURL_EXPERIMENTAL

単純な仮説検定手法を使用したシステムを開発しました。このシステムを開発するために、ここで別のCrossValidatedの質問に対する回答を使用しました。

テストは次のように設定されます。

  • のコンバージョン率の見積もりCRE_CONTROLは、URL_CONTROL履歴データを使用して計算されます。
  • 所望の目標転化率CRE_EXPERIMENTALのがURL_EXPERIMENTAL設定されています。
  • 通常、有意水準0.95が使用されます。
  • 通常、0.8の累乗が使用されます。

一緒に、これらの値はすべて、目的のサンプルサイズを計算するために使用されます。power.prop.testこのサンプルサイズを取得するためにR関数を使用しています。

すべてのサンプルが収集されるまでテストが実行されます。この時点で、の信頼区間 CR_CONTROLとがCR_EXPERIMENTAL計算されます。それらが重ならない場合、勝者は0.95の有意水準と0.8の検出力で宣言できます。

ただし、テストのユーザーには2つの大きな懸念があります。

1.テスト中のある時点で、明確な勝者を示すのに十分なサンプルが収集された場合、テストを停止できませんか?

2.テストの終了時に勝者が宣言されていない場合、勝者を見つけるのに十分なサンプルを収集できるかどうかを確認するためにテストをさらに実行できますか?

ユーザーが私たち自身のユーザーが望むことを正確に行えるようにする市販ツールが数多く存在することに注意してください。上記には多くの誤fallがあることを読みましたが、停止ルールのアイデアに出くわしたので、独自のシステムでそのようなルールを使用する可能性を調査したいと思います。

検討したい2つのアプローチを次に示します。

1.を使用power.prop.testして、現在の測定変換率を現在のサンプル数と比較し、勝者を宣言するのに十分なサンプルが収集されているかどうかを確認します。

例:次の動作がシステムに存在するかどうかを確認するテストが設定されています。

  • CRE_CONTROL:0.1
  • CRE_EXPERIMENTAL:0.1 * 1.3
  • これらのパラメーターでは、サンプルサイズNは1774です。

ただし、テストが進んで325サンプルに達すると、CRM_CONTROL(コントロールの測定された変換率)は0.08およびCRM_EXPERIMENTAL0.15です。power.prop.testこれらの変換率で実行Nされ、325であることがわかりました。正確CRM_EXPERIMENTALに、勝者であると宣言するために必要なサンプルの数です。この時点で、テストを終了できることを願っています。同様に、テストが1774サンプルに達しても勝者が見つからない場合、2122サンプルに達しCRM_CONTROL、0.1 CRM_EXPERIMENTALの結果と0.128が勝者を宣言できる結果であることを示すのに十分です。

関連する質問のユーザ少ないサンプルを有し、またに対して脆弱であることを停止し、このようなテストは、早期奨励のためにあまり信憑性であることをお勧め推定バイアスとタイプIとタイプIIエラーの数が増加。この停止ルールを機能させる方法はありますか?これは、プログラミング時間の短縮を意味するため、推奨されるアプローチです。おそらく、この停止ルールは、テストを早期に停止する必要がある場合、テストの信頼性を測定する何らかの数値スコアを提供することで機能するでしょうか?

2. 順次分析またはSPRTを使用します

これらのテスト方法は、私たちが見つけた状況に合わせて設計されています。ユーザーがテストを開始し、テストで余分な時間を無駄にしないようにテストを終了するにはどうすればよいですか。テストの実行が長すぎるか、異なるパラメーターでテストをやり直す必要があります。

上記の2つの方法のうち、数学が少し理解しやすく、プログラミングが簡単なように見えるため、SPRTを好みます。ただし、このコンテキストで尤度関数を使用する方法がわかりません。誰かが尤度比、尤度比の累積和を計算する方法の例を構築し、モニタリングを続行する状況、帰無仮説と対立仮説を受け入れる状況を示す例を続けることができる場合、 SPRTが正しい方法であるかどうかを判断するのに役立ちます。


2
ブードゥー教に頼っていないことを称賛します。ツールを使用していて、ツールの動作や動作を正確に理解していない場合、ツールの結果を解釈する資格がありません。分析がビジネス上の意思決定を促し、結果に時間とお金を費やしている場合、データのソースを理解するために時間をかけると、所有権が示されます。「群れにいる」のではなく、より多くの機会をあなたに与えるのは一種の大変な仕事です。
EngrStudent-モニカの復活

回答:


7

これは興味深い問題であり、関連する技術には多くのアプリケーションあります。それらはしばしば「中間監視」戦略または「シーケンシャル実験計画」と呼ばれます(リンク先のウィキペディアの記事は残念ながら少しまばらです)が、これについてはいくつかの方法があります。@ user27564は、これらの分析は必然的にベイジアンでなければならないという誤った考えを持っていると思います。中間監視のための頻繁なアプローチも確かにあります。

AsBsABPA=PB=0.558バツ そのような 1Fバツ;100;0.5<αF

同様のロジックにより、他のテストの「不可避ポイント」を見つけることができます。

  1. 合計サンプルサイズ*は固定されており、
  2. 各観測は、サンプルに制限された量を提供します。

これはおそらく実装が簡単です-停止基準をオフラインで計算し、それをサイトのコードにプラグインするだけです-しかし、結果が避けられない場合だけでなく、実験を終了したい場合は、さらに改善できます、しかしそれがまた変わる可能性が非常に低いとき。

ABA

他にも多くのアプローチがあります。グループシーケンシャルメソッドは、一定数の被験者を取得できず、被験者が可変レートでトリクルインする状況向けに設計されています。サイトのトラフィックに応じて、これを確認する場合としない場合があります。

分析に使用している場合、CRANの周りにはかなりの数のRパッケージがあります。開始するのに適した場所は、実際には臨床試験タスクビューです。この作業の多くはその分野から生まれたものです。


[*]わかりやすいアドバイス:非常に多数のデータポイントから計算された有意値を見るときは注意してください。あなたはより多くのデータを収集するとして、あなたはします最終的に有意な結果を見つけ、その効果は自明小さなかもしれません。たとえば、あなたは彼らがAまたはBを好むかどうか惑星全体を依頼された場合、それはだ非常にあなたが正確に50:50の分割を参照してくださいとは考えにくいが、分割が50.001であれば、それはおそらくあなたの製品を段取り価値はない:49.999。エフェクトのサイズ(変換率の違い)も確認してください!


1
ユーザーの懸念に明示的に対処するには:はい、間違いなく分析を早期に終了できます。これは、臨床試験で常に発生します。この薬は、その有効性に十分なデータがあり、コントロールグループに閉じ込められている人々に提供したいという非常に大きな成功です(または、おそらく薬は巨大ですバスト/物事を悪化させる)。ただし、実験の延長はより論争的です。複数の「外観」を修正する方法がありますが、事前に最大Nを修正した方がよいでしょう。
マットクラウス

2
このおかげで、実験が避けられない場合は停止することに完全に同意します。それは本当に理にかなっています!その「本当にありそうもない場合は停止する」ということで、私は本当のフリークエンティストが同意することを疑います。それは言うよりも何もありません:ねえ、95%?93%も良いと思います!90%の信頼に満足するだけでなく、データに目を向ける前に頻繁に使用するのも良いことです。
セバスチャン

1
私はアーチの常連ではありませんし、テレビでプレイすることもありませんが、早めの停止ルールについて頻繁に解釈することはできます。この実験を100回実行した場合、今停止した場合と完了するまで実行した場合の答えは異なりますか?レビュー私は、これはそれがけれども同時に満足BayesiansとFrequentistsすることが可能ですこれらの素晴らしい例1であることを指摘しリンクされ...
マット・クラウス

α

1
@ RussellS.Pierce:それは依存すると思います。明らかに、削減はしませんが、他のいくつかの方法は行います。たとえば、O'Brein and Flemmingテストではより多くのデータを使用できますが、早期に拒否することもできます。Pocockのテストではさらに拒否できます。それは明らかに詳細に依存します:上記のリンクされた本には、いくつかの妥当な値の例があります(効果サイズ:0.25、alpha = 0.05、power = 0.9、5ルックス)。修正されたNバージョンでは、拒否するために170人の被験者が必要です。OBFバージョンには最大180、Pocockには最大で205が必要ですが、予想される被験者の数はそれぞれ130と117です。
マットクラウス

1

早期に停止できますが、停止した場合、p値は簡単に解釈されません。p値の解釈を気にしない場合、最初の2つの質問に対する答えが「いいえ」である方法は重要ではありません(多すぎる)。あなたのクライアントは実際的であるように見えるので、p値の真の解釈はおそらくあなたが気にする細かい点ではありません。

あなたが提案する2番目のアプローチについて話すことはできません。

ただし、最初のアプローチは堅実なものではありません。二項分布の正規近似は、低い比率(これはpower.prop.testが使用する方法であり、Cohenの彼の古典的な力の本でも使用されている方法です)に対して有効ではありません。さらに、私が知る限り、2標本比率検定のための閉形式のパワー解析ソリューションはありません(通常の近似を使用せずに2グループの二項パワー解析を実行するにはどうすればよいですか?)。ただし、比率の信頼区間を近似するより良い方法があります(パッケージbinomを参照))。部分的な解決策として重複しない信頼区間を使用できますが、これはp値を推定することと同じではないため、電力へのルートを直接提供しません。誰かが私たちと共有する素敵なクローズドフォームソリューションを持っていることを願っています。つまずいたら、上記の質問を更新します。幸運を。

編集:私はそれについて考えている間、私はここでしばらく完全に実用的であることができます。クライアントは、実験サイトが対照サイトよりもうまく機能していることが確実なときに、この実験を終了したいと考えています。適切なサンプルを取得した後、意思決定の準備ができていない場合は、ランダムな割り当てと「勝っている」側の比率の調整を開始します。それが単なるブリップであった場合、平均値への回帰が入り込み、比率が落ち着きにくくなります。ある程度確信が持てたら、それを終了して勝者を宣言してください。最適なアプローチにはおそらくベイジアン更新が含まれますが、そのトピックについて頭から離れてあなたに指示するほど十分には知りません。ただし、直感に反する場合もありますが、数学自体はそれほど難しくありません。


0

あなたが持っている質問は、統計的検定で出てくる典型的な質問です。統計には2つの「フレーバー」があります。頻度主義者とベイジアンです。両方の質問に頻繁に答えるのは簡単です。

  • 番号
  • いいえ、早く止めることはできません
  • いいえ、長く測定することはできません

セットアップを定義した後は、データを見ることさえできません(ブラインド分析)。頻繁な視点から見ると、回避策も、不正行為も、トリックもありません!(編集:もちろん、そうしようとする試みがあり、正しく使用すれば機能しますが、それらのほとんどはバイアスを導入することが知られています。)

しかし、ベイジアンの視点があり、これはまったく異なります。ベイジアンアプローチでは、頻度の高い人とは対照的に、追加の入力であるアプリオリ確率分布が必要です。事前の知識や偏見とも呼ぶことができます。これにより、データ/測定を使用して知識を事後確率に更新できます。ポイントは、データを使用できることです。さらに、測定のすべての中間ポイントでデータを使用できます。各更新では、最後の事後は新しい事前であり、最新の知識に合わせて新しい測定で更新できます。早期停止の問題はまったくありません!

私はあなたが持っている問題のように非常に似ていることを議論する講演を見つけ、私は上記で説明しました:http : //biostat.mc.vanderbilt.edu/wiki/pub/Main/JoAnnAlvarez/BayesianAdaptivePres.pdf

しかし、これに加えて、あなたは本当にこれが本当に必要なのでしょうか?要求をリンクする場所を決定するシステムが実行されているようです。このため、仮説検定で統計的意味で決定が正しいことを証明する必要はありません。ペプシが95%の確率で「正しい」ことを除外できるため、コークスを購入したことがありますか?仮説を除外せずに、より良いものを選択するだけで十分です。それは簡単なアルゴリズムです。レートAの不確実性を計算し、Bの不確実性を計算します。両方のレートの差を取り、差の不確実性をbで割ります。結果は、シグマの違いの重要性のようなものです。次に、2つまたは3つ以上のシグマの違いがあるすべてのリンクを取得します。欠点、


1
あなたの最初の4つの段落はちょっとしたニシンだと思います-中間監視への頻繁なアプローチがあります。(Bayesian)事後更新がこれに適していることは事実ですが、この問題はさまざまな方法でフレーム化できます。スライドへのポインターをありがとう!
マットクラウス

とにかく+1-ベイジアンのアプローチは、おそらくここでの頻度の高い修正よりも明確です。
ラッセルピアス

2
ええ、これが...ミーム...あります。ベイジアンのメソッドは、複雑なことなくデータを無限に覗き見ることができます。ただし、タイプIの全体的なエラー率は実際には制御されておらず(なぜそうなるのでしょうか)、多くの「ルック」の後、任意に大きくなる可能性があります。適切な事前条件でこれを改善するか、タイプIエラーの制御が不十分であると主張することができますが、それはすべてのベイジアン手法が万能薬であるかのようではありません。
マットクラウス

0

多分いくつかの方法がそこで使用できます

  • ポコック
  • オブライエンとフレミング
  • ペト

これにより、結果に基づいてPカットオフが調整され、データの収集を停止し、リソースと時間を節約できます。

ここに他の作品を追加することもできます。


箇条書きのリンクや詳細情報を提供できますか?
アントワーヌ

これらを引用しているレビュー記事を使用したため、その正確な記事はありません、アプローチが異なることを意味しますが、医療分野の質問を管理する記事を推奨する場合があります:もっと聞いて?Christopher Jennisona *†およびBruceW。Turnbullb
HappyMan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.