感兴趣的变量以类(单元格)概率呈多项式。此外,这些类被赋予了自然顺序。p1,p2,...,p10
的最小“预测区间”90%
p = [p1, ..., p10] # empirical proportions summing to 1
l = 1
u = length(p)
cover = 0.9
pmass = sum(p)
while (pmass - p[l] >= cover) OR (pmass - p[u] >= cover)
if p[l] <= p[u]
pmass = pmass - p[l]
l = l + 1
else # p[l] > p[u]
pmass = pmass - p[u]
u = u - 1
end
end
分位数估计的不确定性(例如,方差、置信度)的非参数测量确实可以通过标准引导方法获得。l,u
第二种方法:直接“引导搜索”
下面我提供了可运行的 Matlab 代码,该代码直接从引导的角度来处理这个问题(代码不是最佳矢量化的)。
%% set DGP parameters:
p = [0.35, 0.8, 3.5, 2.2, 0.3, 2.9, 4.3, 2.1, 0.4, 0.2];
p = p./sum(p); % true probabilities
ncat = numel(p);
cats = 1:ncat;
% draw a sample:
rng(1703) % set seed
nsamp = 10^3;
samp = datasample(1:10, nsamp, 'Weights', p, 'Replace', true);
检查这是否有意义。
psamp = mean(bsxfun(@eq, samp', cats)); % sample probabilities
bar([p(:), psamp(:)])

运行引导模拟。
%% bootstrap simulation:
rng(240947)
nboots = 2*10^3;
cover = 0.9;
conf = 0.95;
tic
Pmat = nan(nboots, ncat, ncat);
for b = 1:nboots
boot = datasample(samp, nsamp, 'Replace', true); % draw bootstrap sample
pboot = mean(bsxfun(@eq, boot', cats));
for l = 1:ncat
for u = l:ncat
Pmat(b, l, u) = sum(pboot(l:u));
end
end
end
toc % Elapsed time is 0.442703 seconds.
从每个 bootstrap 过滤器复制包含至少 ,并计算这些区间的(频率论者)置信度估计。[l,u]90%
conf_mat = squeeze(mean(Pmat >= cover, 1))
0 0 0 0 0 0 0 1.0000 1.0000 1.0000
0 0 0 0 0 0 0 1.0000 1.0000 1.0000
0 0 0 0 0 0 0 0.3360 0.9770 1.0000
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
选择那些满足置信度要求的。
[L, U] = find(conf_mat >= conf);
[L, U]
1 8
2 8
1 9
2 9
3 9
1 10
2 10
3 10
说服自己上面的引导方法是有效的
Bootstrap 样本旨在成为我们想要的东西的替代品,但不是,即:从真正的基础人群中独立抽取新的、独立的数据(简称:新数据)。
在我给出的示例中,我们知道数据生成过程(DGP),因此我们可以“作弊”并将与引导重新采样有关的代码行替换为来自实际 DGP 的新的、独立的绘图。
newsamp = datasample(cats, nsamp, 'Weights', p, 'Replace', true);
pnew = mean(bsxfun(@eq, newsamp', cats));
然后我们可以通过将引导方法与理想进行比较来验证它。以下是结果。
来自新的独立数据的置信矩阵得出:
0 0 0 0 0 0 0 1.0000 1.0000 1.0000
0 0 0 0 0 0 0 1.0000 1.0000 1.0000
0 0 0 0 0 0 0 0.4075 0.9925 1.0000
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
相应的95%-置信度下限和上限:
1 8
2 8
1 9
2 9
3 9
1 10
2 10
3 10
我们发现置信度矩阵非常一致并且边界相同......因此验证了引导方法。