When we fit HSC + HST data, the noise model is incorrect because the pixels are correlated in HST coadds. In essence, we’re overfitting the HST data.
We could kill the correlation by whitening the noise, but that introduces extra noise. The best option is to modify the log likelihood function of Observation with a proper multivariate Gaussian with a given covariance matrix. The problem is: that matrix is large, and to good approximation banded. But autograd (or jax) don’t support sparse matrices (yet). The computation is identical to convolution with our apply_filter method, which we have already put into the autodiff path. So I suggest that we create a subclass CorrelatedObservation, where we overwrite the constructor with one that replaced weights by covariance, and that reimplements get_log_likelihood and log_norm for proper correlated signals.
When we fit HSC + HST data, the noise model is incorrect because the pixels are correlated in HST coadds. In essence, we’re overfitting the HST data.
We could kill the correlation by whitening the noise, but that introduces extra noise. The best option is to modify the log likelihood function of
Observation
with a proper multivariate Gaussian with a given covariance matrix. The problem is: that matrix is large, and to good approximation banded. Butautograd
(orjax
) don’t support sparse matrices (yet). The computation is identical to convolution with ourapply_filter
method, which we have already put into the autodiff path. So I suggest that we create a subclassCorrelatedObservation
, where we overwrite the constructor with one that replacedweights
bycovariance
, and that reimplementsget_log_likelihood
andlog_norm
for proper correlated signals.