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
#> 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
#> 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
#> 1: 1 0.000000e+00 None
#> 2: 2 8.574328e+01 5
#> 3: 3 9.137924e-01 2
#> 4: 4 2.611786e+02 1
#> 5: 5 2.686697e+00 8
#> 6: 6 2.529234e+02 1
#> 7: 6 9.173005e+00 3
#> 8: 7 0.000000e+00 None
#> 9: 8 3.633260e-07 6
#> 10: 9 1.286863e+02 3
#> 11: 9 2.296461e+02 6
#> 12: 10 0.000000e+00 None
# Layer 500 xs 50
ylt[ , layer1_loss := layer_loss(Loss, Excess = 50 , Limit = 500 ) ]
ylt
#> Year Loss Event layer1_loss
#> 1: 1 0.000000e+00 None 0.00000
#> 2: 2 8.574328e+01 5 35.74328
#> 3: 3 9.137924e-01 2 0.00000
#> 4: 4 2.611786e+02 1 211.17861
#> 5: 5 2.686697e+00 8 0.00000
#> 6: 6 2.529234e+02 1 202.92345
#> 7: 6 9.173005e+00 3 0.00000
#> 8: 7 0.000000e+00 None 0.00000
#> 9: 8 3.633260e-07 6 0.00000
#> 10: 9 1.286863e+02 3 78.68626
#> 11: 9 2.296461e+02 6 179.64615
#> 12: 10 0.000000e+00 None 0.00000
ann <-ylt[, lapply( .SD , sum), by=Year, .SDcols = c("Loss","layer1_loss") ]
ann
#> Year Loss layer1_loss
#> 1: 1 0.000000e+00 0.00000
#> 2: 2 8.574328e+01 35.74328
#> 3: 3 9.137924e-01 0.00000
#> 4: 4 2.611786e+02 211.17861
#> 5: 5 2.686697e+00 0.00000
#> 6: 6 2.620965e+02 202.92345
#> 7: 7 0.000000e+00 0.00000
#> 8: 8 3.633260e-07 0.00000
#> 9: 9 3.583324e+02 258.33241
#> 10: 10 0.000000e+00 0.00000
expected_loss <- ann[ , lapply(.SD, mean) , .SDcols = c("Loss","layer1_loss") ]
expected_loss
#> Loss layer1_loss
#> 1: 97.09512 70.81777
ep <-create_oep_curve(ann , y= "Year", z="Loss")
ep
#> return_period OEP
#> 1: 10000 358.245795
#> 2: 5000 358.159183
#> 3: 1000 357.466284
#> 4: 500 356.600160
#> 5: 250 354.867913
#> 6: 200 354.001789
#> 7: 100 349.671171
#> 8: 50 341.009935
#> 9: 25 323.687463
#> 10: 10 271.720046
#> 11: 5 261.362178
#> 12: 2 1.800245