Lắp một quy trình Poisson cố định
Trước hết, điều quan trọng là phải nhận ra, NHPoisson cần loại dữ liệu đầu vào nào.
Trước hết, NHPoisson cần một danh sách các chỉ số của các khoảnh khắc sự kiện. Nếu chúng ta ghi lại khoảng thời gian và số lượng sự kiện trong khoảng thời gian, hơn tôi, chúng ta phải dịch nó thành một cột ngày duy nhất, có thể "bôi nhọ" các ngày trong khoảng thời gian chúng được ghi lại.
Để đơn giản, tôi sẽ giả sử rằng chúng ta sử dụng thời gian được tính bằng giây và "giây" là đơn vị tự nhiên của .λ
Hãy mô phỏng dữ liệu cho một quy trình Poisson đơn giản, cố định, có sự kiện mỗi phút:λ = 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))
Việc simNHP.fun
làm cho các mô phỏng. Chúng tôi sử dụng để có được aux$posNH
, một biến với các chỉ số của khoảnh khắc bắn sự kiện mô phỏng. Chúng ta có thể thấy rằng chúng ta có khoảng 60 * 24 = 1440 sự kiện, bằng cách kiểm tra `length (aux $ posNH).
Bây giờ chúng ta hãy thiết kế ngược lại với :λ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
Bởi vì hàm chỉ lấy các chỉ số của sự kiện, nên nó cũng cần một thước đo xem có bao nhiêu chỉ số có thể có. Và đây là một phần rất khó hiểu , bởi vì trong quá trình Poisson thực sự, có thể có vô số các sự kiện có thể xảy ra (nếu chỉ ). Nhưng từ quan điểm của chúng ta cần phải chọn một số đơn vị thời gian đủ nhỏ. Chúng tôi chọn nó quá nhỏ để chúng tôi có thể giả sử tối đa một sự kiện trên mỗi đơn vị thời gian.λ > 0fitPP
Vì vậy, những gì chúng ta làm trong thực tế là chúng ta ước tính quá trình Poisson với chuỗi các sự kiện nhị thức chi tiết, mỗi sự kiện kéo dài chính xác một đơn vị thời gian, tương tự như cơ chế phân phối Poisson có thể được coi là một giới hạn của phân phối nhị thức trong luật của các sự kiện hiếm .
Một khi chúng ta hiểu nó, phần còn lại đơn giản hơn nhiều (ít nhất là đối với tôi).
Để có được xấp xỉ của chúng tôi, tôi cần lấy số mũ của tham số được trang bị , . Và đây là một thông tin quan trọng khác, còn thiếu trong hướng dẫn sử dụng : với chúng tôi phù hợp với logarit của , chứ không phải với chính .λbeta
exp(coef(out)[1])
NHPoisson
λλ
Lắp một quy trình Poisson không cố định
NHPoisson
phù hợp với mô hình sau:
λ = điểm kinh nghiệm( P⃗ T⋅ β⃗ )
tức là nó phù hợp với sự kết hợp tuyến tính của các tham số (được gọi là hiệp phương sai) với logarit của .P⃗ λ
Bây giờ chúng ta hãy chuẩn bị quá trình Poisson không cố định.
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)
Cũng như trước đây, aux$posNH
sẽ cho chúng ta các chỉ số của các sự kiện, nhưng lần này chúng ta sẽ nhận thấy rằng cường độ của các sự kiện giảm dần theo cấp số nhân theo thời gian. Và tỷ lệ giảm dần này là một tham số chúng tôi muốn ước tính.
out<-fitPP.fun(tind=TRUE,covariates=cbind(all.seconds),
posE=aux$posNH,
start=list(b0=0,b1=0),modSim=TRUE)
Điều quan trọng cần lưu ý là chúng ta cần đặt all.seconds
như một đồng biến, không phải lambdas
. Việc lũy thừa / logarit được thực hiện bởi nội bộ fitPP.fun
. BTW, ngoài các giá trị dự đoán, hàm tạo hai biểu đồ theo mặc định.
Phần cuối cùng là một hàm dao thụy sĩ để xác nhận mô hình , globalval.fun
.
aux<-globalval.fun(obFPP=out,lint=2000,
covariates=cbind(all.seconds),typeI='Disjoint',
typeRes='Raw',typeResLV='Raw',resqqplot=FALSE)
Trong số những thứ khác, hàm chia thời gian thành các khoảng, mỗi lint
mẫu dài, do đó có thể tạo ra các biểu đồ thô so sánh cường độ dự đoán với cường độ quan sát được.