if (FALSE) {
coord <- 10 * cbind(runif(50), runif(50))
di <- as.matrix(dist(coord))
dat <- rmev(
n = 1000,
d = 100,
param = 3,
sigma = exp(-di / 2),
model = 'xstud'
)
res <- extcoef(xdat = dat, coord = coord)
# Extremal Student extremal coefficient function
XT.extcoeffun <- function(h, nu, corrfun, ...) {
if (!is.function(corrfun)) {
stop('Invalid function \"corrfun\".')
}
h <- unique(as.vector(h))
rhoh <- sapply(h, corrfun, ...)
cbind(
h = h,
extcoef = 2 * pt(sqrt((nu + 1) * (1 - rhoh) / (1 + rhoh)), nu + 1)
)
}
#This time, only one graph with theoretical extremal coef
plot(res$dist, res$extcoef, ylim = c(1, 2), pch = 20)
abline(v = 2, col = 'gray')
extcoefxt <- XT.extcoeffun(
seq(0, 10, by = 0.1),
nu = 3,
corrfun = function(x) {
exp(-x / 2)
}
)
lines(
extcoefxt[, 'h'],
extcoefxt[, 'extcoef'],
type = 'l',
col = 'blue',
lwd = 2
)
# Brown--Resnick extremal coefficient function
BR.extcoeffun <- function(h, vario, ...) {
if (!is.function(vario)) {
stop('Invalid function \"vario\".')
}
h <- unique(as.vector(h))
gammah <- sapply(h, vario, ...)
cbind(h = h, extcoef = 2 * pnorm(sqrt(gammah / 4)))
}
extcoefbr <- BR.extcoeffun(
seq(0, 20, by = 0.25),
vario = function(x) {
2 * x^0.7
}
)
lines(
extcoefbr[, 'h'],
extcoefbr[, 'extcoef'],
type = 'l',
col = 'orange',
lwd = 2
)
coord <- 10 * cbind(runif(20), runif(20))
di <- as.matrix(dist(coord))
dat <- rmev(
n = 1000,
d = 20,
param = 3,
sigma = exp(-di / 2),
model = 'xstud'
)
res <- extcoef(
xdat = dat,
coord = coord,
estimator = "smith"
)
}
Run the code above in your browser using DataLab