置信区间(Confidence Interval)
转载
一直做着的不确定性分析,很多时候会涉及到置信区间的概念,但一直没能有个清晰的认识,今天终于从网上查资料,具体核实了置信区间的含义。
95%置信区间(Confidence Interval,CI):当给出某个估计值的95%置信区间为【a,b】时,可以理解为我们有95%的信心(Confidence)可以说样本的平均值介于a到b之间,而发生错误的概率为5%。
有时也会说90%,99%的置信区间,具体含义可参考95%置信区间。
置信区间具体计算方式为:
(1)知道样本均值(M)和标准差(ST)时:
置信区间下限:a=M - n*ST; 置信区间上限:a=M + n*ST;
当求取90% 置信区间时 n=1.645
当求取95% 置信区间时 n=1.96
当求取99% 置信区间时 n=2.576
(2)通过利用蒙特卡洛(Monte Carlo)方法获得估计值分布时:
先对所有估计值样本进行排序, 置信区间下限:a为排序后第lower%百分位值; 置信区间上限:b为排序后第upper%百分位值.
当求取90% 置信区间时 lower=5 upper=95;
当求取95% 置信区间时 lower=2.5 upper=97.5
当求取99% 置信区间时 lower=0.5 upper=99.5
当样本足够大时,(1)和(2)获取的结果基本相等。
参考资料:http://140.116.72.80/~smallko/ns2/confidence_interval.htm
附刚准备MATLAB 求取置信区间源码:
……………………………………………………………………………………………………………………
%%% 置信区间的定义90%,95%,99%
clear
clc
sampledata=randn(10000,1);
a=0.01; %0.01 对应99%置信区间, 0.05 对应95%置信区间 ,0.1 对应90%置信区间
if a==0.01
n=2.576; % 2.576 对应99%置信区间, 1.96 对应95%置信区间 ,1.645 对应90%置信区间
elseif a==0.05
n=1.96;
elseif a==0.1
n=1.645;
end
%计算对应百分位值
meana=mean(sampledata);
stda=std(sampledata);
sorta=sort(sampledata); %对数据从小到大排序
leng=size(sampledata,1);
CIa(1:2,1)=[sorta(leng*a/2);sorta(leng*(1-a/2))];
%利用公式计算置信区间
CIf(1:2,1)=[meana-n*stda;meana+n*stda];