Skip to content
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

Negative constant kernel #125

Open
arodland opened this issue Jan 15, 2020 · 5 comments
Open

Negative constant kernel #125

arodland opened this issue Jan 15, 2020 · 5 comments

Comments

@arodland
Copy link

Considering that george supports the CosineKernel it probably can cope with negative covariances. My model instead uses an ExpSine2Kernel offset by a negative constant. But since ConstantKernel is parameterized by the log of the constant, it's impossible to specify a negative constant. I tried using -1 * ConstantKernel(abs_value) but that doesn't work either, probably since the * overload just constructs a ConstantKernel anyway.

@arodland
Copy link
Author

arodland@dae7293 seems to work fine although I'm not sure if it's the best approach.

@stefanocovino
Copy link

Did you have any specific comment? I have exactly the same problem... :) essentially how to model processes with a (partially, at least) negative ACF.

Stefano

@arodland
Copy link
Author

@stefanocovino my branch is working 100% fine for me. Just hoping for an opinion from @dfm .

@stefanocovino
Copy link

My first, naive, feeling is only that mathematically it could work, however by itself a negative kernel is probably not a kernel, at least according to Eq. 4.2 in Rasmussen and Williams. O course if you are just summing it to some other kernel what counts is the total sum that might well satisfy Eq. 4.2, possibly limiting the value of the constant. My 2 cents.

Bye,
Stefano

@arodland
Copy link
Author

@stefanocovino yes, you're absolutely right, a negative constant is certainly not a kernel by that definition, but I don't care too much for terminological purity, and positive-semi-definiteness does get enforced on the final result when the solver tries to compute with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants