पी-वैल्यू अलग क्यों हैं
दो प्रभाव चल रहे हैं:
मानों की असंगति के कारण आप 'सबसे अधिक होने की संभावना' चुनते हैं 0 2 1 1 1 वेक्टर। लेकिन यह (असंभव) 0 1.25 1.25 1.25 1.25 से भिन्न होगा, जिसका आकार छोटा होगाχ2 मूल्य।
नतीजा यह है कि वेक्टर 5 0 0 0 0 0 को अब तक कम से कम चरम मामले में नहीं गिना जा रहा है (5 0 0 0 0) छोटा है χ2से अधिक 0 2 1 1 1)। पहले भी ऐसा होता था। दो पक्षीय 2x2 तालिका में गिना जाता है 5 जोखिम पहले या समान रूप से चरम रूप में दूसरे समूह में होने का दोनों ही मामलों पर फिशर परीक्षण।
यही कारण है कि पी-मूल्य लगभग एक कारक से भिन्न होता है 2. (अगले बिंदु के कारण बिल्कुल नहीं)
जब आप 5 0 0 0 0 को समान रूप से चरम मामले के रूप में ढीला करते हैं, तो आप 1 2 0 1 1 1 से अधिक चरम मामले के रूप में 1 4 0 0 0 प्राप्त करते हैं।
तो अंतर सीमा में है χ2मूल्य (या सटीक फिशर परीक्षण के आर कार्यान्वयन द्वारा उपयोग के रूप में एक सीधे गणना पी-मूल्य)। यदि आप 400 के समूह को 100 के 4 समूहों में विभाजित करते हैं तो विभिन्न मामलों को अन्य की तुलना में अधिक या कम 'चरम' माना जाएगा। ५ ० ० ० ० ० अब 1 चरम ’है ० २ २ १ १ १। लेकिन १ ४ ० ० ० अधिक extreme अति’ है।
कोड उदाहरण:
# probability of distribution a and b exposures among 2 groups of 400
draw2 <- function(a,b) {
choose(400,a)*choose(400,b)/choose(800,5)
}
# probability of distribution a, b, c, d and e exposures among 5 groups of resp 400, 100, 100, 100, 100
draw5 <- function(a,b,c,d,e) {
choose(400,a)*choose(100,b)*choose(100,c)*choose(100,d)*choose(100,e)/choose(800,5)
}
# looping all possible distributions of 5 exposers among 5 groups
# summing the probability when it's p-value is smaller or equal to the observed value 0 2 1 1 1
sumx <- 0
for (f in c(0:5)) {
for(g in c(0:(5-f))) {
for(h in c(0:(5-f-g))) {
for(i in c(0:(5-f-g-h))) {
j = 5-f-g-h-i
if (draw5(f, g, h, i, j) <= draw5(0, 2, 1, 1, 1)) {
sumx <- sumx + draw5(f, g, h, i, j)
}
}
}
}
}
sumx #output is 0.3318617
# the split up case (5 groups, 400 100 100 100 100) can be calculated manually
# as a sum of probabilities for cases 0 5 and 1 4 0 0 0 (0 5 includes all cases 1 a b c d with the sum of the latter four equal to 5)
fisher.test(matrix( c(400, 98, 99 , 99, 99, 0, 2, 1, 1, 1) , ncol = 2))[1]
draw2(0,5) + 4*draw(1,4,0,0,0)
# the original case of 2 groups (400 400) can be calculated manually
# as a sum of probabilities for the cases 0 5 and 5 0
fisher.test(matrix( c(400, 395, 0, 5) , ncol = 2))[1]
draw2(0,5) + draw2(5,0)
उस पिछले बिट का उत्पादन
> fisher.test(matrix( c(400, 98, 99 , 99, 99, 0, 2, 1, 1, 1) , ncol = 2))[1]
$p.value
[1] 0.03318617
> draw2(0,5) + 4*draw(1,4,0,0,0)
[1] 0.03318617
> fisher.test(matrix( c(400, 395, 0, 5) , ncol = 2))[1]
$p.value
[1] 0.06171924
> draw2(0,5) + draw2(5,0)
[1] 0.06171924
समूहों को विभाजित करते समय यह शक्ति को कैसे प्रभावित करता है
पी-वैल्यूज़ के 'उपलब्ध' स्तरों में असतत चरणों और फ़िशर्स के सटीक परीक्षण की रूढ़िवादिता के कारण कुछ अंतर हैं (और ये अंतर काफी बड़े हो सकते हैं)।
फिशर परीक्षण भी डेटा पर आधारित अज्ञात (अज्ञात) मॉडल को फिट करता है और फिर पी-मानों की गणना करने के लिए इस मॉडल का उपयोग करता है। उदाहरण में मॉडल यह है कि वास्तव में 5 उजागर व्यक्ति हैं। यदि आप अलग-अलग समूहों के लिए एक द्विपद के साथ डेटा मॉडल करते हैं तो आपको कभी-कभी 5 से अधिक व्यक्ति मिलेंगे। जब आप फिशर टेस्ट इस पर लागू करते हैं, तो कुछ त्रुटि को ठीक किया जाएगा और निश्चित मार्जिन के साथ परीक्षण की तुलना में अवशेष छोटे होंगे। नतीजा यह है कि परीक्षण बहुत अधिक रूढ़िवादी है, सटीक नहीं है।
मुझे उम्मीद थी कि यदि आप समूहों को यादृच्छिक रूप से विभाजित करते हैं तो प्रयोग प्रकार I त्रुटि संभावना पर प्रभाव इतना महान नहीं होगा। यदि अशक्त परिकल्पना सत्य है तो आप मोटे तौर पर मुठभेड़ करेंगेαमामलों का प्रतिशत एक महत्वपूर्ण पी-मूल्य। इस उदाहरण के लिए मतभेद छवि शो के रूप में बड़े हैं। मुख्य कारण यह है कि, कुल 5 एक्सपोज़र के साथ, पूर्ण अंतर के केवल तीन स्तर हैं (5-0, 4-1, 3-2, 2-3, 1-4, 0-5) और केवल तीन असतत p- मान (400 के दो समूहों के मामले में)।
सबसे दिलचस्प अस्वीकार करने के लिए संभावनाओं की साजिश है एच0 अगर एच0 सच है और यदि एचएसच हैं। इस मामले में अल्फा स्तर और विसंगति इतना मायने नहीं रखती है (हम प्रभावी अस्वीकृति दर की साजिश करते हैं), और हम अभी भी एक बड़ा अंतर देखते हैं।
सवाल यह है कि क्या यह सभी संभावित स्थितियों के लिए है।
आपके पावर विश्लेषण का 3 गुना कोड समायोजन (और 3 चित्र):
5 उजागर व्यक्तियों के मामले में द्विपद प्रतिबंधक का उपयोग करना
अस्वीकार करने के लिए प्रभावी संभावना के भूखंड एच0चयनित अल्फा के कार्य के रूप में। यह फिशर के सटीक परीक्षण के लिए जाना जाता है कि पी-मूल्य की गणना ठीक से की जाती है, लेकिन केवल कुछ स्तर (चरण) होते हैं, इसलिए अक्सर चुने हुए अल्फा स्तर के संबंध में परीक्षण बहुत रूढ़िवादी हो सकता है।
यह देखना दिलचस्प है कि 400-400 मामले (लाल) बनाम 400-100-100-100-100 मामले (नीला) के लिए प्रभाव बहुत मजबूत है। इस प्रकार हम वास्तव में शक्ति को बढ़ाने के लिए इस विभाजन का उपयोग कर सकते हैं, इसे H_0 को अस्वीकार करने की अधिक संभावना है। (हालाँकि हम इस बात की परवाह नहीं करते हैं कि मैं जिस प्रकार की त्रुटि की संभावना को अधिक बनाता हूँ, इसलिए ऐसा करने की बात यह है कि शक्ति को बढ़ाने के लिए विभाजन हमेशा इतना मजबूत नहीं हो सकता है)
द्विपद का उपयोग करते हुए 5 उजागर व्यक्तियों तक सीमित नहीं है
यदि हम एक द्विपद का उपयोग करते हैं जैसे आपने किया था तो दोनों मामलों में से 400-400 (लाल) या 400-100-100-100-100 (नीला) एक सटीक पी-मूल्य देता है। इसका कारण यह है कि फिशर सटीक परीक्षण निश्चित पंक्ति और स्तंभ योग मानता है, लेकिन द्विपद मॉडल इन्हें मुक्त करने की अनुमति देता है। फिशर परीक्षण वास्तविक त्रुटि शब्द की तुलना में अवशिष्ट शब्द को छोटा बनाते हुए पंक्ति और स्तंभ योगों को 'फिट' करेगा।
क्या बढ़ी हुई बिजली लागत पर आती है?
अगर हम अस्वीकार करने की संभावनाओं की तुलना करते हैं तो एच0 सच है और जब एचए सच है (हम पहले मूल्य कम और दूसरे मूल्य उच्च चाहते हैं) तो हम देखते हैं कि वास्तव में शक्ति (जब अस्वीकार कर रहा है) एचए यह सच है) लागत के बिना बढ़ाया जा सकता है कि जिस प्रकार मैं त्रुटि बढ़ती है।
# using binomial distribution for 400, 100, 100, 100, 100
# x uses separate cases
# y uses the sum of the 100 groups
p <- replicate(4000, { n <- rbinom(4, 100, 0.006125); m <- rbinom(1, 400, 0.006125);
x <- matrix( c(400 - m, 100 - n, m, n), ncol = 2);
y <- matrix( c(400 - m, 400 - sum(n), m, sum(n)), ncol = 2);
c(sum(n,m),fisher.test(x)$p.value,fisher.test(y)$p.value)} )
# calculate hypothesis test using only tables with sum of 5 for the 1st row
ps <- c(1:1000)/1000
m1 <- sapply(ps,FUN = function(x) mean(p[2,p[1,]==5] < x))
m2 <- sapply(ps,FUN = function(x) mean(p[3,p[1,]==5] < x))
plot(ps,ps,type="l",
xlab = "chosen alpha level",
ylab = "p rejection")
lines(ps,m1,col=4)
lines(ps,m2,col=2)
title("due to concervative test p-value will be smaller\n leading to differences")
# using all samples also when the sum exposed individuals is not 5
ps <- c(1:1000)/1000
m1 <- sapply(ps,FUN = function(x) mean(p[2,] < x))
m2 <- sapply(ps,FUN = function(x) mean(p[3,] < x))
plot(ps,ps,type="l",
xlab = "chosen alpha level",
ylab = "p rejection")
lines(ps,m1,col=4)
lines(ps,m2,col=2)
title("overly conservative, low effective p-values \n fitting marginals makes residuals smaller than real error")
#
# Third graph comparing H_0 and H_a
#
# using binomial distribution for 400, 100, 100, 100, 100
# x uses separate cases
# y uses the sum of the 100 groups
offset <- 0.5
p <- replicate(10000, { n <- rbinom(4, 100, offset*0.0125); m <- rbinom(1, 400, (1-offset)*0.0125);
x <- matrix( c(400 - m, 100 - n, m, n), ncol = 2);
y <- matrix( c(400 - m, 400 - sum(n), m, sum(n)), ncol = 2);
c(sum(n,m),fisher.test(x)$p.value,fisher.test(y)$p.value)} )
# calculate hypothesis test using only tables with sum of 5 for the 1st row
ps <- c(1:10000)/10000
m1 <- sapply(ps,FUN = function(x) mean(p[2,p[1,]==5] < x))
m2 <- sapply(ps,FUN = function(x) mean(p[3,p[1,]==5] < x))
offset <- 0.6
p <- replicate(10000, { n <- rbinom(4, 100, offset*0.0125); m <- rbinom(1, 400, (1-offset)*0.0125);
x <- matrix( c(400 - m, 100 - n, m, n), ncol = 2);
y <- matrix( c(400 - m, 400 - sum(n), m, sum(n)), ncol = 2);
c(sum(n,m),fisher.test(x)$p.value,fisher.test(y)$p.value)} )
# calculate hypothesis test using only tables with sum of 5 for the 1st row
ps <- c(1:10000)/10000
m1a <- sapply(ps,FUN = function(x) mean(p[2,p[1,]==5] < x))
m2a <- sapply(ps,FUN = function(x) mean(p[3,p[1,]==5] < x))
plot(ps,ps,type="l",
xlab = "p rejecting if H_0 true",
ylab = "p rejecting if H_a true",log="xy")
points(m1,m1a,col=4)
points(m2,m2a,col=2)
legend(0.01,0.001,c("400-400","400-100-100-100-100"),pch=c(1,1),col=c(2,4))
title("comparing H_0:p=0.5 \n with H_a:p=0.6")
यह शक्ति को क्यों प्रभावित करता है
मेरा मानना है कि समस्या की कुंजी उन परिणाम मूल्यों के अंतर में है जिन्हें "महत्वपूर्ण" चुना जाता है। स्थिति पांच उजागर व्यक्तियों को 400, 100, 100, 100 और 100 आकार के 5 समूहों से खींचा जा रहा है। विभिन्न चयन किए जा सकते हैं जिन्हें 'अति' माना जाता है। जब हम दूसरी रणनीति के लिए जाते हैं, तो जाहिर तौर पर शक्ति बढ़ती है (प्रभावी प्रकार I त्रुटि समान होती है)।
अगर हम पहली और दूसरी रणनीति के बीच के अंतर को रेखांकन के अनुसार समझेंगे। फिर मैं 5 अक्षों (400 100 100 100 और 100 के समूहों के लिए) के साथ एक समन्वय प्रणाली की कल्पना करता हूं, परिकल्पना मूल्यों और सतह के लिए एक बिंदु के साथ जो विचलन की दूरी को दर्शाती है जिसके आगे संभावना एक निश्चित स्तर से नीचे है। पहली रणनीति के साथ यह सतह एक सिलेंडर है, दूसरी रणनीति के साथ यह सतह एक गोला है। सही मानों के लिए वही सही है और त्रुटि के लिए इसके चारों ओर एक सतह। हम जो चाहते हैं वह ओवरलैप जितना संभव हो उतना छोटा है।
जब हम थोड़ी अलग समस्या (कम आयामीता के साथ) पर विचार करते हैं तो हम एक वास्तविक ग्राफिक बना सकते हैं।
कल्पना कीजिए कि हम एक बर्नौली प्रक्रिया का परीक्षण करना चाहते हैं एच0: पी = 0.51000 प्रयोग करके। फिर हम एक ही रणनीति को 1000 समूहों में विभाजित करके 500 के दो समूहों में विभाजित कर सकते हैं। यह कैसा दिखता है (X और Y दोनों समूहों में मायने रखता है)?
भूखंड दिखाता है कि 500 और 500 (1000 के एक समूह के बजाय) के समूह कैसे वितरित किए जाते हैं।
मानक परिकल्पना परीक्षण आकलन करेगा (95% अल्फा स्तर के लिए) कि क्या X और Y का योग 531 से बड़ा है या 469 से छोटा है।
लेकिन इसमें एक्स और वाई के असमान असमान वितरण शामिल हैं।
से वितरण की एक पारी की कल्पना करो एच0 सेवा एचए। तब किनारों के क्षेत्र इतने मायने नहीं रखते हैं, और अधिक गोलाकार सीमा अधिक समझ में आएगी।
यह तब भी सही नहीं है, जब हम समूहों के विभाजन को यादृच्छिक रूप से नहीं चुनते हैं और जब समूहों के लिए कोई अर्थ हो सकता है।