wrapper.EPI {ExtrPatt} | R Documentation |
Wrapper function
Description
Handles all steps for estimation of EPI from raw-data: 1) Preprocessing into Frechet-Margins 2) Estimation of TPDM 3) Calculation of Principal Components 4) Estimation of EPI
Usage
wrapper.EPI(
X,
Y = NULL,
q = 0.98,
anz_cores = 1,
clust = NULL,
m = 1:10,
thr_EPI = NULL
)
Arguments
X |
A t x n dimensional Data-matrix with t: Number of time steps and n: Number of grid points/stations |
Y |
Optional: Sames as X but for second variable: If Y!=NULL, cross-TPDM instead of TPDM and SVD instead of PCA is computed |
q |
Threshold for computation of TPDM. Only data above the 'q'-quantile will be used for estimation. Choose such that 0 < q < 1. |
anz_cores |
Number of cores for parallel computing (default: 5) |
clust |
Optional_ Uf clust = NULL, no declustering is performed. Else, declustering according to cluster-length 'clust' |
m |
Numeric vector: Containing the principal components/expansion coefficients (in case of Y!=NULL) from which the EPI shall be computed (default: modes = c(1:10), calculates the EPI on first ten principle Components) |
thr_EPI |
Only if Y!=NULL: Threshold for computation of TEPI. Expansion-coefficients that exceed the 'q'-quantile will be used for estimation. Choose such that 0 < q < 1. |
Value
In case of Y =NULL: A list containing:
basis: The Eigenvectors of TPDM
pc: The principal components of TPDM
extremal.basis: The Eigenvectors of TPDM but transformed in positive reals with trans
EPI: Extremal pattern index
In case of Y !=NULL: A list containing:
U, V: The left- and right singular Vectors of cross-TPDM
extr.U, extr.V: The left- and right singular vectors of cross-TPDM, but transformed in positive reals with trans
pcU, pcV: The left- and right expansion coefficients of cross-TPDM
EPI: Extremal pattern index
TEPI: Threshold-based extremal pattern index
References
Szemkus & Friederichs 2023
Examples
data <- precipGER
result <- wrapper.EPI(data$pr, m = 1:50)
rbPal <- colorRampPalette(c('blue', 'white','red'))
Col <- rbPal(10)[as.numeric(cut(result$basis[,2],breaks = 10))]
plot(data$lat, data$lon,col=Col)
plot(data$date, result$EPI, type='l')