Type: | Package |
Title: | Multivariate Renewal Hawkes Process |
Version: | 1.0 |
Date: | 2018-08-15 |
Author: | Tom Stindl and Feng Chen |
Maintainer: | Tom Stindl <t.stindl@unsw.edu.au> |
Description: | Simulate a (bivariate) multivariate renewal Hawkes (MRHawkes) self-exciting process, with given immigrant hazard rate functions and offspring density function. Calculate the likelihood of a MRHawkes process with given hazard rate functions and offspring density function for an (increasing) sequence of event times. Calculate the Rosenblatt residuals of the event times. Predict future event times based on observed event times up to a given time. For details see Stindl and Chen (2018) <doi:10.1016/j.csda.2018.01.021>. |
License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
Depends: | IHSEP, stats |
NeedsCompilation: | no |
Packaged: | 2018-08-20 01:02:54 UTC; tomstindl |
Repository: | CRAN |
Date/Publication: | 2018-08-20 11:20:02 UTC |
Multivariate Renewal Hawkes Process
Description
Simulate the (bivariate) multivariate renewal Hawkes (MRHawkes) process with a given distribution for the two waiting times between immigrants, given offspring density functions, and also the branching ratios. Calculation of the likelihood of a MRHawkes process model with a given sequence of (distinct) event times and labels up to a censoring time. Calculate the Rosenblatt residuals of fitting an MRHawkes process model to a sequence of event times and labels. Calculate the (filtering) distribution of the index of the most recent immigrant. Predict the time of the next event since the censoring time. Predict event times from the censoring time to a future time point.
Details
The DESCRIPTION file:
Package: | MRHawkes |
Type: | Package |
Title: | Multivariate Renewal Hawkes Process |
Version: | 1.0 |
Date: | 2018-08-15 |
Author: | Tom Stindl and Feng Chen |
Maintainer: | Tom Stindl <t.stindl@unsw.edu.au> |
Description: | Simulate a (bivariate) multivariate renewal Hawkes (MRHawkes) self-exciting process, with given immigrant hazard rate functions and offspring density function. Calculate the likelihood of a MRHawkes process with given hazard rate functions and offspring density function for an (increasing) sequence of event times. Calculate the Rosenblatt residuals of the event times. Predict future event times based on observed event times up to a given time. For details see Stindl and Chen (2018) <doi:10.1016/j.csda.2018.01.021>. |
License: | GPL (>=2) |
Depends: | IHSEP, stats |
NeedsCompilation: | no |
Packaged: | 2016-11-04 12:35:53 UTC; z3376311 |
Index of help topics:
MRHawkes Multivariate Renewal Hawkes Process TmllMRH Minus loglikelihood of an (bivariate) MRHawkes model with truncated most recent immigrant probabilities fivaqks Fiji and Vanuatu Earthquake Data mllMRH Minus loglikelihood of an (bivariate) MRHawkes model mllMRH1 Minus loglikelihood of an (bivariate) MRHawkes model with most recent immigrant probabilities mllMRH2 Minus loglikelihood of an (bivariate) MRHawkes model with Rosenblatt residuals predDen MRHawkes (bivariate) predictive density function simMRHawkes Simulate an (bivariate) renewal Hawkes (MRHawkes) process simNSMHP Simulate a (bivariate) non-stationary multivariate Hawkes process (NSMHP) simpred Simulate a fitted (bivariate) MRHawkes process model typeRes Minus loglikelihood of an (bivariate) MRHawkes model with Universal residuals
Author(s)
Tom Stindl <t.stindl@unsw.edu.au> Feng Chen <feng.chen@unsw.edu.au>
References
Chen, F. and Stindl, T. (2017). Direct Likelihood Evaluation for the Renewal Hawkes Process. Journal of Computational and Graphical Statistics.
Stindl, T. & Chen, F. (2018). Likelihood based inference for the multivariate renewal Hawkes process. Computational Statistics and Data Analysis.
Wheatley, S., Filimonov, V., and Sornette, D. (2016) The Hawkes process with renewal immigration & its estimation with an EM algorithm. Computational Statistics and Data Analysis. 94: 120-135.
Minus loglikelihood of an (bivariate) MRHawkes model with truncated most recent immigrant probabilities
Description
Calculates the minus loglikelihood of an (bivariate) MRHawkes model with
given immigration hazard functions \mu
, offspring density functions
h
and bracnhing ratios \eta
for event times and event types
data
on interval [0,cens]
with truncated most recent immigrant
probabilities looking back at only the previous B
event times.
Usage
TmllMRH(data, cens, par, B = 25,
h1.fn = function(x, p) 1 / p * exp( - x / p),
h2.fn = function(x, p) 1 / p * exp( - x / p),
mu1.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
mu2.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
H1.fn = function(x, p) pexp(x, rate = 1 / p),
H2.fn = function(x, p) pexp(x, rate = 1 / p),
Mu1.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
},
Mu2.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
})
Arguments
data |
A two column matrix. The first column contains the event times sorted in ascending order. The second column contains the corresponding event type with the label one or two. |
cens |
A scalar. The censoring time. |
par |
A numeric vector. Contains the ten parameters of the model, in order of
the immigration parameters |
B |
A scalar. The number of previous events that are considered to be possible last immigrant arrivals. |
h1.fn |
A (vectorized) function. The offspring density function for type one events. |
h2.fn |
A (vectorized) function. The offspring density function for type two events. |
mu1.fn |
A (vectorized) function. The immigration hazard function for events of type one. |
mu2.fn |
A (vectorized) function. The immigration hazard function for events of type two. |
H1.fn |
A (vectorized) function. Its value at |
H2.fn |
A (vectorized) function. Its value at |
Mu1.fn |
A (vectorized) function. Its value at |
Mu2.fn |
A (vectorized) function. Its value at |
Value
Value of the negative log-liklihood.
Author(s)
Tom Stindl <t.stindl@unsw.edu.au> Feng Chen <feng.chen@unsw.edu.au>
Examples
## Magnitude 5.5 or greater earthquakes over the 25 year period from
## 01/01/1991 to 31/12/2015.
data(fivaqks);
near.fiji <- grep("Fiji", fivaqks$place)
near.vanuatu <- grep("Vanuatu", fivaqks$place)
t.beg <- strptime("1991-01-01 00:00:00", "%Y-%m-%d %H:%M:%S", tz = "UTC")
t.end <- strptime("2015-12-31 23:59:59", "%Y-%m-%d %H:%M:%S", tz = "UTC")
t0 <- 0
t1 <- as.numeric(t.end - t.beg)
tms <- strptime(fivaqks$time, "%Y-%m-%dT%H:%M:%OSZ", tz = "UTC")
ts <- as.numeric(tms[-1] - t.beg)
ts <- c(as.numeric(tms[1] - t.beg)/24, ts)
ts.fi <- ts[near.fiji]; ts.fi <- ts.fi[ts.fi >= 0 & ts.fi <= t1]
ts.va <- ts[near.vanuatu]; ts.va <- ts.va[ts.va >=0 & ts.va <= t1]
ts.c <- c(ts.fi, ts.va)
z.c <- c(rep(1, times = length(ts.fi)), rep(2, times = length(ts.va)))
o <- order(ts.c)
data <- cbind(ts.c[o], z.c[o])
## calculate the minus loglikelihood of an (bivariate) MRHawkes with some
## parameters the default hazard functions and density functions are Weibull
## and exponential respectivley
TmllMRH(data, cens = t1, par = c(0.488, 20.10, 0.347, 9.53, 461, 720,
0.472, 0.293, 0.399, -0.0774), B = 200)
## calculate the MLE for the parameter assuming known parametric forms
## of the immigrant hazard function and offspring density functions.
system.time(est <- optim(c(0.488, 20.10, 0.347, 9.53, 461, 720,
0.472, 0.293, 0.399, -0.0774),
TmllMRH, data = data, cens = t1, B = 200,
control = list(maxit = 5000, trace = TRUE),
hessian = TRUE)
)
## point estimate by MLE
est$par
## standard error estimates:
diag(solve(est$hessian))^0.5
Fiji and Vanuatu Earthquake Data
Description
Times and magnitudes (Richter scale) of earthquakes in the regions of Fiji and Vanuatu, for the period 1990-2015.
Usage
data(fivaqks)
Format
A data set containing 22 variables for earthquakes around Fiji and Vanuatu from 1991 to 2015.
- time
Time of quake
- latitude
Latitude of the quake
- longitude
Longitude of the quake
- mag
Magnitude of the quake
Source
United States Geological Survey (USGS)
Examples
data(fivaqks)
Minus loglikelihood of an (bivariate) MRHawkes model
Description
Calculates the minus loglikelihood of an (bivariate) MRHawkes model with
given immigration hazard functions \mu
, offspring density functions
h
and bracnhing ratios \eta
for the event times and types
data
on the interval [0,cens]
.
Usage
mllMRH(data, cens, par,
h1.fn = function(x, p) 1 / p * exp( - x / p),
h2.fn = function(x, p) 1 / p * exp( - x / p),
mu1.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
mu2.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
H1.fn = function(x, p) pexp(x, rate = 1 / p),
H2.fn = function(x, p) pexp(x, rate = 1 / p),
Mu1.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
},
Mu2.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
})
Arguments
data |
A two column matrix. The first column contains the event times sorted in ascending order. The second column contains the corresponding event type with the label one or two. |
cens |
A scalar. The censoring time. |
par |
A numeric vector. Contains the ten parameters of the model, in order of
the immigration parameters |
h1.fn |
A (vectorized) function. The offspring density function for type one events. |
h2.fn |
A (vectorized) function. The offspring density function for type two events. |
mu1.fn |
A (vectorized) function. The immigration hazard function for events of type one. |
mu2.fn |
A (vectorized) function. The immigration hazard function for events of type two. |
H1.fn |
A (vectorized) function. Its value at |
H2.fn |
A (vectorized) function. Its value at |
Mu1.fn |
A (vectorized) function. Its value at |
Mu2.fn |
A (vectorized) function. Its value at |
Value
Value of the negative log-liklihood.
Author(s)
Tom Stindl <t.stindl@unsw.edu.au> Feng Chen <feng.chen@unsw.edu.au>
Examples
## Magnitude 5.5 or greater earthquakes over the 25 year period from
## 01/01/1991 to 31/12/2015.
data(fivaqks);
near.fiji <- grep("Fiji", fivaqks$place)
near.vanuatu <- grep("Vanuatu", fivaqks$place)
t.beg <- strptime("1991-01-01 00:00:00", "%Y-%m-%d %H:%M:%S", tz = "UTC")
t.end <- strptime("2015-12-31 23:59:59", "%Y-%m-%d %H:%M:%S", tz = "UTC")
t0 <- 0
t1 <- as.numeric(t.end - t.beg)
tms <- strptime(fivaqks$time, "%Y-%m-%dT%H:%M:%OSZ", tz = "UTC")
ts <- as.numeric(tms[-1] - t.beg)
ts <- c(as.numeric(tms[1] - t.beg)/24, ts)
ts.fi <- ts[near.fiji]; ts.fi <- ts.fi[ts.fi >= 0 & ts.fi <= t1]
ts.va <- ts[near.vanuatu]; ts.va <- ts.va[ts.va >=0 & ts.va <= t1]
ts.c <- c(ts.fi, ts.va)
z.c <- c(rep(1, times = length(ts.fi)), rep(2, times = length(ts.va)))
o <- order(ts.c)
data <- cbind(ts.c[o], z.c[o])
## calculate the minus loglikelihood of an (bivariate) MRHawkes with some
## parameters the default hazard functions and density functions are Weibull
## and exponential respectivley
mllMRH(data, cens = t1, par = c(0.488, 20.10, 0.347, 9.53, 461, 720,
0.472, 0.293, 0.399, -0.0774))
## calculate the MLE for the parameter assuming known parametric forms
## of the immigrant hazard function and offspring density functions.
system.time(est <- optim(c(0.488, 20.10, 0.347, 9.53, 461, 720,
0.472, 0.293, 0.399, -0.0774),
mllMRH, data = data, cens = t1,
control = list(maxit = 5000, trace = TRUE),
hessian = TRUE)
)
## point estimate by MLE
est$par
## standard error estimates:
diag(solve(est$hessian))^0.5
Minus loglikelihood of an (bivariate) MRHawkes model with most recent immigrant probabilities
Description
Calculates the minus loglikelihood of an (bivariate) RHawkes model
with given immigration hazard functions \mu
, common offspring
density functions h
and bracnhing ratios \eta
for event times
and event types data
on interval [0,cens]
. The same as
mllMRH
although this version also returns the most recent
immigrant probabilities at the censoring.
Usage
mllMRH1(data, cens, par,
h1.fn = function(x, p) 1 / p * exp( - x / p),
h2.fn = function(x, p) 1 / p * exp( - x / p),
mu1.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
mu2.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
H1.fn = function(x, p) pexp(x, rate = 1 / p),
H2.fn = function(x, p) pexp(x, rate = 1 / p),
Mu1.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
},
Mu2.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
})
Arguments
data |
A two column matrix. The first column contains the event times sorted in ascending order. The second column contains the corresponding event type with the label one or two. |
cens |
A scalar. The censoring time. |
par |
A numeric vector. Contains the ten parameters of the model, in order of
the immigration parameters |
h1.fn |
A (vectorized) function. The offspring density function for type one events. |
h2.fn |
A (vectorized) function. The offspring density function for type two events. |
mu1.fn |
A (vectorized) function. The immigration hazard function for events of type one. |
mu2.fn |
A (vectorized) function. The immigration hazard function for events of type two. |
H1.fn |
A (vectorized) function. Its value at |
H2.fn |
A (vectorized) function. Its value at |
Mu1.fn |
A (vectorized) function. Its value at |
Mu2.fn |
A (vectorized) function. Its value at |
Value
mll |
minus log-likelihood |
p |
most recent immigrant probabilities at the censoring time |
n |
number of events |
Author(s)
Tom Stindl <t.stindl@unsw.edu.au> Feng Chen <feng.chen@unsw.edu.au>
See Also
mllMRH
Examples
data <- cbind(sort(runif(1000,0,1000)),
sample(1:2, size = 1000, replace = TRUE))
tmp <- mllMRH1(data = data, cens = 1001,
par = c(3,1.2,1/3,0.2,1,1,0.5,0.2,0.2,0.3))
## last immigrant probabilities
lip <- tmp$p
## sample last immigrant at censoring time for component one and
## component two respectively
c(sample(0:1000, 1, replace = TRUE, prob = rowSums(lip)),
sample(0:1000, 1, replace = TRUE, prob = colSums(lip)))
Minus loglikelihood of an (bivariate) MRHawkes model with Rosenblatt residuals
Description
Calculates the minus loglikelihood of an (bivariate) RHawkes model with
given immigration hazard functions \mu
, common offspring density
functions h
and bracnhing ratios \eta
for event times and
event types data
on interval [0,cens]
. The same as
mllMRH
although this version also returns the Rosenblatt residuals
for goodness-of-fit assessment of the event times.
Usage
mllMRH2(data, cens, par,
h1.fn = function(x, p) 1 / p * exp( - x / p),
h2.fn = function(x, p) 1 / p * exp( - x / p),
mu1.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
mu2.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
H1.fn = function(x, p) pexp(x, rate = 1 / p),
H2.fn = function(x, p) pexp(x, rate = 1 / p),
Mu1.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
},
Mu2.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
})
Arguments
data |
A two column matrix. The first column contains the event times sorted in ascending order. The second column contains the corresponding event type with the label one or two. |
cens |
A scalar. The censoring time. |
par |
A numeric vector. Contains the ten parameters of the model, in order of
the immigration parameters |
h1.fn |
A (vectorized) function. The offspring density function for type one events. |
h2.fn |
A (vectorized) function. The offspring density function for type two events. |
mu1.fn |
A (vectorized) function. The immigration hazard function for events of type one. |
mu2.fn |
A (vectorized) function. The immigration hazard function for events of type two. |
H1.fn |
A (vectorized) function. Its value at |
H2.fn |
A (vectorized) function. Its value at |
Mu1.fn |
A (vectorized) function. Its value at |
Mu2.fn |
A (vectorized) function. Its value at |
Details
Calculate the MRHawkes point process Rosenblatt residuals
Value
mll |
minus log-likelihood |
W |
Rosenblatt residuals of observed event times |
Author(s)
Tom Stindl <t.stindl@unsw.edu.au> Feng Chen <feng.chen@unsw.edu.au>
See Also
mllMRH
Examples
n <- 1000
data <- cbind(sort(runif(n,0,1000)),
sample(1:2, size = n, replace = TRUE))
tmp <- mllMRH2(data = data, cens = 1001,
par = c(1,1,1,1,1,1,0.5,0.2,0.2,0.3))
pp <- ppoints(n)
par(mfrow=c(1,2))
plot(quantile(tmp$W,prob=pp),pp,type="l",
main="Uniform QQ plot",
xlab="Sample quantiles",ylab="Theoretical quantiles")
abline(a = 0, b = 1, col = 2)
a <- acf(tmp$W, main = "ACF Plot")
ks.test(tmp$W,"punif")
Box.test(tmp$W,lag=tail(a$lag,1))
MRHawkes (bivariate) predictive density function
Description
Calculates the predictive density of the next event time after the
censoring time cens
based on the observations over the interval
[0,cens]
.
Usage
predDen(x, data, cens, par,
h1.fn = function(x, p) 1 / p * exp( - x / p),
h2.fn = function(x, p) 1 / p * exp( - x / p),
mu1.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
mu2.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
H1.fn = function(x, p) pexp(x, rate = 1 / p),
H2.fn = function(x, p) pexp(x, rate = 1 / p),
Mu1.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
},
Mu2.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
})
Arguments
x |
A scalar. The amount of time after the censoring tine |
data |
A two column matrix. The first column contains the event times sorted in ascending order. The second column contains the corresponding event type with the label one or two. |
cens |
A scalar. The censoring time. |
par |
A numeric vector containing the twelve parameters of the model, in order of
the immigration parameters |
h1.fn |
A (vectorized) function. The offspring density function for type one events. |
h2.fn |
A (vectorized) function. The offspring density function for type two events. |
mu1.fn |
A (vectorized) function. The immigration hazard function for events of type one. |
mu2.fn |
A (vectorized) function. The immigration hazard function for events of type two. |
H1.fn |
A (vectorized) function. Its value at |
H2.fn |
A (vectorized) function. Its value at |
Mu1.fn |
A (vectorized) function. Its value at |
Mu2.fn |
A (vectorized) function. Its value at |
Value
The predictive density of the next event time evaluated at x.
Author(s)
Tom Stindl <t.stindl@unsw.edu.au> Feng Chen <feng.chen@unsw.edu.au>
Examples
## Magnitude 5.5 or greater earthquakes over the 25 year period from
## 01/01/1991 to 31/12/2015.
data(fivaqks);
near.fiji <- grep("Fiji", fivaqks$place)
near.vanuatu <- grep("Vanuatu", fivaqks$place)
t.beg <- strptime("1991-01-01 00:00:00", "%Y-%m-%d %H:%M:%S", tz = "UTC")
t.end <- strptime("2015-12-31 23:59:59", "%Y-%m-%d %H:%M:%S", tz = "UTC")
t0 <- 0
t1 <- as.numeric(t.end - t.beg)
tms <- strptime(fivaqks$time, "%Y-%m-%dT%H:%M:%OSZ", tz = "UTC")
ts <- as.numeric(tms[-1] - t.beg)
ts <- c(as.numeric(tms[1] - t.beg)/24, ts)
ts.fi <- ts[near.fiji]; ts.fi <- ts.fi[ts.fi >= 0 & ts.fi <= t1]
ts.va <- ts[near.vanuatu]; ts.va <- ts.va[ts.va >=0 & ts.va <= t1]
ts.c <- c(ts.fi, ts.va)
z.c <- c(rep(1, times = length(ts.fi)), rep(2, times = length(ts.va)))
o <- order(ts.c)
data <- cbind(ts.c[o], z.c[o])
curve(predDen(x, data = data, cens = t1,
par = c(0.488, 20.10, 0.347, 9.53, 461, 720,
0.472, 0.293, 0.399, -0.0774))
,0 ,200, col = "red", lwd = 2, ylab = "Density")
Simulate an (bivariate) renewal Hawkes (MRHawkes) process
Description
Simulate an (bivairate) renewal Hawkes (MRHawkes) process with given renewal
immigration distribution functions \mu
, offspring density functions
h
and branching ratios \eta
using the cascading structure of the
process.
Usage
simMRHawkes(re.dist1 = rweibull, par.redist1 = list(shape = 3, scale = 1.2),
re.dist2 = rweibull, par.redist2 = list(shape = 1/3, scale = 0.2),
h1.fn = function(x, p.h1) 1/p.h1 * exp(-x/p.h1),
h2.fn = function(x, p.h2) 1/p.h2 * exp(-x/p.h2),
p.h1 = 1, p.h2 = 1,
eta11 = 0.3, eta12 = 0.1, eta21 = 0.1, eta22 = 0.3, cens = 100,
B = 10, B0 = 50,
max.h1 = max(optimize(h1.fn, c(0, cens), maximum = TRUE, p = p.h1)$obj,
h1.fn(0, p.h1), h1.fn(cens, p.h1)) * 1.1,
max.h2 = max(optimize(h2.fn, c(0, cens), maximum = TRUE, p = p.h2)$obj,
h2.fn(0, p.h2), h2.fn(cens, p.h2)) * 1.1)
Arguments
re.dist1 |
The renewal distribution for type one events. |
re.dist2 |
The renewal distribution for type two events. |
par.redist1 |
A numeric list. The parameters of the renewal distribution for type one events. |
par.redist2 |
A numeric list. The parameters of the renewal distribution for type two events. |
h1.fn |
A (vectorized) function. The offspring density function for type one events. |
h2.fn |
A (vectorized) function. The offspring density function for type two events. |
p.h1 |
A numeric vector. The paramters of the offspring density for type one events. |
p.h2 |
A numeric vector. The paramters of the offspring density for type two events. |
eta11 |
A numeric scalar. The self-exciting branching ratio for type one events. |
eta12 |
A numeric scalar. The cross-exciting branching ratio for type one events due to the effects of a type two event. |
eta21 |
A numeric scalar. The cross-exciting branching ratio for type two events due to the effects of a type one event. |
eta22 |
A numeric scalar. The self-exciting branching ratio for type two events. |
cens |
A scalar. The censoring time. |
B |
A numeric scalar. Tuning parameter |
B0 |
A numeric scalar. Tuning parameter |
max.h1 |
A numeric scalar. The maximum value of the offspring density for type one events. |
max.h2 |
A numeric scalar. The maximum value of the offspring density for type two events. |
Details
The function works by simulating the arrival times of immigrants accoridng to the respective renewal immigration distribution for each event type. The birth times ofoffspring from each immigrant are then simulated according to an non-stationary multivariate Hawkes Process (NSMHP) with appropriate baseline and excitation functions.
Value
A numeric matrix. The row coloumn contains the event times in ascending order while the second coloumn contains the corresponding event type.
Author(s)
Tom Stindl <t.stindl@unsw.edu.au> Feng Chen <feng.chen@unsw.edu.au>
Examples
B <- 10; i <- 0;
data <- replicate(B,
{cat(i<<-i+1,'\n');
simMRHawkes(re.dist1 = rweibull,
par.redist1 = list(shape = 3, scale = 1.2),
re.dist2 = rweibull,
par.redist2 = list(shape = 1 / 3, scale = 0.2),
p.h1 = 1, p.h2 = 1,
eta11 = 0.3, eta12 = 0.1,
eta21 = 0.1, eta22 = 0.3,
cens = 100)
})
Simulate a (bivariate) non-stationary multivariate Hawkes process (NSMHP)
Description
Simulate a bivariate non-stationary multivariate Hawkes process (NSMHP) with given given baseline intensity functions and self-excitation functions using the cascading structure of the process.
Usage
simNSMHP(TT = 100,
nu1 = function(t) 0.6*exp(-t),
nu2 = function(t) 0.2*exp(-t),
g11 = function(t) 0.6*exp(-t),
g12 = function(t) 0.2*exp(-t),
g21 = function(t) 0.1*exp(-t),
g22 = function(t) 0.5*exp(-t))
Arguments
TT |
A scalar. The censoring time. |
nu1 |
Basline intensity function for type one events. |
nu2 |
Basline intensity function for type two events. |
g11 |
Self-exciting function for type one events given the parent is a type two event. |
g12 |
Cross-exciting function for type one events given the parent is a type two event. |
g21 |
Cross-exciting function for type two events given the parent is a type one event. |
g22 |
Self-exciting function for type two events given the parent is a type two event. |
Details
The function works by simulating generation 0 events according to independent Poisson processes with the baseline intensity functions; then keep simulating future generation events as long as the number of the previous generation events of any type is non-zero. For each event type, we simulate these events according to M independent Poisson processes with the appropriate excitation intensity. When this recursive process stops, return events of all generations with their respective type labels as the events of the NSMHP on the interval (0,T].
Value
offspr1 |
All offspring events of type one |
offspr2 |
All offspring events of type two |
Author(s)
Tom Stindl <t.stindl@unsw.edu.au> Feng Chen <feng.chen@unsw.edu.au>
Examples
B <- 10; i <- 0;
data <- replicate(B,
{cat(i<<-i+1,'\n');
simNSMHP(TT = 100)
})
Simulate a fitted (bivariate) MRHawkes process model
Description
Simulate a fitted bivariate MRHawkes process model after the censoring time
cens
to a future time point cens.tilde
using the cascading
structure of the process.
Usage
simpred(data, par, cens, cens.tilde,
re.dist1 = rweibull,
par.redist1 = list(shape = par[1], scale = par[2]),
re.dist2 = rweibull,
par.redist2 = list(shape = par[3], scale = par[4]),
h1.fn = function(x, p.h1) 1 / p.h1 * exp( - x / p.h1),
h2.fn = function(x, p.h2) 1 / p.h2 * exp( - x / p.h2),
p.h1 = par[5], p.h2 = par[6],
eta11 = par[7], eta12 = par[8], eta21 = par[9], eta22 = par[10],
B = 10, B0 = 50, pnp1 = NULL,
max.h1 = max(optimize(h1.fn, c(0, cens.tilde - cens), maximum = TRUE,
p = p.h1)$obj, h1.fn(0, p.h1),
h1.fn(cens.tilde - cens, p.h1)) * 1.1,
max.h2 = max(optimize(h2.fn, c(0, cens.tilde - cens), maximum = TRUE,
p = p.h2)$obj, h2.fn(0, p.h2),
h2.fn(cens.tilde - cens, p.h2)) * 1.1)
Arguments
data |
A two column matrix. The first column contains the event times sorted in ascending order. The second column contains the corresponding event type with the label one or two. |
par |
A numeric vector. Contains the ten parameters of the model, in order of
the immigration parameters |
cens |
A scalar. The censoring time. |
cens.tilde |
A scalar. The time that the simulation run uptil. |
re.dist1 |
The renewal distribution for type one events. |
re.dist2 |
The renewal distribution for type two events. |
par.redist1 |
A numeric list. The parameters of the renewal distribution for type one events. |
par.redist2 |
A numeric list. The parameters of the renewal distribution for type two events. |
h1.fn |
A (vectorized) function. The offspring density function for type one events. |
h2.fn |
A (vectorized) function. The offspring density function for type two events. |
p.h1 |
A numeric vector. The paramters of the offspring density for type one events. |
p.h2 |
A numeric vector. The paramters of the offspring density for type two events. |
eta11 |
A numeric scalar. The self-exciting branching ratio for type one events. |
eta12 |
A numeric scalar. The cross-exciting branching ratio for type one events due to the effects of a type two event. |
eta21 |
A numeric scalar. The cross-exciting branching ratio for type two events due to the effects of a type one event. |
eta22 |
A numeric scalar. The self-exciting branching ratio for type two events. |
B |
A numeric scalar. Tuning parameter |
B0 |
A numeric scalar. Tuning parameter |
pnp1 |
A numeric square matrix. The joint last immigrant probabilities. |
max.h1 |
A numeric scalar. The maximum value of the offspring density for type one events. |
max.h2 |
A numeric scalar. The maximum value of the offspring density for for type two events. |
Value
A numeric matrix that contains the simulated event times from censoring time
cens
up until cens.tilde
and the corresponding event types.
Author(s)
Tom Stindl <t.stindl@unsw.edu.au> Feng Chen <feng.chen@unsw.edu.au>
Examples
## Magnitude 5.5 or greater earthquakes over the 25 year period from
## 01/01/1991 to 31/12/2015.
data(fivaqks);
near.fiji <- grep("Fiji", fivaqks$place)
near.vanuatu <- grep("Vanuatu", fivaqks$place)
t.beg <- strptime("1991-01-01 00:00:00", "%Y-%m-%d %H:%M:%S", tz = "UTC")
t.end <- strptime("2015-12-31 23:59:59", "%Y-%m-%d %H:%M:%S", tz = "UTC")
t0 <- 0
t1 <- as.numeric(t.end - t.beg)
tms <- strptime(fivaqks$time, "%Y-%m-%dT%H:%M:%OSZ", tz = "UTC")
ts <- as.numeric(tms[-1] - t.beg)
ts <- c(as.numeric(tms[1] - t.beg)/24, ts)
ts.fi <- ts[near.fiji]; ts.fi <- ts.fi[ts.fi >= 0 & ts.fi <= t1]
ts.va <- ts[near.vanuatu]; ts.va <- ts.va[ts.va >=0 & ts.va <= t1]
ts.c <- c(ts.fi, ts.va)
z.c <- c(rep(1, times = length(ts.fi)), rep(2, times = length(ts.va)))
o <- order(ts.c)
data <- cbind(ts.c[o], z.c[o])
# simulate future event time based on MLE fitted Rhawkes model
N <- 100; i <- 0;
data.pred <- replicate(N,
{cat(i<<-i+1,'\n');
simpred(data = data,
par = c(0.488, 20.10, 0.347, 9.53,
461, 720,
0.472, 0.293, 0.399, -0.0774),
cens = t1, cens.tilde = t1 + 1000)
})
Minus loglikelihood of an (bivariate) MRHawkes model with Universal residuals
Description
Calculates the minus loglikelihood of an (bivariate) RHawkes model with
given immigration hazard functions \mu
, common offspring density
functions h
and bracnhing ratios \eta
for event times and
event types data
on interval [0,cens]
. The same as
mllMRH
although this version also returns the Universal residuals
for goodness-of-fit assessment of the event types.
Usage
typeRes(data, cens, par, U = runif(length(data[,1])),
h1.fn = function(x, p) 1 / p * exp( - x / p),
h2.fn = function(x, p) 1 / p * exp( - x / p),
mu1.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
mu2.fn = function(x, p){
exp(dweibull(x, shape = p[1], scale = p[2], log = TRUE) -
pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE))
},
H1.fn = function(x, p) pexp(x, rate = 1 / p),
H2.fn = function(x, p) pexp(x, rate = 1 / p),
Mu1.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
},
Mu2.fn = function(x, p){
- pweibull(x, shape = p[1], scale = p[2], lower.tail = FALSE,
log.p = TRUE)
})
Arguments
data |
A two column matrix. The first column contains the event times sorted in ascending order. The second column contains the corresponding event type with the label one or two. |
cens |
A scalar. The censoring time. |
par |
A numeric vector. Contains the ten parameters of the model, in order of
the immigration parameters |
U |
A numeric vector. Contains auxillary uniform random varables on the unit interval. |
h1.fn |
A (vectorized) function. The offspring density function for type one events. |
h2.fn |
A (vectorized) function. The offspring density function for type two events. |
mu1.fn |
A (vectorized) function. The immigration hazard function for events of type one. |
mu2.fn |
A (vectorized) function. The immigration hazard function for events of type two. |
H1.fn |
A (vectorized) function. Its value at |
H2.fn |
A (vectorized) function. Its value at |
Mu1.fn |
A (vectorized) function. Its value at |
Mu2.fn |
A (vectorized) function. Its value at |
Details
Calculate the MRHawkes point process Universal residuals
Value
mll |
minus log-likelihood |
V |
Universal residuals of observed event types |
Author(s)
Tom Stindl <t.stindl@unsw.edu.au> Feng Chen <feng.chen@unsw.edu.au>
See Also
mllMRH
Examples
n <- 1000
data <- cbind(sort(runif(n,0,1000)),
sample(1:2, size = n, replace = TRUE))
tmp <- typeRes(data = data, cens = 1001,
par = c(1,1,1,1,1,1,0.5,0.2,0.2,0.3))
pp <- ppoints(n)
par(mfrow=c(1,2))
plot(quantile(tmp$V,prob=pp),pp,type="l",
main="Uniform QQ plot",
xlab="Sample quantiles",ylab="Theoretical quantiles")
abline(a = 0, b = 1, col = 2)
a <- acf(tmp$V, main = "ACF Plot")
ks.test(tmp$V,"punif")
Box.test(tmp$V,lag=tail(a$lag,1))