- Logarithmic Binning
- Size complexity:
- Time complexity:
- Size complexity:
- Full Binning (all bin sizes that work out evenly)
Statistical resampling methods:
- Jackknife resampling.
As per usual, you can install the registered package with
] add BinningAnalysis
B = LogBinner() # As per default, 2^32-1 ≈ 4 billion values can be added to the binner. This value can be # tuned with the `capacity` keyword argument. push!(B, 4.2) append!(B, [1,2,3]) # multiple values at once x = mean(B) Δx = std_error(B) # standard error of the mean tau_x = tau(B) # autocorrelation time # Alternatively you can provide a time series already in the constructor x = rand(100) B = LogBinner(x) Δx = std_error(B)
B = FullBinner() # <: AbstractVector (lightweight wrapper) push!(B, 2.0) append!(B, [1,2,3]) x = mean(B) Δx = std_error(B) # standard error of the mean # Alternatively you can provide a time series already in the constructor x = rand(100) F = FullBinner(x) push!(F, 2.0) # will modify x as F is just a thin wrapper Δx = std_error(F)
x = rand(100) xmean, Δx = jackknife(identity, x) # jackknife estimates for mean and standard error of <x> # in this example # isapprox(Δx, std(x)/sqrt(length(x))) == true x_inv_mean, Δx_inv = jackknife(identity, 1 ./ x) # # jackknife estimates for mean and standard error of <1/x> # Multiple time series x = rand(100) y = rand(100) # The inputs of the function `g` must be provided as arguments in `jackknife`. g(x, y, xy) = x * y / xy # <x><y> / <xy> g_mean, Δg = jackknife(g, x, y, x .* y)
If you want to calculate the standard error of an existing time series there you can use the convenience wrapper
std_error(x[; method=:log]). It takes a keyword argument
method, which can be
ts = rand(1000); std_error(ts) # default is logarithmic binning std_error(ts, method=:full)
All statistical tools should work with number-like (
<: Number) and array-like (
<: AbstractArray) elements. Regarding complex numbers, we follow base Julia and define
var(x) = var(real(x)) + var(imag(x)).
If you observe unexpected behavior please file an issue!
- J. Gubernatis, N. Kawashima, and P. Werner, Quantum Monte Carlo Methods: Algorithms for Lattice Models, Book (2016)
- V. Ambegaokar, and M. Troyer, Estimating errors reliably in Monte Carlo simulations of the Ehrenfest model, American Journal of Physics 78, 150 (2010)