matlab - 计算平均值周围95%的区间

时间:2014-07-23 10:35:50

标签: matlab statistics confidence-interval

如果我有一个月平均值的矢量,如

aa = [1,2,3,2,1,3,5,3,4,8,9,7;...
    11,12,3,21,1,3,15,3,4,8,19,7;...
    21,2,3,2,1,23,5,3,34,84,9,7]';

其中每列指的是来自不同位置的月平均值,每行代表一年中的月份。我可以将所有网站的平均值计算为:

mean_a = nanmean(aa,2);

因此可以将这些的平均值绘制为:

plot(1:12, mean_a);

我现在如何计算这些平均值周围的95%置信区间?

任何建议都将受到赞赏。

我的尝试:

假设正常分布:

aa = [1,2,3,2,1,3,5,3,4,8,9,7;...
    11,12,3,21,1,3,15,3,4,8,19,7;...
    21,2,3,2,1,23,5,3,34,84,9,7]';

mean_a = nanmean(aa,2);
sem = (nanstd(aa')./sqrt(size(aa,2))).*1.96;
errorbar(1:12,mean_a,sem);

2 个答案:

答案 0 :(得分:3)

使用quantile计算分位数:或者如果您知道分布,请将标准差乘以正确的分位数值。

答案 1 :(得分:1)

我知道这是一个老问题,但是对于记录,here is a function called confidence_intervals()将为数据集提供任何置信区间,并且可以与Matlab中的errorbar() function一起使用。在给定可选参数的情况下,也可以使用它来查找log-normal方差的置信区间。

如您的示例所示,代码变为:

map.getStyle().layers