Rの正確な2つのサンプル比率の二項検定(およびいくつかの奇妙なp値)


23

私は次の質問を解決しようとしています:

プレーヤーAは25ゲーム中17勝、プレーヤーBは20ゲーム中8勝-両方の比率に大きな違いはありますか?

Rで頭に浮かぶことは次のとおりです。

> prop.test(c(17,8),c(25,20),correct=FALSE)

    2-sample test for equality of proportions without continuity correction

data:  c(17, 8) out of c(25, 20)
X-squared = 3.528, df = 1, p-value = 0.06034
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.002016956  0.562016956
sample estimates:
prop 1 prop 2 
  0.68   0.40 

したがって、このテストでは、95%の信頼レベルでは差は有意ではないと述べています。

prop.test()近似のみを使用していることがわかっているので、正確な二項検定を使用してより正確にしたい-と私は両方の方法でそれを行う:

> binom.test(x=17,n=25,p=8/20)

    Exact binomial test

data:  17 and 25
number of successes = 17, number of trials = 25, p-value = 0.006693
alternative hypothesis: true probability of success is not equal to 0.4
95 percent confidence interval:
 0.4649993 0.8505046
sample estimates:
probability of success 
                  0.68 

> binom.test(x=8,n=20,p=17/25)

    Exact binomial test

data:  8 and 20
number of successes = 8, number of trials = 20, p-value = 0.01377
alternative hypothesis: true probability of success is not equal to 0.68
95 percent confidence interval:
 0.1911901 0.6394574
sample estimates:
probability of success 
                   0.4 

さて、これはおかしいですね。p値は毎回完全に異なります!どちらの場合も、結果は(非常に)重要ですが、p値は偶然に飛び跳ねるように見えます。

私の質問

  1. 毎回p値異なるのはなぜですか?
  2. Rで正確に2つのサンプル比率の二項検定を正しく実行するにはどうすればよいですか?

3
R関数は異なります(prop.testvs chisq.test)が、この問題には同じ基本概念があります。3つの例のそれぞれで、異なる「帰無仮説」で3つの異なるテストを実行しています。
アフィン14

回答:


26

2つの二項比率の「正確な」検定を探しているなら、フィッシャーの正確検定を探していると思います。Rでは、次のように適用されます。

> fisher.test(matrix(c(17, 25-17, 8, 20-8), ncol=2))
    Fisher's Exact Test for Count Data
data:  matrix(c(17, 25 - 17, 8, 20 - 8), ncol = 2)
p-value = 0.07671
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
  0.7990888 13.0020065
sample estimates:
odds ratio 
  3.101466 

このfisher.test関数は、2つの二項比率の「成功」と「失敗」の行列オブジェクトを受け入れます。ただし、ご覧のとおり、両側仮説は重要ではありません。ただし、フィッシャーの正確確率検定は通常、細胞数が少ない場合にのみ適用されます(通常、これは5以下を意味しますが、一部は10を意味します)。したがって、最初の使用prop.testがより適切です。

あなたのbinom.test電話に関して、あなたは電話を誤解しています。実行binom.test(x=17,n=25,p=8/20)すると、成功確率が8/20である母集団と比率が有意に異なるかどうかをテストしています。同様に、成功binom.test(x=8,n=20,p=17/25)確率は17/25であるため、これらのp値が異なります。したがって、2つの比率をまったく比較していません。


2
ありがとう、私はあなたの答えを受け入れました。prop.testが「より適切」であると言うとき、正確にはどういう意味ですか?より正確な結果は、(文字通り)フィッシャーの正確検定によって与えられますよね?
vonjd 14年

4
これは実際には統計学者の間で議論されていることであり、絶対的な答えはありません。歴史的に、フィッシャーは非常に複雑になりますが、コンピューターはこれを回避するため、フィッシャーを避けました。ただし、一般的に言えば、フィッシャーの正確検定は保守的であり、数値が十分に大きい場合、カイ2乗統計量(prop.test計算対象)はタイプIIエラーをコミットしない可能性が高くなります。
cdeterman 14年

私にとって重要な点は、prop.testand の異なるセマンティクスですfisher.test:前者は次のように呼ばれますprop.test(matrix(c(17, 8, 25, 20), ncol=2))(最初の列に成功の数を与え、2番目の列に試行fisher.test(matrix(c(17, 25-17, 8, 20-8), ncol=2))の数を与えます)が、後者は(成功の数を与えておよび失敗); のためfisher.test、転置も結果を変えないようです。
krlmlr

2x2テストでは、より強力な代替手段も利用できます -en.wikipedia.org/wiki/Barnard%27s_test
Hamy

4

既知の仮説と比較すると、2つのサンプルと1つのサンプルには違いがあります。したがって、誰かがコインを100回裏返し、55回頭を取得し、仮説が公正なコインである場合、2人が公平性不明のコインを裏返し、1人が55回頭を取得し、もう1人が45回取得します。前者の場合、単にフリッパーが公正なコインを反転しているように見えるかどうかを特定しようとしています。後者では、同じ公正さのコインを反転させているかどうかを確認しています。各プレイヤーを既知の確率(45対50および55対50)で見ている場合、それらを互いに比較する(45対55)こととは異なることがわかります。


2

の構文は、binom.test人口ポイント推定と比較した多くの試行内での成​​功です。p = 8/20として入力しましたが、計算は、周囲にゼロ分散を持つ、神から与えられた絶対真理値0.4のようになります。または、25人のうち17人のプレイヤーAの勝ちと、200億回のゲームのうちプレイヤーBの80億の勝ちとを比較しているようです。ただし、17 prop.test/25の割合を潜在的なすべての分散と比較し、8/20の割合をすべての独自の分散と比較します。言い換えると、0.7前後の分散(17/25の推定値)と0.4前後の分散は、結果としてp = 0.06で互いにブリードする可能性があります


だから、これは元の質問を解決する正しい方法が正しいことを意味しprop.test(c(17,8),c(25,20),correct=FALSE)ますか?
vonjd

1
はい、それは正しいです。あなたが持っている必要があるかどうかについての指導をしたい場合はcorrect = FALSEcorrect = TRUE私は次のような読むことをお勧めstats.stackexchange.com/questions/185433/...
ファレル

2

最初に、連続(カイ2乗)分布の離散分布を推定しているため、連続性補正を行うことをお勧めします。

第二に、「実験」がどのように行われたかを明確にすることが重要です。各人がプレイしたゲームの数は事前に決定されていましたか(または、業界の用語では、設計によって固定されていました)?もしそうなら、さらに各プレイヤーの結果が他のプレイヤーから独立していると仮定すると、2つの二項分布の積を扱います。代わりに、ゲームの数を自由に変えることができた場合(たとえば、各人がプレイしたゲームの数が、それぞれ一定の時間枠で完了することができたゲームの数に基づいて可変だった場合)、多項式を扱っていますまたはポアソン分布。

2番目の場合、カイ2乗検定(または同じこと、比率のz検定)は適切ですが、前者の場合は適切ではありません。最初のケースでは、各プレーヤーの可能なすべての二項結果の正確な積を計算し、観察された結果の共同二項確率以下のすべての発生の確率を合計する必要があります(単純に各プレイヤーの結果は他のプレイヤーの結果から独立しているため、2つの二項式の積)。

仮説検定の中心的な目的は、他のすべての可能な結果と比較して、観察した特定の結果がどれだけ「まれ」または異常であるかを計算することであることを最初に認識してください。これは、観察した結果の確率を計算することによって計算されます-帰無仮説が真であるという仮定の下で-等しいか低い確率の他のすべての可能な結果と合計されます。

今では、「どれほどまれ」とは「他のすべての可能な結果と比較して、得られた結果を観察する確率がどれだけ低いか」という意味を繰り返しています。さて、私たちが観察した特定の結果の確率は0.0679 * 0.0793 = 0.005115です。ここで、特定の代替結果を考えてみましょう。プレーヤーAが20試合中7勝し、プレーヤーBが25試合中13勝した可能性があります。この結果の確率は0.004959です。これは、観測された結果の確率よりも低いため、p値に含める必要があります。しかし、もう一度見てください:比率の差が観測された結果の比率の差を超えるかどうかに基づいて合計に含める結果を決定する場合、この確率は除外されます!どうして?これは、この特定の結果の割合の差が、観察された結果の割合の差よりも小さいためです。しかし、これは適切な焦点ではありません-この特定の結果の確率と、観察した結果の確率以下かどうかを考慮する必要があります!

これについての正式な説明はここにあります:

http://data.princeton.edu/wws509/notes/c5.pdf

「行マージンが固定され、サンプリングスキームが2項式である場合、詳細情報なしでは2つの変数の同時分布を推定できないため、製品の2項式モデルを使用する必要があります。」


観測された結果の確率と比較して発生する確率が等しいか低い共同二項確率の合計を計算するRコードについては、次の関連記事への回答を参照してください: stats.stackexchange.com/questions/213295/…
user221943
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.