एक स्थिर Poisson प्रक्रिया फिटिंग
सबसे पहले यह महसूस करना महत्वपूर्ण है कि NHPoisson को किस तरह के इनपुट डेटा की जरूरत है।
सबसे महत्वपूर्ण, एनएचपोइसन को घटना के क्षणों के सूचकांक की एक सूची की आवश्यकता है । अगर हम समय अंतराल और घटनाओं की संख्या को समय अंतराल में रिकॉर्ड करते हैं, तो जितना संभव हो, हम इसे तारीखों के एकल कॉलम में अनुवाद कर सकते हैं, संभवतः वे जिस अंतराल पर रिकॉर्ड किए गए हैं, उन तारीखों को "स्मियर" करते हैं।
जिस सादगी के लिए मैं मानूंगा, कि हम सेकंड में मापे गए समय का उपयोग करते हैं, और यह कि "दूसरा" की प्राकृतिक इकाई है ।λ
आइए एक सरल, स्थिर पाइज़न प्रक्रिया के लिए डेटा का अनुकरण करें, जिसमें प्रति मिनट घटनाएँ हैं:λ = 1
lambda=1/60 #1 event per minute
time.span=60*60*24 #24 hours, with time granularity one second
aux<-simNHP.fun(rep(lambda,time.span))
simNHP.fun
अनुकरण करता है। हम पाने के लिए उपयोग करते हैं aux$posNH
, नकली घटना फायरिंग के क्षणों के सूचकांक के साथ एक चर । हम देख सकते हैं कि हमारे पास लगभग ६० * २४ = १४४० इवेंट हैं, aux लंबाई (aux $ posNH) की जाँच करके।
λfitPP.fun
out<-fitPP.fun(posE=aux$posNH,n=time.span,start=list(b0=0)) # b0=0 is our guess at initial value for optimization, which is internally made with `nlminb` function
λ > 0fitPP
तो हम वास्तव में क्या करते हैं कि हम विसंगतिपूर्ण घटनाओं के बारीक अनुक्रम के साथ पॉइसन प्रक्रिया का अनुमान लगाते हैं, प्रत्येक घटना तंत्र की समरूपता में समय की एक इकाई तक फैलती है, जिसमें पोइसन वितरण को कानून में द्विपद वितरण की सीमा के रूप में देखा जा सकता है। दुर्लभ घटनाओं की ।
एक बार जब हम इसे समझ लेते हैं, तो बाकी बहुत सरल होता है (कम से कम मेरे लिए)।
λbeta
exp(coef(out)[1])
NHPoisson
λλ
एक गैर-स्थिर पॉइसन प्रक्रिया का सामना करना
NHPoisson
निम्नलिखित मॉडल फिट बैठता है:
λ = एक्सप( पी⃗ टी⋅ बीटा⃗ )
पी⃗ λ
अब गैर-स्थिर पॉइज़न प्रक्रिया तैयार करते हैं।
time.span=60*60*24 #24 hours, with time granularity one second
all.seconds<-seq(1,time.span,length.out=time.span)
lambdas=0.05*exp(-0.0001*all.seconds) #we can't model a linear regression with NHPoisson. It must have the form with exp.
aux<-simNHP.fun(lambdas)
पहले की तरह, aux$posNH
हमें घटनाओं के संकेत देगा, लेकिन इस बार हम ध्यान देंगे, कि घटनाओं की तीव्रता समय के साथ तेजी से कम होती जाएगी। और इस घटने की दर एक पैरामीटर है जिसका हम अनुमान लगाना चाहते हैं।
out<-fitPP.fun(tind=TRUE,covariates=cbind(all.seconds),
posE=aux$posNH,
start=list(b0=0,b1=0),modSim=TRUE)
यह ध्यान रखना महत्वपूर्ण है, कि हमें all.seconds
एक कोवरिएट के रूप में रखना चाहिए , नहीं lambdas
। प्रतिपादक / लघुगणक आंतरिक रूप से किया जाता है fitPP.fun
। BTW, अनुमानित मूल्यों के अलावा, फ़ंक्शन डिफ़ॉल्ट रूप से दो ग्राफ़ बनाता है।
अंतिम टुकड़ा मॉडल सत्यापन के लिए एक स्विस-चाकू फ़ंक्शन है globalval.fun
।
aux<-globalval.fun(obFPP=out,lint=2000,
covariates=cbind(all.seconds),typeI='Disjoint',
typeRes='Raw',typeResLV='Raw',resqqplot=FALSE)
अन्य बातों के अलावा, फ़ंक्शन समय को अंतराल में विभाजित करता है, प्रत्येक lint
नमूने लंबे होते हैं, इसलिए क्रूड ग्राफ़ बनाने के लिए संभव है जो प्रेक्षित तीव्रता के साथ अनुमानित तीव्रता की तुलना करते हैं।