SplineML function

Spline ML fitting

Spline ML fitting

SplineML( excesses, drc, thetaVec = 0:360, nBoot = 100, numIntKnots = 10, knotsType = "eqSpaced", lambda = seq(0, 2, by = 0.5), kappa = seq(0, 2, by = 0.5), nCandidatesInit = 1000, numCores = 2 )

Arguments

  • excesses: Excesses data
  • drc: Directional covariate
  • thetaVec: Grid values at which the threshold will be evaluated
  • nBoot: Number of bootstrap resamples
  • numIntKnots: Number of internal knots
  • knotsType: Position of knots. Default to "eqSpaced". Otherwise, the knots will be placed at the quantiles of observed directions.
  • lambda: Penalty parameter values for lambda
  • kappa: Penalty parameter values for kappa
  • nCandidatesInit: Number of initial parameter vectors. Optimisation will start with the best.
  • numCores: Number of CPU cores to be used

Returns

List of bootstrap estimates of shape and scale, and optimal values of lambda and kappa.

Details

See Konzen, E., Neves, C., and Jonathan, P. (2021). Modeling nonstationary extremes of storm severity: Comparing parametric and semiparametric inference. Environmetrics, 32(4), e2667.

Examples

data(HsSP) data(drc) timeRange <- 54.5 idx <- order(drc) drc <- drc[idx] Data <- HsSP[idx] set.seed(1234) Data <- Data + runif(length(Data), -1e-4, 1e-4) thetaVec <- 1:360 data(thresholdExampleML) # loads threshold example thrResultML <- thresholdExampleML 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) 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) ## See also examples in vignette: # vignette("splineML", package = "circularEV")
  • Maintainer: Evandro Konzen
  • License: GPL-3
  • Last published: 2022-05-13

Useful links