A worked example follows to serve as motivation for the use case.
TODO
elt <- create_elt(raw_elt, ann_rate="rate", mu="mean", sdev_i = "sdevi" , sdev_c = "sdevc", expval = "exp")
elt
#> id rate mean sdevi sdevc exp mdr sdev cov alpha
#> <int> <num> <int> <int> <int> <int> <num> <int> <num> <num>
#> 1: 1 0.10 500 500 200 100000 0.0050000 700 1.40 0.502653061
#> 2: 2 0.10 200 400 100 5000 0.0400000 500 2.50 0.113600000
#> 3: 3 0.20 300 200 400 40000 0.0075000 600 2.00 0.240625000
#> 4: 4 0.10 100 300 500 4000 0.0250000 800 8.00 -0.009765625
#> 5: 5 0.20 500 100 200 2000 0.2500000 300 0.60 1.833333333
#> 6: 6 0.25 200 200 500 50000 0.0040000 700 3.50 0.077306122
#> 7: 7 0.01 1000 500 600 100000 0.0100000 1100 1.10 0.808181818
#> 8: 8 0.12 250 300 100 5000 0.0500000 400 1.60 0.321093750
#> 9: 9 0.14 1000 500 200 6000 0.1666667 700 0.70 1.534013605
#> 10: 10 0.00 10000 1000 500 1000000 0.0100000 1500 0.15 43.990000000
#> beta random_num
#> <num> <num>
#> 1: 100.0279592 0.081967213
#> 2: 2.7264000 0.081967213
#> 3: 31.8427083 0.163934426
#> 4: -0.3808594 0.081967213
#> 5: 5.5000000 0.163934426
#> 6: 19.2492245 0.204918033
#> 7: 80.0100000 0.008196721
#> 8: 6.1007812 0.098360656
#> 9: 7.6700680 0.114754098
#> 10: 4355.0100000 0.000000000
ylt <- create_ylt(elt, sims=10 ,ann_rate = "rate" , event_id = "id", expval = "exp" , mu ="mean")
ylt
#> Year Loss Event
#> <int> <num> <char>
#> 1: 1 3.198041e+02 3
#> 2: 2 8.139426e+02 2
#> 3: 2 4.156169e+02 5
#> 4: 3 0.000000e+00 None
#> 5: 4 1.967445e+01 7
#> 6: 4 8.239749e+02 5
#> 7: 4 1.804756e+00 6
#> 8: 5 0.000000e+00 None
#> 9: 6 1.425554e+01 8
#> 10: 6 4.781157e+01 3
#> 11: 6 3.570116e+02 5
#> 12: 6 6.673875e-01 6
#> 13: 6 1.097922e+03 5
#> 14: 6 1.308999e+03 1
#> 15: 7 5.913894e-04 2
#> 16: 7 7.072303e+02 5
#> 17: 8 0.000000e+00 None
#> 18: 9 3.025740e+00 1
#> 19: 9 2.382902e+02 1
#> 20: 10 3.557453e+02 8
#> 21: 10 6.470248e+00 6
#> Year Loss Event
# Layer 500 xs 50
ylt[ , layer1_loss := layer_loss(Loss, Excess = 50 , Limit = 500 ) ]
ylt
#> Year Loss Event layer1_loss
#> <int> <num> <char> <num>
#> 1: 1 3.198041e+02 3 269.8041
#> 2: 2 8.139426e+02 2 500.0000
#> 3: 2 4.156169e+02 5 365.6169
#> 4: 3 0.000000e+00 None 0.0000
#> 5: 4 1.967445e+01 7 0.0000
#> 6: 4 8.239749e+02 5 500.0000
#> 7: 4 1.804756e+00 6 0.0000
#> 8: 5 0.000000e+00 None 0.0000
#> 9: 6 1.425554e+01 8 0.0000
#> 10: 6 4.781157e+01 3 0.0000
#> 11: 6 3.570116e+02 5 307.0116
#> 12: 6 6.673875e-01 6 0.0000
#> 13: 6 1.097922e+03 5 500.0000
#> 14: 6 1.308999e+03 1 500.0000
#> 15: 7 5.913894e-04 2 0.0000
#> 16: 7 7.072303e+02 5 500.0000
#> 17: 8 0.000000e+00 None 0.0000
#> 18: 9 3.025740e+00 1 0.0000
#> 19: 9 2.382902e+02 1 188.2902
#> 20: 10 3.557453e+02 8 305.7453
#> 21: 10 6.470248e+00 6 0.0000
#> Year Loss Event layer1_loss
ann <-ylt[, lapply( .SD , sum), by=Year, .SDcols = c("Loss","layer1_loss") ]
ann
#> Year Loss layer1_loss
#> <int> <num> <num>
#> 1: 1 319.8041 269.8041
#> 2: 2 1229.5595 865.6169
#> 3: 3 0.0000 0.0000
#> 4: 4 845.4541 500.0000
#> 5: 5 0.0000 0.0000
#> 6: 6 2826.6669 1307.0116
#> 7: 7 707.2309 500.0000
#> 8: 8 0.0000 0.0000
#> 9: 9 241.3160 188.2902
#> 10: 10 362.2155 305.7453
expected_loss <- ann[ , lapply(.SD, mean) , .SDcols = c("Loss","layer1_loss") ]
expected_loss
#> Loss layer1_loss
#> <num> <num>
#> 1: 653.2247 393.6468
ep <-create_oep_curve(ann , y= "Year", z="Loss")
ep
#> return_period OEP
#> <num> <num>
#> 1: 10000 2825.2295
#> 2: 5000 2823.7921
#> 3: 1000 2812.2930
#> 4: 500 2797.9190
#> 5: 250 2769.1710
#> 6: 200 2754.7971
#> 7: 100 2682.9272
#> 8: 50 2539.1876
#> 9: 25 2251.7082
#> 10: 10 1389.2702
#> 11: 5 922.2752
#> 12: 2 341.0098