- Building an object-oriented model with modelx
- Why dynamic ALM models are slow
- Running a heavy model while saving memory
- Running modelx in parallel using ipyparallel
- Why Excel is better than Python
- How fast are lifelib models now?
- Testing GPU model on Cloud
- Modeling assets with QuantLib
- Object-oriented actuarial model
- Testing lifelib on GPU
- All posts ...
Object-oriented actuarial model
Jan 23, 2022
What’s the benefit of making an actuarial model object-oriented? Kaustav Sen developed an object-oriented actuarial model from scratch using modelx. The model calculates the present value of future profits and it’s a perfect example to demonstrate the benefit.
The structure of the model looks like below.
Each rectangle in the diagram represents a Space, in which a set of formulas and data are defined.
To project future profits, you need to model reserves. Reserving methods vary by country-specific regulations and accounting purposes, but in many cases including this example, reserves and best-estimate cashflows are calculated by the same set of formulas, but with different assumption sets.
Modeling the same set of formulas with the different sets assumptions in this model is achieved by an object-oriented approach.
In the base space named
Cashflows, formulas that calculate cashflows are defined.
The formulas are common between the best-estimate and reserve calculations.
Then there are
RES spaces that inherit from
RES copy the same formulas from
Cashflows, but they read different sets of assumptions from DataFrames
inherited from the
Finally, another space named
PV refers to
RES, to use the cashflows from
BE and per-policy reserves from
to calculated PVFP.
Now you see the benefit. Neither you need to define the same set of formulas twice for the best-estimate and reserving nor define a loop to iterate over the same set of formulas with different sets of assumptions, while saving the calculated values in variables separately from the formulas.