From d25331df7d86d125809909c517c3923c37f9812d Mon Sep 17 00:00:00 2001 From: Martin Gutwin <29449917+twinGu@users.noreply.github.com> Date: Mon, 26 Aug 2019 19:12:43 +0200 Subject: [PATCH 1/3] replace frequency weights by analytic weights --- src/histogram.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/histogram.jl b/src/histogram.jl index a1fde7a..0368443 100644 --- a/src/histogram.jl +++ b/src/histogram.jl @@ -5,8 +5,8 @@ abstract type WeightedHistogramStat{T} <: WeightedOnlineStat{T} end split_candidates(o::WeightedHistogramStat) = midpoints(o) -Statistics.mean(o::WeightedHistogramStat) = mean(midpoints(o), fweights(counts(o))) -Statistics.var(o::WeightedHistogramStat) = var(midpoints(o), fweights(counts(o)); corrected=true) +Statistics.mean(o::WeightedHistogramStat) = mean(midpoints(o), aweights(counts(o))) +Statistics.var(o::WeightedHistogramStat) = var(midpoints(o), aweights(counts(o)); corrected=true) Statistics.std(o::WeightedHistogramStat) = sqrt(var(o)) Statistics.median(o::WeightedHistogramStat) = quantile(o, .5) @@ -65,7 +65,7 @@ end function Statistics.quantile(o::WeightedHist, p = [0, .25, .5, .75, 1]) x, y = midpoints(o), counts(o) inds = findall(x -> x != 0, y) - quantile(x[inds], fweights(y[inds]), p) + quantile(x[inds], aweights(y[inds]), p) end function area(o::WeightedHist) @@ -162,7 +162,7 @@ end function Statistics.quantile(o::WeightedAdaptiveHist, p = [0, .25, .5, .75, 1]) mids, counts = value(o) inds = findall(x->x!=0, counts) # filter out zero weights - quantile(mids[inds], fweights(counts[inds]), p) + quantile(mids[inds], aweights(counts[inds]), p) end function weightsum(o::WeightedAdaptiveHist) From d5ad6328047d37bcbb880a3f09414f891634f74a Mon Sep 17 00:00:00 2001 From: Martin Gutwin <29449917+twinGu@users.noreply.github.com> Date: Mon, 26 Aug 2019 19:45:00 +0200 Subject: [PATCH 2/3] loading aweights in interface.jl --- src/interface.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/interface.jl b/src/interface.jl index 199319c..6ff01ad 100644 --- a/src/interface.jl +++ b/src/interface.jl @@ -1,5 +1,5 @@ abstract type WeightedOnlineStat{T} <: OnlineStat{T} end -using OnlineStats: fweights +using OnlineStats: fweights, aweights meanweight(o::WeightedOnlineStat) = o.W weightsum(o::WeightedOnlineStat) = meanweight(o) * nobs(o) From fcd9346bb6a2e378c85f919038bde540c184343a Mon Sep 17 00:00:00 2001 From: Martin Gutwin Date: Tue, 27 Aug 2019 09:38:50 +0200 Subject: [PATCH 3/3] fixing wrong import of aweights --- src/WeightedOnlineStats.jl | 2 +- src/interface.jl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/WeightedOnlineStats.jl b/src/WeightedOnlineStats.jl index a6ae424..3d52db4 100644 --- a/src/WeightedOnlineStats.jl +++ b/src/WeightedOnlineStats.jl @@ -22,7 +22,7 @@ import Statistics import Statistics: mean, var, std, cov, cor, median, quantile import LinearAlgebra import LinearAlgebra: Hermitian, lmul!, rmul!, Diagonal, diag -import StatsBase: midpoints +import StatsBase: midpoints, aweights include("interface.jl") include("sum.jl") diff --git a/src/interface.jl b/src/interface.jl index 6ff01ad..199319c 100644 --- a/src/interface.jl +++ b/src/interface.jl @@ -1,5 +1,5 @@ abstract type WeightedOnlineStat{T} <: OnlineStat{T} end -using OnlineStats: fweights, aweights +using OnlineStats: fweights meanweight(o::WeightedOnlineStat) = o.W weightsum(o::WeightedOnlineStat) = meanweight(o) * nobs(o)