ベイジアンA / Bテストを終了するタイミング


10

ハッカーの確率的プログラミングベイジアンA / Bテストのように、ベイジアン方式でA / Bテストを実行しようとしています。どちらの記事は、意思決定者が決定したと仮定し、より良い、単にいくつかの基準の確率に基づいて、例えばれるバリアントのどの、したがって、優れています。この確率は、そこから結論を引き出すのに十分な量のデータがあったかどうかについての情報を提供しません。そのため、いつテストを停止するかは不明です。P(pA>pB)=0.97A

そこに2つのバイナリRV車、であると仮定し及び、私はそれがどのように可能性を推定することを、およびの観察に基づいて、および。さらに、および事後者がベータ配布されているとします。ABpA>pBpApBpA>5%ABpApB

およびのパラメータを見つけることができるので、事後標本をサンプリングして、を推定できます。。Pythonでの例:α,βpA|datapB|dataP(pA>pB | data)

import numpy as np

samples = {'A': np.random.beta(alpha1, beta1, 1000),
           'B': np.random.beta(alpha2, beta2, 1000)}
p = np.mean(samples['A'] > samples['B'])

たとえば、取得できます。今、私はようなものを持ちたいと思い。P(pA>pB)=0.95P(pA>pB | data)=0.95±0.03

私は信頼できる間隔とベイズ因子について調査しましたが、それらがまったく当てはまる場合、このケースでそれらを計算する方法を理解できません。これらの追加の統計をどのように計算すれば、良い終了基準が得られますか?


1
これについての良い記事、付録の計算例を参照してください
Fabio Beltramini 14

回答:


10

私が取り組んでいるプロジェクトの1つがベイジアンA / Bテストの章全体を書いているので、この例を説明してくれてうれしいです。

と "増加"の測定の2つの量に関心が。、数量について説明します。P(pA>pB|data)P(pA>pB|data)

にはエラー範囲はありませんこれは真の量です。これは、「事後の平均は何ですか?」と言うのに似ており、平均は1つしかなく、すべてのサンプルの平均を取ることで計算できます(モンテカルロエラーは無視できるので無視できます)。さらにサンプリングすることで重要ではありません)。「+-3%」のような未知の量と事後計算された量を混同していると思います。P(pA>pB|data)

私が言っていることは、は確かです:観察されたデータと事前情報を与えられれば、これはあなたの結論です。P(pA>pB|data)=0.95

すぐにわかることに注意してください。必要なと異なる場合は、適度な量の観測のみが必要。AがBに対してどれだけ増加したかを測定することは、はるかに困難で興味深いものです(そして、多くの場合、これがA / Bテストの目標です。変換をどれだけ増加させるか)。あなたは、 5%と述べました-これはどれくらい確信していますか?pA>pBpApBpApBpB>

注意しながらそのブール値であるので、容易測定するために、確かにブール値ではありません。それは可能性の分布です:pA>pBpApBpB

ここに画像の説明を入力してください

取得するデータが増えるにつれて、この分布は実際の相対的な増加に収束し、分布は安定していると言えます。ここで、実験の終了について考えることをお勧めします。この分布が「落ち着く」ように見え、増加に自信が持てるようになったら、実験を終了します。


返信いただきありがとうございます!新しい章がすぐに見られることを楽しみにしています。今のところ、標本分散を検討し、ゼロに近づいたときにテストを終了します。pApBpA
Bogdan Kulynych 2014

@ Cam.Davidson.Pilonさん、返信ありがとうございます。「確率はAの方がBの方がX%よりも10%優れている」というような確率を与えることについては、まだ混乱しています。2つの分布を作成しました。一方は他方より10%優れており、使用されたN値は大きいため、差分(A / B-1)は平均10%の正規分布に似ています。したがって、(diff> .10).mean()は〜50%を返しますが、100%にすべきではありませんか?
CanCeylan

@CanCeylan共有するコードはありますか?ディストリビューションをどのように作成したかわかりません...
Cam.Davidson.Pilon 2018

0

私はベイジアンA / Bテストを停止する方法を実験してきましたが、その通りです-ぐるぐる回る明らかな方法はそれほど多くありません。私が最も好きな方法は、これに基づく精度ベースの方法です:http : //doingbayesiandataanalysis.blogspot.com/2013/11/optional-stopping-in-data-collection-p.html。しかし、これに関する数学の文献はあまり見当たらないので、今のところ、これは優れたヒューリスティックです。

私のテストは、望ましい精度を達成するためにはるかに長い時間実行する必要がある一方で、より直感的であり、の分布が目的で「落ち着く」ための時間を与えていることがわかりました方法、つまり、目を凝らすのではなく。P(A>B|data)


0

ベイジアンA / Bテストの意思決定には、主に2つのアプローチがあるようです。1つ目は、インディアナ大学のJohn Kruschkeによる論文に基づいています(K. Kruschke、Bayesian Estimation Supersedes the t Test、Journal of Experimental Psychology:General、142、573(2013))。このホワイトペーパーで使用されている決定規則は、実用的同等領域(ROPE)の概念に基づいています。

別の可能性は、予想損失の概念を使用することです。Chris Stucchio(C. Stucchio、VWOでのベイジアンA / Bテスト)によって提案されました。それは私が検討する別のアプローチです。

の事後分布を見るというCam.Davidson.Pilonによって提案されたアプローチは、非常に理にかなっており、ROPEメソッドにうまく適合します。ROPEメソッドを使用すると、実験が決定的でない場合(「A」または「B」のバリアントを勝者として宣言できる場合だけでなく)のルールも提供できるという追加の利点があります。 (pApB)/pA

詳しくは、このブログ投稿:ベイジアンA / Bテスト:ステップバイステップガイドをご覧ください。また、ほとんどがGithubでホストされている Pythonプロジェクトに基づいているPythonコードスニペットも含まれています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.