The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Spline ML example

library(circularEV)
require(plotly)

Reading Data

data(HsSP)
data(drc)
timeRange <- 54.5

idx <- order(drc)
drc <- drc[idx]
Data <- HsSP[idx]
set.seed(1234)
Data <- Data + runif(length(Data), -0.0001, 0.0001)
PlotData(Data = Data, drc = drc, thr = NULL, pointSize = 1, cex.axis = 15, cex.lab = 2, 
    thrWidth = 2)

PolarPlotData(Data = Data, drc = drc, thr = NULL, pointSize = 4, fontSize = 14, 
    thrWidth = 4, ylim = c(0, max(Data)))

Threshold selection

Grid values at which the estimation is performed:

thetaVec <- 1:360
thrResultML <- ThrSelection(Data = Data, drc = drc, h = 60, b = 0.35, thetaGrid = thetaVec, 
    EVIestimator = "ML", useKernel = T, concent = 10, bw = 30, numCores = 2)$thr
PlotData(Data = Data, drc = drc, thr = thrResultML, pointSize = 1, cex.axis = 15, 
    cex.lab = 2, thrWidth = 2)


PolarPlotData(Data = Data, drc = drc, thr = thrResultML, pointSize = 4, fontSize = 12, 
    thrWidth = 4, ylim = c(0, max(Data)))

Estimation of spline ML model

The code below performs optimisation for a unique pair of lambda and kappa.

lambda <- 100
kappa <- 40

thrPerObs <- thrResultML[drc]
excess <- Data - thrPerObs
drcExcess <- drc[excess > 0]
excess <- excess[excess > 0]

splineFit <- SplineML(excesses = excess, drc = drcExcess, nBoot = 30, numIntKnots = 16, 
    lambda = lambda, kappa = kappa, numCores = 2)
xiBoot <- splineFit$xi
sigBoot <- splineFit$sig

PlotParamEstim(bootEstimates = xiBoot, thetaGrid = 0:360, ylab = bquote(hat(xi)), 
    alpha = 0.05, ylim = NULL, cex.axis = 15, cex.lab = 2, thrWidth = 2)


PlotParamEstim(bootEstimates = sigBoot, thetaGrid = 0:360, ylab = bquote(hat(sigma)), 
    alpha = 0.05, ylim = NULL, cex.axis = 15, cex.lab = 2, thrWidth = 2)

High Quantiles

h <- 60  # needed for calculating local probability of exceedances
RLBoot <- CalcRLsplineML(Data = Data, drc = drc, xiBoot = xiBoot, sigBoot = sigBoot, 
    h = h, TTs = c(100, 10000), thetaGrid = thetaVec, timeRange = timeRange, 
    thr = thrResultML)
# 100-year level

PlotRL(RLBootList = RLBoot, thetaGrid = thetaVec, Data = Data, drc = drc, TTs = c(100, 
    10000), whichPlot = 1, alpha = 0.05, ylim = NULL, pointSize = 1, cex.axis = 15, 
    cex.lab = 2, thrWidth = 2)


PolarPlotRL(RLBootList = RLBoot, thetaGrid = thetaVec, Data = Data, drc = drc, 
    TTs = c(100, 10000), whichPlot = 1, alpha = 0.05, ylim = c(0, 25), pointSize = 4, 
    fontSize = 12, lineWidth = 2)
# 10000-year level
PlotRL(RLBootList = RLBoot, thetaGrid = thetaVec, Data = Data, drc = drc, TTs = c(100, 
    10000), whichPlot = 2, alpha = 0.05, ylim = NULL, pointSize = 1, cex.axis = 15, 
    cex.lab = 2, thrWidth = 2)


PolarPlotRL(RLBootList = RLBoot, thetaGrid = thetaVec, Data = Data, drc = drc, 
    TTs = c(100, 10000), whichPlot = 2, alpha = 0.05, ylim = c(0, 25), pointSize = 4, 
    fontSize = 12, lineWidth = 2)

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.