Fits the space-time Epidemic Type Aftershock Sequence ('ETAS') model to earthquake catalogs using a stochastic 'declustering' approach. The 'ETAS' model is a 'spatio-temporal' marked point process model and a special case of the 'Hawkes' process. The package is based on a Fortran program by 'Jiancang Zhuang' (available at < http://bemlar.ism.ac.jp/zhuang/software.html>), which is modified and translated into C++ and C such that it can be called from R. Parallel computing with 'OpenMP' is possible on supported platforms.

An earthquake catalog is a chronologically ordered list of time, coordinates of epicenter, magnitude and focal depth of all recorded earthquakes with magnitudes greater than or equal to a certain threshold that occurred inside or in the vicinity of a geographical region during a specified time period. Among different proposed models, the epidemic type aftershock sequence (ETAS) model is the most widely used statistical model to describe the underlying process that generates an earthquake catalogs.

The space-time version of the ETAS model is a spatio-temporal marked point process model. It is a semi-parametric model that describes the background and triggering seismic activities in a geographical region and can be used for earthquake declustering. However, estimation of the ETAS model parameters is computationally challenging. The 'ETAS' package fits the ETAS model to an earthquake catalog. The `etas`

function in the package is based on a C port of a Fortran program by Jiancang Zhuang, Yosihiko Ogata and their colleagues.

To install the package from CRAN, run the following in R:

`install.packages('ETAS')`

You can also install the current version of the package on GitHub by running:

`require(remotes)install_github('jalilian/ETAS')`

If remotes is not installed, you should first run:

`install.packages('remotes')`

Computations of the conditional intensity function, the log-likelihood function, declustering probabilities and the Davidon-Fletcher-Powell algorithm for optimization are all written in C code. As of version 0.3, a new C++ code is implemented using the Rcpp package which allows multi-thread parallel computing on multi-core processors with OpenMP and suported platforms. The argument `nthreads`

in `etas`

function determines the number of threads to be used in the parallel region of the code. If `nthreads = 1`

(the default), then a serial version of the C++ code carries out the computations. The `detectCores`

function in parallel package can be consulted to find out the overall number of available threads on a given machine:

`parallel::detectCores()`

Parallel computing (`nthreads > 1`

) reduces the computation time for large earthquake catalogs. However, resource usage and limitations should be considered when setting `nthreads`

.