2011-09-21 13 views
8

मैंने देखा है कि SciPy में फिशर-सटीक परीक्षण एक नकारात्मक पी-मूल्य वापस भेजता है, तो पी-मूल्य extrememly छोटा है:फिशर-सटीक परीक्षण के साथ अत्यंत छोटे पी-मूल्यों के लिए SciPy नकारात्मक पी-मान क्यों लौटाता है?

>>> import scipy as sp 
>>> import scipy.stats 
>>> x = [[48,60],[3088,17134]] 
>>> sp.stats.fisher_exact(x) 
(4.4388601036269426, -1.5673906617053035e-11) 

आर में, एक ही 2x2 आकस्मिकता तालिका का उपयोग कर:

> a = matrix(c(48,60,3088,17134), nrow=2) 
> fisher.test(a) 
p-value = 6.409e-13 

मेरा प्रश्न है 1) SciPy नकारात्मक पी-वैल्यू क्यों देता है? 2) मैं सही पी-मूल्य उत्पन्न करने के लिए SciPy का उपयोग कैसे कर सकता हूं?

सहायता के लिए धन्यवाद।

उत्तर

10

फिशर का सटीक परीक्षण हाइपरजैमेट्रिक वितरण का उपयोग करता है।

आपके द्वारा उपयोग किए जाने वाले सिस्पी का संस्करण हाइपरजैमेट्रिक वितरण के कार्यान्वयन का उपयोग करता है जो बहुत सटीक नहीं है। यह एक known problem है और इसे scipy भंडार में तय किया गया है।

+1

स्पष्टीकरण और लिंक के लिए धन्यवाद। यह ठीक वही है जिसकी मुझे तलाश थी। – drbunsen