Skip to contents

Selects a probability distribution by minimizing the absolute distance between the theoretical L-kurtosis (\(\tau_4\)) and the sample L-kurtosis (\(t_4\)). Only supports 3-parameter distributions.

For NS-FFA: To select a distribution for a nonstationary model, include the observation years (ns_years) and the nonstationary model structure (ns_structure). Then, this method will detrend the original, nonstationary data internally using the data_decomposition() function prior to distribution selection.

Usage

select_lkurtosis(data, ns_years = NULL, ns_structure = NULL)

Arguments

data

Numeric vector of observed annual maximum series values. Must be strictly positive, finite, and not missing.

ns_years

For NS-FFA only: Numeric vector of observation years corresponding to data. Must be the same length as data and strictly increasing.

ns_structure

For NS-FFA only: Named list indicating which distribution parameters are modeled as nonstationary. Must contain two logical scalars:

  • location: If TRUE, the location parameter has a linear temporal trend.

  • scale: If TRUE, the scale parameter has a linear temporal trend.

Value

A list with the results of distribution selection:

  • method: "L-kurtosis".

  • decomposed_data: The detrended dataset used to compute the L-moments. For S-FFA, this is the data argument. For NS-FFA, it is output of data_decomposition().

  • metrics: A list of L-kurtosis metrics for each distribution.

  • recommendation: Name of the distribution with the smallest L-kurtosis metric.

Details

This method computes the distance between the sample and theoretical L-kurtosis values at a fixed L-skewness. For three parameter distributions, the shape parameter that best replicates the sample L-skewness is determined using stats::optim().

References

Hosking, J.R.M. & Wallis, J.R., 1997. Regional frequency analysis: an approach based on L-Moments. Cambridge University Press, New York, USA.

Examples

data <- rnorm(n = 100, mean = 100, sd = 10)
select_lkurtosis(data)
#> $method
#> [1] "L-kurtosis"
#> 
#> $decomposed_data
#>   [1]  93.60352 110.40346 101.88798  89.91239  95.76346  96.28633  92.88214
#>   [8] 107.66761 100.24811  91.11662 106.52933 103.43808 100.93860 110.27809
#>  [15]  98.62926 102.08267  98.57140 102.35075 103.47996  83.75346 104.88698
#>  [22]  92.63333  75.05650  88.16380  97.45606  90.25658  99.95407 126.05796
#>  [29] 105.80371 112.20856 108.26051  87.51531 112.79890 101.79532 100.69774
#>  [36]  94.59874  92.52886 106.65356 102.37895  78.83040 113.09512 101.76962
#>  [43]  87.93563 100.03565 116.09386 108.88120 100.53488  93.86536  84.78745
#>  [50] 104.43879 119.64609  88.08352 102.16198 101.59475 108.50008 103.25873
#>  [57]  74.92009 114.19124  98.33760  89.44035 102.32344  83.51807 114.32718
#>  [64] 104.70174 118.28867 101.53764  73.90265  98.52786  99.60387 114.10128
#>  [71]  94.80521  77.24338 118.15420  96.81166 120.67107  91.90085 109.02063
#>  [78] 111.29125 101.25185 101.97204 105.04875 101.59453 107.52622  95.95371
#>  [85] 105.78080 102.50401  99.46820  96.22555 104.76594  89.81868 112.29107
#>  [92]  96.09028 102.93663  75.41348  96.22050 103.39956 109.32393 100.77930
#>  [99]  98.63497  95.30955
#> 
#> $metrics
#> $metrics$GEV
#> [1] 0.08524815
#> 
#> $metrics$GLO
#> [1] 0.0183023
#> 
#> $metrics$GNO
#> [1] 0.0625777
#> 
#> $metrics$PE3
#> [1] 0.06473996
#> 
#> $metrics$LP3
#> [1] 0.07141426
#> 
#> $metrics$WEI
#> [1] 0.07021915
#> 
#> 
#> $recommendation
#> [1] "GLO"
#>