在 Julia 中引导加权函数

Bootstraping weighted functions in Julia

我正在尝试使用 Bootstrap.jl 函数来获取加权函数(例如加权中位数)的标准误差 (SE)。

查看下面的 Bootstrap.bootstrap 代码以获得未加权中位数的 SE。

using StatsBase, DataFrames, Bootstrap

v = collect(1:1:20)

bootstrap(median, v, BasicSampling(100))

我现在需要将第二个参数传递给上面的 median 以获得加权 median 的 SE。在 bootstrap 函数之外,这看起来像:

w = collect(0.1:0.1:2)
median(v, Weights(w))          

如何将第二个参数传递给 bootstrap 内的 median 函数以包含权重?请注意,bootstrap 重采样应应用于两个向量,为它们绘制相同的索引。

您可以将包含两个向量的 DataFrame 传递给 bootstrap 的第二个参数。然后编写一个匿名函数来使用 median 中的每一列。例如

df = DataFrame(v = collect(1:1:20),
          w = collect(0.1:0.1:2))

bootstrap(d -> median(d[!,:v], Weights(d[!,:w])), df, BasicSampling(100))