यदि आपके पास एक संचयी वितरण फ़ंक्शन , तो दिए गए सांख्यिकीय टी के लिए p -value की गणना करना केवल 1 - F ( T ) है । यह आर में सीधा है। यदि आपके पास दूसरी तरफ संभाव्यता घनत्व फ़ंक्शन है , तो F ( x ) = ∞ x - ∫ p ( t ) d tFpT1−F(T)F(x)=∫x−∞p(t)dt । आप इसे अभिन्न विश्लेषणात्मक या संख्यात्मक रूप से पा सकते हैं। आर में इस तरह दिखेगा:
dF <- function(x)dnorm(x)
pF <- function(q)integrate(dF,-Inf,q)$value
> pF(1)
[1] 0.8413448
> pnorm(1)
[1] 0.8413447
आप ट्यून कर सकते हैं integrate
बेहतर सटीकता के लिए । यह निश्चित रूप से विशिष्ट मामलों के लिए विफल हो सकता है, जब अभिन्न अच्छी तरह से व्यवहार नहीं करता है, लेकिन इसे अधिकांश घनत्व कार्यों के लिए काम करना चाहिए।
आप निश्चित रूप से मापदंडों को पास कर सकते हैं pF
, यदि आपके पास कई पैरामीटर मान हैं, तो dF
हर बार प्रयास करना और फिर से परिभाषित नहीं करना चाहते हैं ।
dF <- function(x,mean=0,sd=1)dnorm(x,mean=mean,sd=sd)
pF <- function(q,mean=0,sd=1)integrate(dF,-Inf,q,mean=mean,sd=sd)$value
> pF(1,1,1)
[1] 0.5
> pnorm(1,1,1)
[1] 0.5
निश्चित रूप से आप @suncoolsu द्वारा विस्तृत मोंटे-कार्लो विधियों का भी उपयोग कर सकते हैं, यह एकीकरण के लिए सिर्फ एक और संख्यात्मक विधि होगी।