In the late 1800s, mathematicians held an international conference to unify and harmonise mathematical notation to facilitate greater communication across the subdisciplines. A reviewer at the time reported, "As might have been anticipated, they had not the slightest success whatever." The limited unity in notation that been has achieved over the last dozen decades seems to be the result of the innervating mathematical formalism with the notation of set theory, which has been, in Wittgenstein's quip, a cancer on the body of mathematics. Kari Sentz jokes that mathematicians would rather share underwear than adopt a common notation, yet everyone acknowledges the clear and massive advantages to finding consensus where possible.
There have already been several proposed languages to express and compute with uncertainty. And several implementations and software packages have been created and promulgated. Now that some flowers have bloomed, it may be time to start to look for the commonalities and to suggest conventions that can be helpful broadly.
The interval analysis community conscientiously met in committee over many months to create their standards (<<link?>>), and we should be cognizant of their work and its fruit, if not obsequious to them.
The advantages and disadvantages of one choice or another should be expressed in terms of these criteria, roughly ranked in order of importance:
Ease for end-user
Comprehensiveness
Flexibility and adaptability
Simplicity and straightforwardness
Ease and clarity in communicating to colleagues who may be using different software
More x-think and less p-think
Computational speed
Protectedness & good programming practice
Independence from implementation language
Ease for coders and developers (methods v. functions, object orientation v. functionality)
Let's meet to argue the issues this fall or winter. Anyone interested is welcome; please let others know about it. We have already emailed
Francis Baumont de Oliveira <francis@farmurban.co.uk>,
Marco De Angelis <mda@liv.ac.uk>,
Scott Ferson <ferson@liverpool.ac.uk>,
Ander Gray <Ander.Gray@liverpool.ac.uk>,
Nick Gray <nickgray@liv.ac.uk>,
Michael Hanss, <michael.hanss@itm.uni-stuttgart.de>,
Dominik Hose, <dominik.hose@itm.uni-stuttgart.de>>,
Josh Kaizer <jsk181@gmail.com>,
Enrique Miralles Dolz <E.Miralles-Dolz@liverpool.ac.uk>,
Jason O'Rawe <jazon33y@gmail.com>,
Kari Sentz <kari.sentz@gmail.com>,
Alexander Wimbush <a.wimbush@liverpool.ac.uk>.
Others to invite include people from DigiTwin, especially Robin Langley, Keith Worden, and David Wagg, as well as Kevin Bevin, Jon Helton, Bill Oberkampf, Ullrika Sahlin, Matthias Troffaes, Gert de Cooman, Willem Roelofs, Vladik Kreinovich, Michael Beer, Edo Patelli, Bruno Sudret, Michael Shields, Bob McMullen, Wolfgang Graf, Michael Kaliske, Andrew Dienstfrey, among others.
The meeting should address what functionality and features an uncertainty computing language should have, and other issues toward the general goal of articulating a useful general standard for such a language. We should first develop a flier-style advertisement for the meeting, with a nice visual and few words, that we can use on Twitter and splash screens on the Events page. Maybe it should have the basic questions we'll address. Perhaps the next thing to do is develop an draft agenda for the meeting. As a possibly self-serving starting point, I have outlined some of the basic functionality in black text below. The green text reflects additions I wanted to make. The orange text marks features that I am not sure I want to support. Toward the bottom of the list, we expect there will be controversy and divergence of opinions, but let us focus on recognising and heralding as much agreement as we can find starting perhaps in the upper parts of the list.
First-class citizenship of uncertain numbers
Printable, readable, writeable, debuggable
Passable as function arguments and results
Changeable of the fly
Standard functions generalised for uncertain numbers
Unary: abs, exp, log = ln, log10, sqrt, sqr, int, tan, sin, cos, atan, asin, acos, not, image, inverse, Gamma, Lambert w, ceiling, diGamma, downround, floor, logit, Logistic,
Binary: atan, power, Beta, betafunction, bico, choose, erf, factorial, fallingfactorial, risingfactorial
N-ary: print, display, show, min, max, list, and, or, xor, nand, nor
New functions introduced for uncertain numbers
Unary: left, right, leftside, rightside, smallest, largest, smaller, larger, centroid, core, mean, median, mode, harmean, geomean, midcore, midrange, stddev, variance, cv, iqrange, width, breadth, range, skewness, widen, wider, specific, spanning, dispersive, alpha, prob, ascloseas, closest, dyadic, edgy, endpt, farthest, fatten, fatter, fattenpositive, fatterpositive, gefgw (good enough for government work), odds, thicken, thicker, above, below, between, censor, highest, lowest, rescale
Binary: convolve, decon, factor, inside, contains, straddles, overlap, cond, equiv, imply, modus ponens, modus tollens
N-ary: envelope, imposition, mixture , concensus, histogram
Infix operators: +, -, *, /, ^, **, unary minus, //, %, ±, ×, ÷, •, ∙, <, <=, >, >=, ≥, ≤, ==, ===, ≈, ≡, !=, <>, ≠, &, |, ¬, ∩, ∪, ⋂, ⋃, ∈, ∉, ⊂, ⊆
Assignment operators: =, ~, <-, is
Communication (notation, file-compatibility)
Special symbols: #, @, ∞, Ø, ?, ℜ, ℝ, ℕ, ℤ
Special constants: dunno, empty, infinity, positives, nonnegatives, negatives, nonpositives, scientific and engineering constants with CODATA uncertainties
Types: reals, intervals, distributions, p-boxes, fuzzy numbers, hybrid numbers, possibility distributions, metadistributions, metaboxes (list of intervals or p-boxes)
Output summaries
One-number (scalar with the null hedge, i.e., a naked scalar)
Simple (the most appropriate hedged scalar value)
Range (left and right)
95%-range (2.5th and 97.5th percentiles)
Five-number (min, first quartile, median, third quartile, max)
Risk Calc summary (distribution family if known, range, mean, var)
Verbose (short paragraph describing the uncertain value)
Constructors
Intervals: [a, b], [a ± b], [s], zero-variance intervals, "sound" dual (Kaucher) intervals, open and partially open intervals
Nonparametric: minmax, box, minmaxmean, minmaxmeanismedian, minmaxmedian, minmaxmeanismode, minmaxmode, minmaxmedianismode, minmaxquantile, minmaxpercentile, meanmin, minmean, meanmax, maxmean, meanvariance, meanvar, meanstddev, meancv, minmeanstddev, maxmeanstddev, mmmms, mmmmv, unimmmms, unimmmmv, fivenumbers, minmaxmean95th, symmeanvariance, symmeanstddev, symmeancv, posmeanstddev, histogram, unimodal
Named distributions: 150 named distributions, supporting interval parameters
Hedges: about, around, approximately, up to, at most, at least, exactly, precisely, etc.
Counts
Measurements
Histograms
Estimators of parameters and distributions from data: canonical Bayesian posteriors, confidence boxes, consonant confident structures
Models of distributions from constraints: maximum entropy, PERT, maximum relative entropy, etc.
Fitted structures: method of matching moments, maximum likelihood, etc.
Dependence specification
Correlation measures
Pairwise dependence
Matrices of pairwise dependence
Multivariate joint structures
Special copulas
Parameterised and general copulas
Empirical copulas
Resolution of questions about the two levels of dependence
Dependence tracking
Repeated uncertainty detection
Other stuff
Special cases: logicals
Structures: stems, trees, lists, arrays
Inference engines à la Stan, Jugs, etc.
Intervals statistics
Finite element code
ODE code
Autodifferentiation
Units checking and propagation
Probabilistic programming (https://en.wikipedia.org/wiki/Probabilistic_programming)
Vocabulary
There have been several 'taxonomies' of uncertainty proffered by various researchers. The Sandia reports offer glossaries about many basic terms. Lots of technical terms are bandied about. Can we agree about the context and meaning for some basic ones?
PLEASE HELP IMPROVE THIS PAGE
Please feel free to edit and make additions to this page or add links to correct omissions or missing connections. If you want to indicate your changes for review or discussion, just highlight them in blue. However, if you detect a mistake or misunderstanding, please make the amendment and highlight it in red so we can propagate the improvement among collaborators.
uncertainty
epistemic uncertainty
aleatory uncertainty
polymorphic uncertainty
volitional uncertainty
confidence
evidence
belief
assumption
warrant
knowledge
uncertain number
certain number (scalar)
interval
probability distribution
confidence structure
probability box
credal set
probability
possibility distribution
fuzzy number
metadistribution
identification
inverse problem
aggregation
forward propagation
ordination (ranking)
backcalculation
updating
calibration
validation
marginalisation
projection
dependence
UQ
uncertainty propagation
V&V
stochasticity
lack of knowledge
Singhing
decision making
communication
repeated uncertainty
expert elicitation
sensitivity analysis
one-off event
prior
posterior
independence (π)
perfect (M) dependence
opposite (W) dependence
Fréchet case
correlation
copula
dependency tracking
random set independence
epistemic independence
uncertainty logic
two-level dependence
belief measure
probability measure
possibility measure
frame of discernment
trace
measurable space
monotone capacity
instantiation
numerical hedges
Fermi estimates
A synopsis of pre-existing software tools and schemes:
<<Cossan>>
<<Dakota>>
<<Sudret>>
<<Shields Lab>>
<<WinBugs>>, <<Stan>>, <<Jags>>
Guide to Uncertainty in Measurement (GUM) from BIPM, JCGM, ISO, NIST
<<Interval standards>>
<<Manski's book>>
<<NUSAP>>
<<NFEM's thinking Josh?>>
This file is https://sites.google.com/site/epistemicunc/language. See also https://sites.google.com/site/riskcalcblog/programming-language. See alsohttps://sites.google.com/site/digitwindesign/liverpool/code/_draft_post#.
Josh Kaizer said:
I think this is a great idea and would make being at this meeting a priority.
At this point, I think I am more likely to listen and comment, then provide any useful input. I am still in the stage of trying to understand how to express uncertainty mathematically, and while I am happy with my progress, I feel like there is a lot that I don't know. That being said, given that we all deal with uncertainty in computation, I think this is an extremely needed and valuable effort, and I would support it in anyway I can.
Kari Sentz said:
This is awesome!
Josh Kaizer said:
I was thinking more, and I think the goal of this discussion should be a joint paper recommending a common language.
I talked to a mathematician once who said he was at a joint condense where they did something similar. They ended up with a paper that had like 30 names on it (it was hard to find a reviewer because their field was so small and ended up with going with a reviewer who was supposed to be at the conference, but got sick and couldn’t make it)
Please feel free to add further commentary here or below: