在一张图中绘制置信区间线,均值在里面

Plotting confidence intervals-lines in one graph with means inside

我需要使用 MATLAB 在一张图中绘制 12 个置信区间,每个区间内都标有均值。我该怎么做?您可以在下图中找到一个示例:

我正在使用下面的代码来计算置信区间:

S=10; E=9; sigma=0.1; r=0.06; T=1;
Dt=1e-3; N=T/Dt; M=2^17;

V = zeros(M,1);
for i=1:M
    Sfinal = S*exp((r-0.5*sigma^2)*T+sigma*sqrt(T)*randn);
    V(i)=exp(-r*T)*max(Sfinal-E,0);
end
aM=mean(V); bM=std(V);
conf=[aM-1.96*bM/sqrt(M),aM+1.96*bM/sqrt(M)]

首先,除了你的循环,你可以只写:

V = exp(-r*T)*max(S*exp((r-0.5*sigma^2)*T+sigma*sqrt(T)*randn(M,1))-E,0);

randn(M,1) 一次创建所有 M 个随机值,并且因为所有其他值都是标量,您可以通过简单地将它放在 V 的公式中来向量化您的计算(这方式,也没有必要用零初始化 V)。

绘制误差线使用errorbar:

errorbar(aM,conf(1),conf(2))