घटनाओं की कुल संख्या के लिए एक विश्वास अंतराल कैसे खोजें


9

मेरे पास डिटेक्टर है जो कुछ संभावना पी के साथ एक घटना का पता लगाएगा । यदि डिटेक्टर कहता है कि कोई घटना घटित हुई है, तो वह हमेशा ऐसा होता है, इसलिए गलत-सकारात्मक नहीं होते हैं। कुछ समय तक इसे चलाने के बाद, मुझे कश्मीर की घटनाओं का पता चला। मैं इस बात की गणना करना चाहूंगा कि 95% कहे जाने वाली घटनाओं की कुल संख्या क्या थी, पता लगाया गया या अन्यथा, कुछ आत्मविश्वास के साथ।

उदाहरण के लिए, मान लीजिए कि मुझे 13 घटनाओं का पता चला। मैं गणना करना चाहूंगा कि पी के आधार पर 95% आत्मविश्वास के साथ 13 और 19 घटनाओं के बीच थे ।

यहाँ मैंने जो अभी तक कोशिश की है:

यदि कुल n थे तो k घटनाओं का पता लगाने की संभावना है:

binomial(n, k) * p^k * (1 - p)^(n - k)

उस पर का योग n से कश्मीर अनंत के लिए है:

1/p

जिसका मतलब है, कि वहाँ n घटनाओं की संभावना कुल है:

f(n) = binomial(n, k) * p^(k + 1) * (1 - p)^(n - k)

इसलिए यदि मैं 95% सुनिश्चित होना चाहता हूं तो मुझे पहली आंशिक राशि मिलनी चाहिए f(k) + f(k+1) + f(k+2) ... + f(k+m)जो कम से कम 0.95 है और उत्तर है [k, k+m]। क्या यह सही तरीका है? उत्तर के लिए भी एक बंद सूत्र है?

जवाबों:


11

मैं नकारात्मक द्विपद वितरण का उपयोग करना चुनूंगा, जो इस संभावना को लौटाता है कि k_th सफलता से पहले X विफलताएं होंगी, जब एक सफलता की निरंतर संभावना p है।

एक उदाहरण का उपयोग करना

k=17 # number of successes
p=.6 # constant probability of success

असफलताओं के लिए माध्य और एसडी द्वारा दिया जाता है

mean.X <- k*(1-p)/p
sd.X <- sqrt(k*(1-p)/p^2) 

विफलताओं एक्स के वितरण, लगभग कि आकार होगा

plot(dnbinom(0:(mean.X + 3 * sd.X),k,p),type='l')

इसलिए, विफलताओं की संख्या लगभग (95% आत्मविश्वास के साथ) होगी

qnbinom(.025,k,p)
[1] 4

तथा

qnbinom(.975,k,p)
[1] 21

तो आप inerval होंगे [k + qnbinom (.025, k, p), k + qnbinom ((.975, k, p)]] (उदाहरण की संख्या [21,38] का उपयोग करके)।


5

मान लें कि आप n, p (n) के लिए वितरण चुनना चाहते हैं, तो आप Bayes कानून लागू कर सकते हैं।

तुम्हें पता है कि कश्मीर घटनाओं की संभावना दी गई है कि n वास्तव में हुई है एक द्विपद विकर्षण द्वारा नियंत्रित किया जाता है

p(k|n)=(nk)pk(1p)(nk)

वह चीज जिसे आप वास्तव में जानना चाहते हैं, वास्तव में होने वाली n घटनाओं की संभावना है, जिसे देखते हुए आपने k किया। बायस द्वारा

p(n|k)=p(k|n)p(n)p(k)

कुल संभाव्यता के प्रमेय को लागू करके, हम लिख सकते हैं:

p(n|k)=p(k|n)p(n)np(k|n)p(n)

तो आगे की जानकारी के बिना, के वितरण के बारे में आप वास्तव में आगे नहीं जा सकते।p(n)

हालाँकि, यदि आप लिए वितरण चुनना चाहते हैं, जिसके लिए से अधिक मूल्य , या पर्याप्त रूप से शून्य के करीब है, तो आप थोड़ा बेहतर कर सकते हैं। उदाहरण के लिए, मान लें कि का वितरण रेंज में समान है । ये मामला:p(n)np(n)=0n[0,nmax]

p(n)=1nmax

बायेसियन सूत्रीकरण सरल है:

p(n|k)=p(k|n)np(k|n)

समस्या के अंतिम भाग के रूप में, मैं सहमत हूं कि संचयी संभाव्यता वितरण समारोह उत्पन्न करने के लिए, और 0.95 की सीमा तक पहुंचने तक इटर्मेट, पर संचयी योग करने के लिए सबसे अच्छा तरीका है ।p(n|k)

यह देखते हुए कि यह प्रश्न एसओ से चला गया, अजगर में खिलौना नमूना कोड नीचे संलग्न है

import numpy.random

p = 0.8
nmax = 200

def factorial(n):
    if n == 0:
        return 1
    return reduce( lambda a,b : a*b, xrange(1,n+1), 1 )

def ncr(n,r):
    return factorial(n) / (factorial(r) * factorial(n-r))

def binomProbability(n, k, p):
    p1 = ncr(n,k)
    p2 = p**k
    p3 = (1-p)**(n-k)
    return p1*p2*p3

def posterior( n, k, p ):
    def p_k_given_n( n, k ):
        return binomProbability(n, k, p)
    def p_n( n ):
        return 1./nmax
    def p_k( k ):
        return sum( [ p_n(nd)*p_k_given_n(nd,k) for nd in range(k,nmax) ] )
    return (p_k_given_n(n,k) * p_n(n)) / p_k(k)


observed_k   = 80
p_n_given_k  = [ posterior( n, observed_k, p ) for n in range(0,nmax) ]
cp_n_given_k = numpy.cumsum(p_n_given_k)
for n in xrange(0,nmax):
    print n, p_n_given_k[n], cp_n_given_k[n]

3

आप मापें तो की घटनाओं और जानते हैं कि आपका पता लगाने दक्षता है आप स्वचालित रूप से "सही" गिनती करने के लिए अपने मापा परिणाम ऊपर सही कर सकते हैं ।kpktrue=k/p

आपका प्रश्न तो की सीमा को खोजने के बारे में है, जहां 95% अवलोकन गिर जाएंगे। इस अंतराल का अनुमान लगाने के लिए आप फेल्डमैन-कजिन्स विधि का उपयोग कर सकते हैं । यदि आपके पास ROOT तक पहुंच है तो आपके लिए यह गणना करने के लिए एक वर्ग है।ktrue

आप से फेल्डमैन-चचेरे भाई के साथ ऊपरी और निचले सीमा की गणना होगी uncorrected घटनाओं की संख्या और उसके बाद उन लोगों के साथ 100% तक पैमाने पर । इस तरह माप की वास्तविक संख्या आपकी अनिश्चितता को निर्धारित करती है, न कि कुछ मापी गई संख्या को, जो मापी नहीं गई थी।k1/p

{
gSystem->Load("libPhysics");

const double lvl = 0.95;
TFeldmanCousins f(lvl);

const double p = 0.95;
const double k = 13;
const double k_true = k/p;

const double k_bg = 0;

const double upper = f.CalculateUperLimit(k, k_bg) / p;
const double lower = f.GetLowerLimit() / p;

std::cout << "["
  lower <<"..."<<
  k_true <<"..."<<
  upper <<
  "]" << std::endl;
}

धन्यवाद, यह बहुत अच्छा लग रहा है। मुझे लगता है कि यह वह उत्तर है जिसकी मुझे तलाश थी।
स्टेटक

2

मुझे लगता है कि आपने विश्वास अंतराल के उद्देश्य को गलत समझा। विश्वास अंतराल आपको यह आकलन करने की अनुमति देता है कि पैरामीटर का सही मूल्य कहाँ स्थित है। तो, आपके मामले में, आप लिए एक आत्मविश्वास अंतराल का निर्माण कर सकते हैं । डेटा के लिए एक अंतराल का निर्माण करने का कोई मतलब नहीं है।p

कहा जाता है कि, एक बार जब आपके पास का एक अनुमान होता है, तो आप इस संभावना की गणना कर सकते हैं कि आप अलग-अलग वास्तविकताओं जैसे कि 14, 15 आदि को द्विपद पीडीएफ का उपयोग करके देखेंगे।p


वैसे मैं पहले से ही जानता हूं पी। मैं भी पता चला घटनाओं की राशि पता है: कश्मीर। तो कुल घटनाएँ कहीं न कहीं के / पी के आसपास होती हैं। मैं k / p के आसपास एक अंतराल का पता लगाना चाहता हूं, इसलिए मुझे 95% निश्चित रूप से कहा जा सकता है कि घटनाओं की कुल संख्या इसके अंदर है। क्या यह ज़्यादा सही लगता है?
स्टेटिक

मेरा मानना ​​है कि ओपी द्विपद नमूने में एन के लिए एक अंतराल की गणना करने की कोशिश कर रहा है, जहां पी को जाना जाता है। यह करने की कोशिश करने के लिए समझ में आता है।
Glen_b -Reinstate मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.