could anyone enlighten me as to what
setObservationsError method in the calibration context does ? i would like to calibrate a model whose observations are tainted with measurement error, and i do have a way for estimating such a noise. i don’t understand why a method for setting the error on the observations should be made available in the
CalibrationResult class, instead of the
CalibrationAlgorithm class ?
All Result objects are constructed by the
run() method of the corresponding Algorithm class (here XxxCalibration). To set the attributes of the Result object, the Algorithm class may use the accessors provided by the Result class (although the values of the attributes are usually passed as arguments to the constructor of the Result).
When you call the
run() method of the Algorithm, you get a fully computed Result and have no reason to modify its attributes. If you do, it will no longer be the result of the algorithm, but what you decide instead.
However, if you want to code your own
SanaaCalibration class, you will have the responsibility to build the
CalibrationResult::setObservationError may then be useful to you.
Now, here is how the calibration classes handle observation errors:
NonLinearLeastSquaresCalibration assume the measurement errors of the observations are a Gaussian vector with null mean. They estimate its covariance matrix.
GaussianNonLinearCalibration assume the measurement errors of the observations are a Gaussian vector with null mean and known covariance matrix. The covariance matrix is passed by the user to the constructor as the errorCovariance parameter. In your case, I gather that the measurement errors are independent and their standard deviation is known to you, so you could pass a diagonal
In any case, the (multivariate normal) distribution of this random vector is given by the
thanks a lot joseph, i am going to look into it, i’ve had completely overlooked the errorCovariance méthod you are mentionning and thought that i had to use MCMC methods in order to factor in measurement errors
it seems to be exactly what i am looking for, especially since i have correlated errors