-
Notifications
You must be signed in to change notification settings - Fork 18
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
Positive definite corrections in get_u_cov
#359
Comments
Note - one other thing is that Julia Distributions is built on needing PD covariances, even though PSD is "OK"... |
Is the problem with the additive inflation just that |
OK no problem. Where I am at with this: The actual bug is that we get P Semi-D matrices |
EnsembleKalmanProcesses.jl/src/EnsembleKalmanProcess.jl
Line 612 in 0db3339
I often find that the additive inflation breaks due to non-positive definiteness when estimating covariances, also the
get_u_cov_final()
may not break the subspace property.We can resolve both of these issues by adding either
posdef_correct()
around theget_u_cov_XXX(ekp)
when estimating the covariances,posdef_correct()
within the definition ofget_u_cov()
andget_u_cov_prior
themselves. (so this change would apply more broadly)I prefer option 2, as i can't see why you wouldn't want positive definiteness. Though it would slow down the call to this function. However,
get_u_cov
is only called within the source code in the additive inflation step, and once per iteration for EKS & UKI. The function is also occasionally used by users to obtain diagnostics.NB posdef_correct currently lives in the
LearningRateSchedulers
file for some reasonThe text was updated successfully, but these errors were encountered: