Hierarchical Nearest Neighbor Gaussian Process

I am currently running a Hierarchical Gaussian Process to regularize a linear model. A Kruscke diagram:

But, I am running into computational constraints with a full GP and am looking into ways to approximate the full GP(I do not have Kronecker structure and inducing points don’t make sense for my problem.). I came across NNGP and this github attempt at recreating in pymc.

@bwengals has NNGP been implemented in pymc3?

Unfortunately no, that implementation never was merged in. I’ve seen a Stan implementation of it, so it’s definitely feasible to implement in PyMC3.

1 Like

Awesome. I will take a look. Probably out of my league but will check how far he got.

1 Like

@bwengals I think this is out of my league, especially given I am trying to defend my masters in a month. And don’t have my model quite dialed yet! If you, me or anyone gets to it I’d be keen on using it to refine my model so I can actually estimate kernel hyperparmaeter posteriors for a journal paper after I defend. Thanks so much for all the work you’ve put in on the GP module!

@bwengals the more I read/play with this, the more intrigued I am. It looks like @aasensioramos has it mostly coded in theano, though I am still working through the details. Even If I get working I don’t think I’ll be able to merge with pymc under the hood, but I am going to try to implement the sparse K_inv as a surface function in my model. It sure seems like a really useful trick for larger datasets typical of geospatial problems.

1 Like

Yeah it did look really interesting. I think I’ll have to take another look at NNGP. Please let us know how it turns out for you!