Univariate analysis for discrete risk factors in an insurance portfolio. The following summary statistics are calculated:

  • frequency (i.e. number of claims / exposure)

  • average severity (i.e. severity / number of claims)

  • risk premium (i.e. severity / exposure)

  • loss ratio (i.e. severity / premium)

  • average premium (i.e. premium / exposure)

If input arguments are not specified, the summary statistics related to these arguments are ignored.

univariate(
  df,
  x,
  severity = NULL,
  nclaims = NULL,
  exposure = NULL,
  premium = NULL,
  by = NULL
)

Arguments

df

data.frame with insurance portfolio

x

column in df with risk factor, or use vec_ext() for use with an external vector (see examples)

severity

column in df with severity (default is NULL)

nclaims

column in df with number of claims (default is NULL)

exposure

column in df with exposure (default is NULL)

premium

column in df with premium (default is NULL)

by

list of column(s) in df to group by

Value

A data.frame

Author

Martin Haringa

Examples

# Summarize by `area`
univariate(MTPL2, x = area, severity = amount, nclaims = nclaims,
           exposure = exposure, premium = premium)
#>    area  amount nclaims   exposure premium  frequency average_severity
#> 1:    2 4063270      98  818.53973   51896 0.11972540         41461.94
#> 2:    3 7945311     113  764.99178   49337 0.14771401         70312.49
#> 3:    1 6896187     146 1065.74795   65753 0.13699299         47234.16
#> 4:    0    6922       1   13.30685     902 0.07514927          6922.00
#>    risk_premium loss_ratio average_premium
#> 1:    4964.0474  78.296400        63.40071
#> 2:   10386.1390 161.041632        64.49350
#> 3:    6470.7486 104.880188        61.69658
#> 4:     520.1832   7.674058        67.78464

# Summarize by `area`, with column name in external vector
xt <- "area"
univariate(MTPL2, x = vec_ext(xt), severity = amount, nclaims = nclaims,
           exposure = exposure, premium = premium)
#>    area  amount nclaims   exposure premium  frequency average_severity
#> 1:    2 4063270      98  818.53973   51896 0.11972540         41461.94
#> 2:    3 7945311     113  764.99178   49337 0.14771401         70312.49
#> 3:    1 6896187     146 1065.74795   65753 0.13699299         47234.16
#> 4:    0    6922       1   13.30685     902 0.07514927          6922.00
#>    risk_premium loss_ratio average_premium
#> 1:    4964.0474  78.296400        63.40071
#> 2:   10386.1390 161.041632        64.49350
#> 3:    6470.7486 104.880188        61.69658
#> 4:     520.1832   7.674058        67.78464

# Summarize by `zip` and `bm`
univariate(MTPL, x = zip, severity = amount, nclaims = nclaims,
           exposure = exposure, by = bm)
#>     zip bm   amount nclaims     exposure  frequency average_severity
#>  1:   1  5  4938135      82 5.496986e+02 0.14917265         60221.16
#>  2:   1  3  3623485      86 6.139808e+02 0.14006952         42133.55
#>  3:   2  8  1739654      38 2.491890e+02 0.15249467         45780.37
#>  4:   1 10  2077041      73 4.514219e+02 0.16171124         28452.62
#>  5:   3  1 20064123     381 2.841123e+03 0.13410189         52661.74
#>  6:   3  6  3814492      82 5.386904e+02 0.15222101         46518.20
#>  7:   3  2 11182348     179 1.281537e+03 0.13967603         62471.22
#>  8:   2  1 25368747     356 2.943959e+03 0.12092560         71260.53
#>  9:   1  2 17512277     287 1.835279e+03 0.15637945         61018.39
#> 10:   2  9   574527      25 2.366575e+02 0.10563788         22981.08
#> 11:   2  5  6306221      57 3.963425e+02 0.14381502        110635.46
#> 12:   1  1 38308837     601 4.208589e+03 0.14280320         63741.83
#> 13:   2  2  7792412     175 1.270674e+03 0.13772219         44528.07
#> 14:   3  7  1266843      25 2.335315e+02 0.10705194         50673.72
#> 15:   1  8  5616740      56 3.791479e+02 0.14769960        100298.93
#> 16:   1  6  4944980     106 8.312466e+02 0.12751932         46650.75
#> 17:   2  6  3349845      96 5.949534e+02 0.16135717         34894.22
#> 18:   1 11 25037469      65 4.450082e+02 0.14606472        385191.83
#> 19:   2 12  3538040      56 4.113178e+02 0.13614776         63179.29
#> 20:   2  4  2408722      23 1.800904e+02 0.12771363        104727.04
#> 21:   3  5  2723499      70 3.875151e+02 0.18063814         38907.13
#> 22:   2  3  3098089      44 4.148548e+02 0.10606121         70411.11
#> 23:   1  9  1851067      34 3.112082e+02 0.10925161         54443.15
#> 24:   3  9  2261054      30 2.166712e+02 0.13845862         75368.47
#> 25:   3 15    76264       4 4.481370e+01 0.08925842         19066.00
#> 26:   3  8  1555538      33 2.344466e+02 0.14075701         47137.52
#> 27:   1  7  1963040      44 3.587753e+02 0.12263942         44614.55
#> 28:   3  3  6703451      61 4.764192e+02 0.12803851        109892.64
#> 29:   2 10  1685630      42 2.709918e+02 0.15498625         40134.05
#> 30:   3 12  2661213      52 4.029890e+02 0.12903577         51177.17
#> 31:   3  4  2767687      22 1.834274e+02 0.11993846        125803.95
#> 32:   2  7  1204679      33 2.563014e+02 0.12875468         36505.42
#> 33:   1 12  3553663      72 5.301863e+02 0.13580132         49356.43
#> 34:   2 11  1859592      36 3.522411e+02 0.10220273         51655.33
#> 35:   3 10  1287843      36 2.741397e+02 0.13131989         35773.42
#> 36:   3 11  2262033      46 3.108137e+02 0.14799862         49174.63
#> 37:   2 15   150454       6 4.660822e+01 0.12873266         25075.67
#> 38:   1  4  4796423      58 2.809178e+02 0.20646608         82696.95
#> 39:   1 15  1451895      12 8.560000e+01 0.14018692        120991.25
#> 40:   0  6    87395       4 2.312877e+01 0.17294480         21848.75
#> 41:   0  1   154173      11 7.426301e+01 0.14812219         14015.73
#> 42:   0  2     7777       2 3.186027e+01 0.06277410          3888.50
#> 43:   1 13   110245       3 7.600000e+01 0.03947368         36748.33
#> 44:   1 17     6074       1 1.374247e+01 0.07276715          6074.00
#> 45:   3 19        0       0 7.449315e+00 0.00000000              NaN
#> 46:   0  9    20242       2 5.764384e+00 0.34695817         10121.00
#> 47:   3 18    15231       1 5.586301e+00 0.17900932         15231.00
#> 48:   1 14    53670       3 4.708767e+01 0.06371094         17890.00
#> 49:   3 13    54270       2 5.586027e+01 0.03580362         27135.00
#> 50:   2 14    98128       3 4.833973e+01 0.06206076         32709.33
#> 51:   0  3   222411       2 1.365753e+01 0.14643932        111205.50
#> 52:   3 16    54425       3 2.939726e+01 0.10205033         18141.67
#> 53:   2 13   316269      10 6.207397e+01 0.16109812         31626.90
#> 54:   2 16    15444       3 2.256986e+01 0.13292061          5148.00
#> 55:   1 16   155194       4 3.359452e+01 0.11906704         38798.50
#> 56:   0 10        0       0 7.926027e+00 0.00000000              NaN
#> 57:   3 20        0       0 4.602740e+00 0.00000000              NaN
#> 58:   3 14   231207      10 4.981096e+01 0.20075903         23120.70
#> 59:   0  4    27081       1 6.208219e+00 0.16107679         27081.00
#> 60:   2 20        0       0 5.000000e+00 0.00000000              NaN
#> 61:   1 20        0       0 6.693151e+00 0.00000000              NaN
#> 62:   1 19    63398       3 8.550685e+00 0.35084909         21132.67
#> 63:   2 17        0       0 5.693151e+00 0.00000000              NaN
#> 64:   0 16   217640       3 2.317808e+00 1.29432624         72546.67
#> 65:   0 11    57540       1 7.000000e+00 0.14285714         57540.00
#> 66:   0 12    18745       1 1.166027e+01 0.08576128         18745.00
#> 67:   2 18   166183       3 5.093151e+00 0.58902636         55394.33
#> 68:   0  5     5178       1 1.267945e+01 0.07886776          5178.00
#> 69:   0 15        0       0 6.301370e-02 0.00000000              NaN
#> 70:   1 18        0       0 5.865753e+00 0.00000000              NaN
#> 71:   2 19     5518       1 6.843836e+00 0.14611689          5518.00
#> 72:   1 23     2496       1 1.964384e+00 0.50906555          2496.00
#> 73:   1 21   112540       2 3.068493e+00 0.65178571         56270.00
#> 74:   0  8     3328       1 6.260274e+00 0.15973742          3328.00
#> 75:   3 17     7441       1 5.739726e+00 0.17422434          7441.00
#> 76:   2 22    73831       1 5.315068e-01 1.88144330         73831.00
#> 77:   0 21        0       0 1.000000e+00 0.00000000              NaN
#> 78:   1 22        0       0 3.000000e+00 0.00000000              NaN
#> 79:   2 23        0       0 1.304110e+00 0.00000000              NaN
#> 80:   0 14        0       0 5.479452e-02 0.00000000              NaN
#> 81:   0  7        0       0 2.000000e+00 0.00000000              NaN
#> 82:   0 13        0       0 1.000000e+00 0.00000000              NaN
#> 83:   3 21        0       0 3.000000e+00 0.00000000              NaN
#> 84:   2 21        0       0 1.000000e+00 0.00000000              NaN
#>     zip bm   amount nclaims     exposure  frequency average_severity
#>     risk_premium
#>  1:    8983.3497
#>  2:    5901.6257
#>  3:    6981.2621
#>  4:    4601.1080
#>  5:    7062.0388
#>  6:    7081.0468
#>  7:    8725.7318
#>  8:    8617.2219
#>  9:    9542.0221
#> 10:    2427.6726
#> 11:   15911.0404
#> 12:    9102.5369
#> 13:    6132.5030
#> 14:    5424.7198
#> 15:   14814.1117
#> 16:    5948.8726
#> 17:    5630.4323
#> 18:   56262.9361
#> 19:    8601.7185
#> 20:   13375.0708
#> 21:    7028.1112
#> 22:    7467.8877
#> 23:    5948.0016
#> 24:   10435.4139
#> 25:    1701.8011
#> 26:    6634.9359
#> 27:    5471.5020
#> 28:   14070.4894
#> 29:    6220.2256
#> 30:    6603.6858
#> 31:   15088.7329
#> 32:    4700.2441
#> 33:    6702.6685
#> 34:    5279.3158
#> 35:    4697.7613
#> 36:    7277.7777
#> 37:    3228.0573
#> 38:   17074.1151
#> 39:   16961.3902
#> 40:    3778.6277
#> 41:    2076.0402
#> 42:     244.0971
#> 43:    1450.5921
#> 44:     441.9876
#> 45:       0.0000
#> 46:    3511.5637
#> 47:    2726.4909
#> 48:    1139.7888
#> 49:     971.5312
#> 50:    2029.9660
#> 51:   16284.8576
#> 52:    1851.3630
#> 53:    5095.0340
#> 54:     684.2753
#> 55:    4619.6224
#> 56:       0.0000
#> 57:       0.0000
#> 58:    4641.6894
#> 59:    4362.1205
#> 60:       0.0000
#> 61:       0.0000
#> 62:    7414.3768
#> 63:       0.0000
#> 64:   93899.0544
#> 65:    8220.0000
#> 66:    1607.5952
#> 67:   32628.7224
#> 68:     408.3773
#> 69:       0.0000
#> 70:       0.0000
#> 71:     806.2730
#> 72:    1270.6276
#> 73:   36675.9821
#> 74:     531.6061
#> 75:    1296.4033
#> 76:  138908.8402
#> 77:       0.0000
#> 78:       0.0000
#> 79:       0.0000
#> 80:       0.0000
#> 81:       0.0000
#> 82:       0.0000
#> 83:       0.0000
#> 84:       0.0000
#>     risk_premium

# Summarize by `zip`, `bm` and `power`
univariate(MTPL, x = zip, severity = amount, nclaims = nclaims,
           exposure = exposure, by = list(bm, power))
#>       zip bm power amount nclaims   exposure  frequency average_severity
#>    1:   1  5   106      0       0  1.0000000 0.00000000              NaN
#>    2:   1  3    74   2687       1 14.1397260 0.07072273          2687.00
#>    3:   2  8    65      0       0  5.0000000 0.00000000              NaN
#>    4:   1 10    64      0       0  7.0000000 0.00000000              NaN
#>    5:   3  1    29  37784       3 21.8849315 0.13708062         12594.67
#>   ---                                                                   
#> 3286:   1 13    87      0       0  1.0000000 0.00000000              NaN
#> 3287:   2 12   140   9016       1  1.0000000 1.00000000          9016.00
#> 3288:   3  1   145      0       0  1.0000000 0.00000000              NaN
#> 3289:   1 20    66      0       0  1.0000000 0.00000000              NaN
#> 3290:   1  6    57      0       0  0.1178082 0.00000000              NaN
#>       risk_premium
#>    1:        0.000
#>    2:      190.032
#>    3:        0.000
#>    4:        0.000
#>    5:     1726.485
#>   ---             
#> 3286:        0.000
#> 3287:     9016.000
#> 3288:        0.000
#> 3289:        0.000
#> 3290:        0.000