我试图找到双变量正态分布的cdf。我正在使用mvncdf函数来计算双变量正态分布的cdf。
双变量正态分布:
当$ \ rho $为0时,matlab中的mvncdf会出错。
它说SIGMA必须是一个方形,对称,正定矩阵。
我知道当$ \ rho $为0时,分发会减少到更简单的分配,但我该如何实现呢?它是否使用normcdf?
如何解决这个问题?
根据此图片,
我只需要生成两个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);
答案 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肯定会在右侧评估结果。