【问题标题】:How do I plot confidence intervals in MATLAB?如何在 MATLAB 中绘制置信区间?
【发布时间】:2023-04-07 02:46:01
【问题描述】:

我想在 MATLAB 中绘制一些置信区间图,但我完全不知道该怎么做。我有一个 .xls 文件中的数据。

谁能给我一个提示,或者有人知道绘制 CI 的命令吗?

【问题讨论】:

标签: matlab plot confidence-interval


【解决方案1】:

在阅读了许多线程之后,这是我的尝试。

% 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 

主要基于这个问题:Plotting with transparency

【讨论】:

    【解决方案2】:

    我不确定您所说的置信区间图是什么意思,但这是一个如何绘制正态分布的两侧 95% CI 的示例:

    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')
    

    【讨论】:

    【解决方案3】:

    参见例如Matlab File Exchange 上的这些 m 文件:

    【讨论】:

    • 感谢 rcs!因为我是matlab的初学者,你能告诉我如何运行这个m文件吗?因为我可以看到一个错误?我是否必须指定一些输入参数或文件才能绘制?
    最近更新 更多