A / B検定に使用する統計検定は何ですか?


12

それぞれ1000サンプルのコホートが2つあります。各コホートで2つの量を測定します。最初のものはバイナリ変数です。2番目は、重いテール分布に従う実数です。各コホートが各メトリックに対して最適に機能するかどうかを評価したいと思います。選択できる統計的検定は多数あります。人々はz検定を提案し、他はt検定を使用し、他はMann-Whitney Uを使用します。

  • ケースのメトリックごとに、どのテストを選択する必要がありますか?
  • 1つのテストでコホート間の有意差が示唆され、他のテストで有意差がないことが示唆された場合はどうなりますか?

回答:


12

2つのメトリックが1)バイナリと2)ヘビーテールであることを考えると、正規分布を仮定するt検定を避ける必要があります。

Mann-Whitney Uが最良の選択であり、たとえ分布がほぼ正常であったとしても十分に効率的であると思います。

2番目の質問について:

1つのテストでコホート間の有意差が示唆され、他のテストで有意差がないことが示唆された場合はどうなりますか?

統計的な差異が境界線であり、データに「乱雑な」サンプル分布がある場合、これは珍しいことではありません。この状況では、アナリストは各統計テストのすべての仮定と制限を慎重に検討し、仮定違反の数が最も少ない統計テストに最大の重みを付ける必要があります。

正規分布を仮定してください。正常性にはさまざまなテストがありますが、それで終わりではありません。一部のテストは、正規分布から多少の逸脱があっても対称分布ではかなりうまく機能しますが、スキュー分布ではうまく機能しません。

一般的な経験則として、前提が明らかに違反している場合はテストを実行しないことをお勧めします。

編集: 2番目の変数については、変換が順序を維持している限り、変数を正規分布(または少なくとも近い)に変換することが可能です。変換によって両方のコホートの正規分布が得られることを十分に確信する必要があります。2番目の変数を対数正規分布に適合させると、対数関数はそれを正規分布に変換します。しかし、分布がパレート(べき法則)の場合、正規分布への変換はありません。

編集:このコメントで示唆されているように、t検定およびその他の帰無仮説有意性検定(NHST)の代替として、ベイジアン推定を必ず考慮する必要があります。


情報をありがとう。私は十分に明確ではありませんでした。2つの量があり、1つはバイナリで、もう1つは重いテール分布に続く実数です。これを明確にするために質問を編集しました。
iliasfl 14年

はい、わかりました。テストを2回実行します。1回はバイナリ変数で、もう1回は実変数で実行します(重分布)。両方にMann-Whitney Uを実行することをお勧めします。

Mann-Whitneyがバイナリデータに適しているのはなぜですか?
Glen_b -Reinstate Monica

Mann-Whitney Uは、2つの値(つまりバイナリ)を持つ離散分布を含む非正規分布に効果的です。すべてのデータがバイナリである場合、別のテストがより適切に機能する可能性があります。
MrMeritology 14

誰かがこれが本当かどうか確認できますか?

7

実数値のデータについては、データのブートストラップに基づいて独自のテスト統計を生成することも検討できます。このアプローチは、非正規母集団分布を扱う場合、または便利な分析ソリューションを持たないパラメーターの信頼区間を開発しようとする場合に、正確な結果を生成する傾向があります。(前者はあなたの場合に当てはまります。コンテキストについては後者についてのみ言及します。)

実際の値のデータについては、次のことを行います。

  1. 2つのコホートをプールします。
  2. プールから、1000個の要素の2つのグループを、交換してサンプリングします。
  3. 2つのグループ間の標本平均の差を計算します。
  4. 手順2と3を数千回繰り返して、これらの違いの分布を作成します。

その分布が得られたら、実際のサンプルの平均の差を計算し、p値を計算します。


おかげで、分布になります。これは、平均と標準偏差のある正規分布でなければなりません。勝者(存在する場合)を決定するために、そこからp値、およびおそらく信頼区間をどのように計算しますか?
iliasfl 14年

分布は必ずしも正常ではありません。それは、それがサンプリングされたもののおおよその分布を持つでしょう。それがブートストラップを使用することの美しさです。いずれの場合でも、実際の結果から検定統計量を計算することによりp値を取得します。すなわち、各コホートの平均の違い。次に、その数を分布と比較します。得られるパーセンタイルは、平均の差に関する片側検定のp値です。
ネイサングールド14年

4
ネイサンが説明していることは、ベイジアン法の有意性検定の基礎でもあります。私は、ベイジアン推定を使用しています(そして現在使用しています)。プーリングアプローチを実装する場合は、そのフレームワークを確認する必要があります。
cwharland

0

@MrMeritologyの2番目の答えです。実際、私はMWUテストが独立した比率のテストよりも強力ではないかどうか疑問に思っていました。なぜなら、私が学び、教えていた教科書は、MWUは順序(または間隔/比率)データにのみ適用できると言っていたからです。

しかし、下にプロットした私のシミュレーション結果は、MWUテストが実際にプロポーションテストよりもわずかに強力であり、タイプIのエラーを適切に制御していることを示しています(グループ1の母集団比率= 0.50)。

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

グループ2の人口比率は0.50に保たれます。反復回数は各ポイントで10,000です。Yateの修正なしでシミュレーションを繰り返しましたが、結果は同じでした。

library(reshape)

MakeBinaryData <- function(n1, n2, p1){
  y <- c(rbinom(n1, 1, p1), 
        rbinom(n2, 1, 0.5))
  g_f <- factor(c(rep("g1", n1), rep("g2", n2)))
  d <- data.frame(y, g_f)
  return(d)
}

GetPower <- function(n_iter, n1, n2, p1, alpha=0.05, type="proportion", ...){
  if(type=="proportion") {
    p_v <- replicate(n_iter, prop.test(table(MakeBinaryData(n1, n1, p1)), ...)$p.value)
  }

  if(type=="MWU") {
    p_v <- replicate(n_iter, wilcox.test(y~g_f, data=MakeBinaryData(n1, n1, p1))$p.value)
  }

  empirical_power <- sum(p_v<alpha)/n_iter
  return(empirical_power)
}

p1_v <- seq(0.5, 0.6, 0.01)
set.seed(1)
power_proptest <- sapply(p1_v, function(x) GetPower(10000, 1000, 1000, x))
power_mwu <- sapply(p1_v, function(x) GetPower(10000, 1000, 1000, x, type="MWU"))

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