当$ \ rho $为0时,mvncdf会出错

时间:2014-04-05 16:22:47

标签: matlab distribution

我试图找到双变量正态分布的cdf。我正在使用mvncdf函数来计算双变量正态分布的cdf。

双变量正态分布:enter image description here

当$ \ rho $为0时,matlab中的mvncdf会出错。

它说SIGMA必须是一个方形,对称,正定矩阵。

我知道当$ \ rho $为0时,分发会减少到更简单的分配,但我该如何实现呢?它是否使用normcdf?

如何解决这个问题?

根据此图片,enter image description here

我只需要生成两个cdfs并将它们一起加倍?

这就是我现在正在做的事情:

term1 = normcdf(-norminv(K1/(1-R)),0,1)*normcdf(C,0,1);
term2 = normcdf(-norminv(K2/(1-R)),0,1)*normcdf(C,0,1);

cov矩阵代码:

a=sqrt(rho);
cov_mat = [1 -sqrt(1-a^2);-sqrt(1-a^2) 1];
term1 = mvncdf([-norminv(K1/(1-R)) C], [0 0], cov_mat);
term2 = mvncdf([-norminv(K2/(1-R)) C], [0 0], cov_mat); 

1 个答案:

答案 0 :(得分:1)

如果相关性为零,则只生成两个独立法线的结果。

你所写的是密度,而不是CDF。对于法线,CDF没有封闭形式的公式。然而,联合CDF P {X 1 < = x 1 & X 2 < = x 2 } = P {X 1 < = x 1 } * P { X 2 < = x 2 }当它们独立时,Matlab肯定会在右侧评估结果。