Description
we are facing two immediate tests of package maturity in the process of recreating Friedland
- Chapter 11 FreqSev is requiring a decent amount of manual workflows
- Chapter 12 Case Outstanding requires more averaging parameters than the current implementation
Is your feature request aligned with the scope of the package?
Describe the solution you'd like, or your current workaround.
@priyam0k suggested meta-estimators, which makes a lot of sense. for example, FrequencySeverity could be a meta-estimator that just multiples the ultimate_ of its constituent estimators. This should cover Approach no. 1 and no. 2 from Friedland.
Some additional meta-estimators we should look into
- refactor CaseOutstanding as a meta-estimator
- Approach no. 3 likely needs a separate
FullTriangleFreqSev (pending better naming) meta-estimator
Before we get too far down the rabbit hole of meta-estimators, we should also provide QoL follow-ups
- enhance model_diagnostics to accept all meta-estimators
- probably a new public class for meta-estimators (we only have a private one in the package currently). to define properties that model_diagnostics can pick up from meta-estimators
Do you have any additional supporting notes?
Some code snippet to illustrate the idea
standard_pipe = cl.Pipeline(
steps=[
('tri_sel', cl.TriangleSelector()),
('dev', cl.Development()),
('tail', cl.TailConstant()),
('model', cl.Chainladder())
]
)
exh1_ccc = clone(standard_pipe)
exh1_ccc .set_params(
tri_sel__col = 'Closed Claim Counts',
tail__tail = 1
)
exh1_rcc = clone(standard_pipe)
exh1_rcc .set_params(
tri_sel__col = 'Reported Claim Counts',
tail__tail = 1
)
exh1_rsev = clone(standard_pipe)
exh1_rsev .set_params(
tri_sel__col = 'Reported Severity',
tail__tail = 1
)
exh1_freq = cl.VotingChainladder(
estimators = [
('ccc',exh1_ccc),
('rcc',exh1_rcc),
],
weight = ...
)
exh1 = cl.FrequencySeverity(
estimators = [
('count',exh1_freq),
('severity',exh1_rsev),
]
)
exh1.fit(cl.load_sample('friedland_auto_freq_sev'))
Would you be willing to contribute this ticket?
Description
we are facing two immediate tests of package maturity in the process of recreating Friedland
Is your feature request aligned with the scope of the package?
Describe the solution you'd like, or your current workaround.
@priyam0k suggested meta-estimators, which makes a lot of sense. for example,
FrequencySeveritycould be a meta-estimator that just multiples theultimate_of its constituentestimators. This should cover Approach no. 1 and no. 2 from Friedland.Some additional meta-estimators we should look into
FullTriangleFreqSev(pending better naming) meta-estimatorBefore we get too far down the rabbit hole of meta-estimators, we should also provide QoL follow-ups
Do you have any additional supporting notes?
Some code snippet to illustrate the idea
Would you be willing to contribute this ticket?