R에서 정확한 두 표본 비율 이항 테스트 (및 일부 이상한 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에서 정확히 두 개의 샘플 비율 이항 테스트를 올바르게 수행하는 방법은 무엇입니까?

3
R 함수는 다르지만 ( prop.testchisq.test)이 질문 에는 동일한 기본 개념이 있습니다. 세 가지 예에서 서로 다른 "널 가설"로 세 가지 테스트를 실행하고 있습니다.
Affine

답변:


26

두 개의 이항 비율에 대한 '정확한'테스트를 찾고 있다면 Fisher의 정확한 테스트를 찾고 있다고 생각합니다 . 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 개의 이항 비율 인 '성공'과 '실패'의 행렬 객체를 받아들입니다. 그러나 보시다시피 양측 가설은 여전히 ​​중요하지 않습니다. 죄송합니다. 그러나 Fisher 's Exact 테스트는 일반적으로 셀 수가 적은 경우에만 적용되며 (일반적으로 5 이하이지만 일부는 10이라고 함) 초기 사용 prop.test이 더 적합합니다.

당신의 binom.test전화에 관해서 는, 당신은 전화를 오해하고 있습니다. 실행할 때 성공 확률이 8/20 인binom.test(x=17,n=25,p=8/20) 모집단과 비율이 크게 다른지 테스트합니다 . 이와 함께이 말한다 성공 확률 25분의 17 인 이, P 값이 다른 이유이다. 따라서 두 비율을 전혀 비교하지 않습니다.binom.test(x=8,n=20,p=17/25)


2
감사합니다, 당신의 대답을 받아 들였습니다. prop.test가 "보다 적합하다"고 말할 때 정확히 무엇을 의미합니까? 더 정확한 결과는 Fisher 's Exact Test에 의해 (문자 그대로) 제공됩니까?
vonjd

4
이것은 실제로 통계 학자들 사이에서 논의되는 내용이며 절대적인 답은 없습니다. 역사적으로 피셔는 계산 상 복잡해 지지만 컴퓨터는이를 피하기 때문에 피했습니다. 그러나 일반적으로 Fisher의 정확 검정은 보수적이며 숫자가 충분히 크면 카이 제곱 통계 ( prop.test계산 값)가 유형 II 오류를 범하지 않을 가능성이 높습니다.
cdeterman

내게 중요한 점은 다른 시맨틱있다 prop.testfisher.test같은 호출 이전이다 prop.test(matrix(c(17, 8, 25, 20), ncol=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

알려진 가설과 비교하여 두 샘플과 샘플간에 차이가 있습니다. 따라서 누군가 동전을 100 번 뒤집고 55 번 머리를 가져오고 가설이 공정한 동전 인 경우, 두 사람이 불명 한 공정성을 가진 동전을 뒤집고 한 사람은 55 번, 다른 사람은 45 번을 가져옵니다. 전자의 경우, 당신은 단순히 플리퍼가 공정한 동전을 뒤집는 것처럼 보이는지 식별하려고합니다. 후자에서, 당신은 그들이 같은 공정성을 가진 동전을 뒤집는 지보고 있습니다. 알려진 확률 (45 대 50 및 55 대 50)에 대해 각 플레이어를 보면 서로 비교하는 것 (45 대 55)이 어떻게 다른지 알 수 있습니다.


2

의 구문은 binom.test인구 포인트 추정치 와 비교하여 여러 번의 시도에서 성공한 것 입니다. p = 8 / 20으로 입력했지만 계산은 마치 주변에 분산이없는 신이 제공 한 절대 진리 0.4 인 것처럼 계산됩니다. 또는 25 명의 플레이어 A의 17 승을 200 억의 게임 중 B의 가상 80 억의 승리와 비교하는 것과 같습니다. 그러나 prop.test모든 잠재적 분산이있는 17/25의 비율과 자체 분산이 모두있는 8/20의 비율을 비교합니다. 환언 0.7 (25분의 17의 추정)과 분산 주위의 분산은 약 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 개의 이항 분포의 곱을 처리하게됩니다. 대신 게임 수가 다양하게 변하는 경우 (예를 들어, 각 개인이 고정 된 시간 내에 완료 할 수있는 게임 수에 따라 각 사람이 수행 한 게임 수는 가변적 인 경우) 다항식을 다루는 것입니다 또는 푸 아송 분포.

두 번째 경우에는 카이 제곱 검정 (또는 같은 점, 비율 차이의 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

특히 행 마진이 고정되고 샘플링 체계가 이항 인 경우 자세한 정보없이 두 변수에 대한 결합 분포를 추정 할 수 없으므로 제품 이항 모형을 사용해야합니다.


관측 결과의 확률과 비교하여 발생 확률이 같거나 낮은 공동 이항 확률의 합을 계산하는 R 코드에 대해서는 다음 관련 게시물에 대한 답변을 참조하십시오. stats.stackexchange.com/questions/213295/…
user221943
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.