Sabit bir Poisson sürecinin takılması
Her şeyden önce, NHPoisson'un ne tür girdi verilerinin ihtiyaç duyduğunu anlamak önemlidir.
En önemlisi, NHPoisson olay anlarının endekslerine ihtiyaç duymaktadır . Eğer zaman aralığını ve zaman aralığındaki olay sayısını kaydedersek, I'den daha sonra tek bir tarih sütununa çevirmeliyiz, muhtemelen tarihlerin kaydedildikleri aralığın üzerine "bulaşması" gerekir.
Basit olması için saniyeler içinde ölçülen zamanı kullandığımızı ve "ikinci" nin doğal birimi olduğunu varsayacağım .λ
Dakikada olayı olan basit, sabit bir Poisson işlemi için verileri simüle edelim :λ=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
Simülasyonu yapar. Simüle edilmiş olay ateşleme anları endekslerineaux$posNH
sahip bir değişken almak için kullanırız . `` Length (aux $ posNH) 'yi kontrol ederek kabaca 60 * 24 = 1440 olayın olduğunu görebiliriz.
λ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
Aslında yaptığımız şey , Poisson sürecini tanecikli binom olayları dizisiyle yaklaşık olarak tahmin etmemizdir, her olay, Poisson dağılımının yasadaki binom dağılımının bir limiti olarak görülebileceği mekanizmaya benzer şekilde tam olarak bir birim süreyi kapsar. nadir olayların .
Bir kez anladık, gerisi çok daha basit (en azından benim için).
λbeta
exp(coef(out)[1])
NHPoisson
λλ
Durağan olmayan bir Poisson sürecinin takılması
NHPoisson
aşağıdaki modele uyar:
λ=exp(P⃗ T⋅β⃗ )
P⃗ λ
Şimdi durağan olmayan Poisson sürecini hazırlayalım.
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)
Daha önce olduğu gibi, aux$posNH
bize olayların endekslerini veririz, ancak bu sefer olayların yoğunluğunun zamanla katlanarak azaldığını fark edeceğiz. Ve bu azalmanın oranı tahmin etmek istediğimiz bir parametredir.
out<-fitPP.fun(tind=TRUE,covariates=cbind(all.seconds),
posE=aux$posNH,
start=list(b0=0,b1=0),modSim=TRUE)
all.seconds
Unutmamak gerekir ki , bir değişken olarak koymalıyız , değil lambdas
. Üstelleştirme / logaritizasyon, tarafından dahili olarak yapılır fitPP.fun
. BTW, öngörülen değerlerin dışında, işlev varsayılan olarak iki grafik oluşturur.
Son parça model doğrulaması için swiss-knife fonksiyonudur globalval.fun
.
aux<-globalval.fun(obFPP=out,lint=2000,
covariates=cbind(all.seconds),typeI='Disjoint',
typeRes='Raw',typeResLV='Raw',resqqplot=FALSE)
Diğer şeylerin yanı sıra, işlev zamanı her lint
numune uzunluğunda aralıklara ayırır , bu nedenle tahmin edilen yoğunluğu gözlemlenen yoğunluk ile karşılaştıran ham grafikler oluşturmak mümkündür.