Wie plotten ich Konfidenzintervall in MATLAB?
-
05-07-2019 - |
Frage
Ich möchte einige Konfidenzintervall Graphen in MATLAB zeichnen, aber ich habe keine Ahnung, überhaupt, wie es geht. Ich habe die Daten in einer .xls-Datei.
Kann mir jemand einen Tip geben, oder jemand kennt Befehle für CIs Plotten?
Lösung
Ich bin mir nicht sicher, was Sie Konfidenzintervall Graph gemeint, aber dies ist ein Beispiel dafür, wie ein zweiseitiger 95% CI einer Normalverteilung zu zeichnen:
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')
Andere Tipps
Nach zahlreichen Threads zu lesen, hier ist mein Versuch.
% 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
Meistens auf diese Frage zugrunde: Plotten mit Transparenz
Siehe z.B. Diese m-Dateien auf Matlab File Exchange:
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow