ChainLadder icon indicating copy to clipboard operation
ChainLadder copied to clipboard

MackChainladder produces very large tail.sigma

Open jbogaardt opened this issue 7 years ago • 2 comments

Unit testing some code and came across this example: MackChainLadder(auto$PersonalAutoIncurred,alpha=2,tail=TRUE)

I believe this set-up produces unrealistic MackS.E.s

jbogaardt avatar Jun 30 '17 00:06 jbogaardt

@jbogaardt I don't think you will get much disagreement from CL authors! Borrowing a saying from @mages , That's not a very good model for your data. Some comments and a link:

The estimate of a tail using lognormal extrapolation is one of the many MackChainLadder features that go beyond the method of Mack. If the purpose of your application is tail extrapolation alone, you can ignore the uncertainty estimates, of course. Then there's always Sherman's inverse power curve, and Jon Evans 2015 paper (Variance, Vol 9, No. 2: http://www.variancejournal.org/issues/?fa=article&abstrID=7203) that talks about how to calculate upper and lower bounds for the extrapolated tail.

However tail.se and tail.sigma are estimated, MackChainLadder "marries" them to the f.se/f.sigma's in the columns using the same recursion formula that underlies Mack's method. If tail.se and tail.sigma are unreasonable, then so will be the final result of MackChainLadder.

That being said, if you want to know why MackChainLadder is coming up with such an unreasonable estimate for tail.se and tail.sigma, look at my ChainLadder fork (github id chiefmurph) and branch tailFitPlots where I put debug and plot statements into MackChainLadder.R specifically for auto$PersonalAutoIncurred. You will see that the culprit is how far away the estimated tail index ('tailpos' = -19) is from the indexes of the data (1:10). My hunch is there must be another way of estimating the uncertainty of the tail estimate ("f.se"). Perhaps it's already available from MackChainLadder's lognormal tail fit. (Or use Evans' approach and the rule of thumb that standard deviation is about 1/4 the range.) Then extrapolate the f.sigma/f.se relationships in the columns to get f.sigma for the tail.

I hope this link to the branch works for you: https://github.com/chiefmurph/ChainLadder/tree/tailFitPlots Once I got that branch onto my computer, I hit Build & Reload within RStudio. Then run your example to get three plots. The first one shows where tailpos=-19 comes from. From the other two you get the picture that, at an x-axis value of -19, the f.se and f.sigma values are going to be humongous.

chiefmurph avatar Jul 03 '17 20:07 chiefmurph

loglinear, not lognormal

chiefmurph avatar Jul 05 '17 00:07 chiefmurph