การปรับกระบวนการปัวซองให้อยู่กับที่
ก่อนอื่นสิ่งสำคัญคือต้องตระหนักว่าข้อมูลอินพุตแบบใดที่ NHPoisson ต้องการ
สำคัญที่สุด 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
ตัวแปรที่มีดัชนีของช่วงเวลาของเหตุการณ์จำลองการยิง เราจะเห็นว่าเรามีเหตุการณ์ 60 * 24 = 1440 โดยประมาณโดยการตรวจสอบ `length (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
เหมาะกับรุ่นต่อไปนี้:
λ=exp(P⃗ T⋅β⃗ )
คือมันเหมาะกับการรวมกันเชิงเส้นของพารามิเตอร์ (เรียกว่าตัวแปร) เพื่อลอการิทึมของ\ λP⃗ λ
ตอนนี้เราเตรียมกระบวนการปัวซองที่ไม่หยุดนิ่ง
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
การยกกำลัง / logaritmization เสร็จภายใน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
ตัวอย่างยาวดังนั้นจึงเป็นไปได้ที่จะสร้างกราฟดิบที่เปรียบเทียบความเข้มที่ทำนายไว้กับความเข้มที่สังเกตได้