November 2025

This website contains an expanding collection of reference charts that give the calibration bias (a.k.a. reliability bias) resulting from fitting statistical models with maximum likelihood or calibrating prior prediction.

These charts are relevant for anyone using statistical models to understand the probabilities of extremes.

Calibration Bias

Introduction

Calibration Bias Charts

Reasons to Use the Charts

There are two main reasons to use these charts:
  1. There are 100s of scientific publications that have assessed the probabilities of extremes using maximum likelihood. You can use these charts to understand possible bias in the probability and return level assessments in those publications. In some cases, the bias will be small enough that it can be ignored. In other cases, it will be large enough that it cannot be ignored. When it is large, the charts can be used to estimate a correction, or to motivate recalculating the probabilities.
  2. If you are designing a study that will involve fitting statistical distributions as a way to estimate probabilities of future events, then you can use the charts to understand whether maximum likelihood prediction or calibrating prior prediction will be good enough for your purposes.

Reference Charts

The table below gives the charts, for all the models that are currently supported, in alphabetical order. Click on the model name for the charts. Click on the coloured words for some explanation.

The list of models supported so far was motivated by various climate and actuarial applications. Let me know if you have any suggestions for other models to include.

Type 1 (fixed parameter): xi / shape =

Type 2 (fixed sample size): n =

Naming in fitdistcp:

  • in R: exp_cp
  • in Python: fitdistcp.expon

Naming in fitdistcp:

  • in R: exp_p1_cp
  • in Python: NA

Naming in fitdistcp:

  • in R: frechet_k1_cp
  • in Python: NA

Naming in fitdistcp:

  • in R: gev_cp
  • in Python: fitdistcp.genextreme

Naming in fitdistcp:

  • in R: gev_p1_cp
  • in Python: fitdistcp.genextreme_p1

Naming in fitdistcp:

  • in R: gev_p12_cp
  • in Python: fitdistcp.genextreme_p12

Naming in fitdistcp:

  • in R: gpd_k1_cp
  • in Python: fitdistcp.genpareto

Naming in fitdistcp:

  • in R: gumbel_cp
  • in Python: fitdistcp.gumbel

Naming in fitdistcp:

  • in R: gumbel_p1_cp
  • in Python: NA

Naming in fitdistcp:

  • in R: logis_cp
  • in Python: NA

Naming in fitdistcp:

  • in R: lnorm_cp
  • in Python: fitdistcp.lnorm

Graphs are the same as the normal distribution.

Naming in fitdistcp:

  • in R: lnorm_p1_cp
  • in Python: NA

Graphs are the same as the normal distribution with predictor.

Naming in fitdistcp:

  • in R: norm_cp
  • in Python: fitdistcp.norm

Naming in fitdistcp:

  • in R: norm_p1_cp
  • in Python: NA

Naming in fitdistcp:

  • in R: pareto_k2
  • in Python: NA

Graphs are the same as the exponential distribution.

Naming in fitdistcp:

  • in R: pareto_p1k2
  • in Python: NA

Graphs are the same as the exponential distribution with one predictor.

Naming in fitdistcp:

  • in R: weibull_cp
  • in Python: fitdistcp.weibull

Graphs are the same as the Gumbel distribution.

Reading the Charts

Chart Type 1

Chart Type 2

Notes

Technical Comments

Acknowledgements

More information

Research

Contact

References

1) Our initial paper on this topic, which contains a detailed technical discussion: 2) A second paper that describes the charts and gives a slightly less detailed technical discussion: 3) A technical paper aimed at actuaries: 4) Related software packages: