-
Notifications
You must be signed in to change notification settings - Fork 137
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discussion regarding errorVals
-absoluteError
-relativeError
#741
Comments
I thought I'd discuss both here before making a PR. |
Very good point that did not pop up before. Marine csem might indeed scale badly. Throwing an error is the better choice. However, I disagree with the error propagation. The relative and absolute errors are not independent error sources, but simple models to estimate errors, e.g. from reciprocal analysis etc. which is common practise and simple of relative or absolute errors are considered are the main source (and small values to catch near zero data). A more rigorous error class could help supporting and analysing data and error statistics. |
I'm OK to agree on disagreeing regarding noise. In this case, an error class might be indeed good, or at least not deprecating |
Well, the reason for deprecating |
I totally agree with your suggestions and implemented them (171e47e)
|
Great! |
Data error computation
This is partly an issue (problematic default behaviour), and partly a discussion (error calculation).
Issue: Problematic default behaviour
In
pygimli.frameworks.Inversion().run()
andpygimli.frameworks.MarquardtInversion().run()
the parametererrorVals
is subtly deprecated in favour ofabsoluteError
andrelativeError
.If
errorVals
is not given, it is calculated via:In some methods, such as marine CSEM, your data can have very small values, in the range of 1e-10 and less. This will result in
np.allclose(absErr, 0) = True
and hence give it arelErr = 0.01
, which is useless (because the defaultatol
ofnp.allclose
is1e-08
).What about either:
or (my preference), not defaulting at all, but raise an error,
Discussion: Error calculation
If the user provides absolute and/or relative errors, the error values are computed as follows
However, given error propagation, I think it should be
This will mostly not have a big impact at all, only in the zone where the data values approach the noise level.
The text was updated successfully, but these errors were encountered: