JuliaPhysics / Measurements.jl

Error propagation calculator and library for physical measurements. It supports real and complex numbers with uncertainty, arbitrary precision calculations, operations with arrays, and numerical integration.

Home Page:https://juliaphysics.github.io/Measurements.jl/stable/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Asymmetric errors

BeastyBlacksmith opened this issue · comments

Are you planning to support asymmetric errors like 2.0 + 0.1 - 0.05?

To be honest, I've never got how this works within the linear error propagation framework, which this package uses. Is the propagation rule the same as with symmetric errors, but using different sigmas on each side? Do symmetric errors break the assumption that errors are normally distributed?

You are right, it does. Seems like MC is the way to go then.
I found this paper: https://iopscience.iop.org/article/10.1088/1681-7575/ab2a8d/pdf

Yeah, this looks more something for MonteCarloMeasurements.jl than this package.

The Particle Data Group Review uses asymmetric errors for many of its consensus particle data values (e.g. quark masses). These are in turn used by packages like Corpuscles.jl, which currently implements its own MeasuredValue struct and methods. This works in some cases, but requires code duplication, and doesn't play nicely with other packages.

Using MonteCarloMeasurements.jl for that package would be too heavy-handed, and it's not clear how that would be done without knowing the underlying distribution that the uncertainties come from.

It would be reasonable to expect functions like stdscore to error for measurements with asymmetric uncertainties, where the assumption of normality breaks down.

On the other hand, given that so much of this package's structure assumes normally distributed errors, perhaps it's best not to make such a big change.