1

我正在尝试为一组随机分布且向右偏斜的数据创建置信区间。冲浪时,我发现了一种非常粗鲁的方法,即对上限 CL 使用 97.5% 的百分位数(我的数据),为你的下限 CL 使用 2.5% 的百分位数。不幸的是,我需要一个更复杂的方法!

然后我发现了bootstrap,确切地说是 MATLAB bootci 函数,但我很难理解如何正确使用它。

假设这M是包含我的数据(19x100)的矩阵,假设:

Mean = mean(M,2);
StdDev = sqrt(var(M'))';

如何使用 bootci为向量的每一行计算不对称CI?Mean

注意:之前,我以这种非常错误的方式计算 CI:,真Mean +/- 2 * StdDev丢脸!

4

1 回答 1

1

假设您有一个100x19数据集。每一列都有不同的分布。我们将选择对数正态分布,以便它们向右倾斜。

means  = repmat(log(1:19), 100, 1);
stdevs = ones(100, 19);
X = lognrnd(means, stdevs);

请注意,每一都来自相同的分布,并且是单独的观察值。默认情况下,MATLAB 中的大多数函数都对行进行操作,因此最好始终以这种方式保存数据。

bootci您可以使用该函数计算均值的引导置信区间。

ci = bootci(1000, @mean, X);

这会对您的数据进行 1000 次重采样,计算每次重采样的平均值,然后取 2.5% 和 97.5% 的分位数。为了证明它是关于均值的不对称置信区间,我们可以绘制每列的均值和置信区间

plot(mean(X), 'r')
hold on
plot(ci')

在此处输入图像描述

于 2013-10-30T15:24:37.897 回答