Como faço para traçar intervalos de confiança em MATLAB?
-
05-07-2019 - |
Pergunta
Eu quero traçar alguns gráficos de intervalo de confiança em MATLAB, mas eu não tenho nenhuma idéia a todos como fazê-lo. Eu tenho os dados em um arquivo .xls.
Alguém pode me dar uma dica, ou faz comandos Alguém sabe para traçar CIs?
Solução
Eu não tenho certeza que você entende por confiança gráfico intervalos, mas este é um exemplo de como traçar um dois lados IC 95% de uma distribuição normal:
alpha = 0.05; % significance level
mu = 10; % mean
sigma = 2; % std
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);
plot(x,y)
xlo = [x(x<=cutoff1) cutoff1];
ylo = [y(x<=cutoff1) 0];
patch(xlo, ylo, 'b')
xhi = [cutoff2 x(x>=cutoff2)];
yhi = [0 y(x>=cutoff2)];
patch(xhi, yhi, 'b')
Outras dicas
Depois de ler vários tópicos, aqui está a minha tentativa.
% Get some random data
x = linspace(0.3, pi-0.3, 10);
Data = sin(x) + randn(1, 10)/10;
Data_sd = 0.1+randn(1,10)/30;
% prepare it for the fill function
x_ax = 1:10;
X_plot = [x_ax, fliplr(x_ax)];
Y_plot = [Data-1.96.*Data_sd, fliplr(Data+1.96.*Data_sd)];
% plot a line + confidence bands
hold on
plot(x_ax, Data, 'blue', 'LineWidth', 1.2)
fill(X_plot, Y_plot , 1,....
'facecolor','blue', ...
'edgecolor','none', ...
'facealpha', 0.3);
hold off
Na maior parte com base nesta pergunta: plotagem com transparência
Veja por exemplo estes m-arquivos em Matlab File Exchange:
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow