2016-11-17 49 views
0

我試圖從數據的平均值和標準偏差(std)繪製置信區間。這是我寫的一段代碼:繪製從均值和標準差的置信區間

MeanA=1.876; %mean of A 
STDA=0.018; % std of A 
MeanB=1.821; 
STDB=0.039; 

MeanC=1.735; 
STDC=0.023; 
MeanD=1.667; 
STDD=0.039; 
Y = [MeanA MeanB ; 
     MeanC MeanD ];  
errY= [STDA STDB; 
     STDC STDC ]; 

如果我繪製正態分佈那麼他們cofidence inteval似乎重疊

alpha = 0.05;   % significance level 


for tt=1:length(Y) 
figure 
mu = Y(tt,1);    % mean 
sigma = errY(tt,1); 
cutoff1n = norminv(alpha, mu, sigma); 
cutoff2n = norminv(1-alpha, mu, sigma); 
xn = [linspace(mu-4*sigma,cutoff1n), ... 
linspace(cutoff1n,cutoff2n), ... 
linspace(cutoff2n,mu+4*sigma)]; 
yn = normpdf(xn, mu, sigma); 
plot(xn,yn) 
mu = Y(tt,2);    % mean 
sigma = errY(tt,2); 
cutoff1 = norminv(alpha, mu, sigma); 
cutoff2 = norminv(1-alpha, mu, sigma); 
x = [linspace(mu-4*sigma,cutoff1), ... 
linspace(cutoff1,cutoff2), ... 
linspace(cutoff2,mu+4*sigma)]; 
y = normpdf(x, mu, sigma); 
hold on, plot(x,y) 
plot(x,y,'r-',xn,yn,'g-' , 'LineWidth',3) 
set(gca,'Fontsize', 32) 
if tt==1 
hleg1=legend('A', 'B'); 
title('study1') 
elseif tt==2 
hleg1=legend('C', 'D'); 
title('Study2') 
end 
set(hleg1,'Location','NorthEastoutside') 
set(gca,'Fontsize',22) 
xlo = [x(x<=cutoff1) cutoff1]; 
ylo = [y(x<=cutoff1) 0]; 
patch(xlo, ylo, 'r') 
xhi = [cutoff2 x(x>=cutoff2)]; 
yhi = [0 y(x>=cutoff2)]; 
patch(xhi, yhi, 'r') 
xlon = [xn(xn<=cutoff1n) cutoff1n]; 
ylon = [yn(xn<=cutoff1n) 0]; 
    patch(xlon, ylon, 'g') 
    xhin = [cutoff2n xn(xn>=cutoff2n)]; 
    yhin = [0 yn(xn>=cutoff2n)]; 
    patch(xhin, yhin, 'g') 
end 

我obtined地塊那裏是在置信區間重疊(CI) 。

enter image description here

現在我需要繪製CI的形式;

enter image description here

別人的幫助可以繪製CI各地平均

%%

我在下列方式計算詞:

SE2=errY/sqrt(10); 
    CI2n=Y-1.96*(SE2); 
    CI2p=Y+1.96*(SE2); 

請告訴我們,如果它的正確方法和如果是的話,我該如何繪製它們。由於

回答

0

的平均mu當標準偏差sigma是已知的,樣品量n

CI = mu +/- 1.96*sigma/sqrt(n) 
mu = Y

所以和sigma = errY,你的95%的置信的計算給出了95%置信區間間隔對於n = 10的樣本大小是正確的。

要以誤差條繪製這些值,使用MATLAB的errorbar功能(documentation)請嘗試以下操作:

n = 10; 
SE2=errY/sqrt(n); 
for i = 1:size(SE2,1) 
    figure 
    y = Y(i,:); 
    x = 1:length(y); 
    e = 1.96*SE2(i,:); 
    errorbar(1:length(y),y,e,e,'k.','markersize',18); 
    if i == 1 
     c = ['A';'B']; 
    elseif i == 2 
     c = ['C';'D']; 
    end 
    set(gca,'xtick',x,'xticklabels',c) 
end 

產生this image(我想把圖像內聯,但缺乏足夠的代表)。

您可能會注意到置信區間似乎沒有重疊。但是,我們可以通過設置n = 1來獲得密度圖中的結果,這意味着CI = mu +/- 1.96*sigma。我會張貼第二張圖片,但我需要更多的代表!