QuasiMonteCarlo.jl icon indicating copy to clipboard operation
QuasiMonteCarlo.jl copied to clipboard

Estimators and Statistics for RQMC Integraiton

Open ParadaCarleton opened this issue 1 year ago • 4 comments

Using this issue to keep track of estimators we may want to implement.

ParadaCarleton avatar Sep 10 '23 03:09 ParadaCarleton

I don't know about Control variate and control functional. However, I can help on the first two boxes! In fact, we just release v3 of our work The Robust Randomized Quasi Monte Carlo method, applications to integrating singular functions. We basically combine Robust estimator (not just median of mean). We discuss briefly the Pan, Owen paper you linked in Section 5.

  • We review confidence intervals and standard errors (for Owen scrambling). Standard errors have different (asymptotic) scaling depending on the regularity of integrand $f$. What do you have in mind exactly ? List all asymptotic results for variance for various (R)QMC methods?
  • I don't think this QMC package should host robust estimator, but only focus on QMC. In fact, I developed the package RobustMeans.jl that does exactly that! However, we could develop tutorials to show how to use the combination of Robust + QMC. It is more or less done on the repo of the paper, e.g., this notebook. It might not be super pedagogical as of right now.

dmetivie avatar Sep 19 '23 11:09 dmetivie

  • I don't think this QMC package should host robust estimator, but only focus on QMC. In fact, I developed the package RobustMeans.jl that does exactly that!

Maybe we should create a separate package called something like QMCIntegrals.jl? It could include things like robust RQMC and control variates.

Control variates just means reducing the variance by using a known quantity x_true to adjust our estimate of the outcome y. We do a linear regression of x_observed on y_observed to get a coefficient c; then we adjust our estimate of f(x) by controlling for the error in x, i.e. x_observed - x_true, which lets us subtract off the error in our estimate of y caused by the error in our estimate of x.

It works the same with RQMC, we just need to use the correlation calculated by using the independent batches of x .

ParadaCarleton avatar Sep 19 '23 21:09 ParadaCarleton

Maybe we should create a separate package called something like QMCIntegrals.jl? It could include things like robust RQMC and control variates.

Good idea! I actually prefer having a separate package for people to implement fancy control variate or other methods rather than a big "all in one" package (like qmcpy). I believe it more Julian way to do ? We could also include discrepancy measures and the istmsnet that we defined in the runtest.jl file.

I don't have currently much time for this new package, as I have to move to other projects for now! About the name here is my try QuasiMonteCarloTools.jl ?

dmetivie avatar Sep 20 '23 12:09 dmetivie

Maybe we should create a separate package called something like QMCIntegrals.jl? It could include things like robust RQMC and control variates.

That would be great to see. Make sure it has an Integrals.jl hook so that it matches the other algorithms and is easy to swap to. I've been wanting a pure Julia higher dimensional integral method so that way when we are using weird number types and such it's easy to swap to it.

ChrisRackauckas avatar Sep 30 '23 23:09 ChrisRackauckas