QuasiMonteCarlo.jl
QuasiMonteCarlo.jl copied to clipboard
Estimators and Statistics for RQMC Integraiton
Using this issue to keep track of estimators we may want to implement.
- [ ] Confidence intervals and standard errors for RQMC sequences
- [ ] Median-of-means estimators (and perhaps other robust mean estimators?)
- [ ] Control variates
- [ ] Maybe control functionals (but I have no idea what those do)
- [ ] ?
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.
- 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
.
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 ?
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.