我是MatLab/Octave的新手,我正在努力解决一个我想要解决的问题。
一个投资组合由1000笔贷款组成,每笔贷款的金额为10,000美元,每个贷款的违约概率为0.1。计算50笔贷款违约的概率,以及预期损失和投资组合的方差。使用Matlab/Octave模拟上面的投资组合。
所以我计算了概率(1,000!/50!950!)(1/10)^50(9/10)^950 E(Z)=10,000E(X)=10,000np=10,000x1,000x0.1=$1,000,000的预期损失和Var(Z)=10,000^2Var(X)=10,000^2np(1-p)=10,000^2x1,000x0,1x0,9=的差额为90亿美元(1,000!/50!950!)(1/10)^50(9/10)^950
我真的在努力模拟投资组合。
发布于 2020-02-04 21:11:36
在我看来,这是用八度音阶实现这一点的最直接的方法。
%%% The Portfolio problem:
pkg load statistics; % required for the `binopdf` and `binostats` functions
% Problem variables
NumberOfLoans = 1000;
PricePerLoan = 10000;
ProbOfDefault = 0.1;
% Binomial probability of 50 in 1000 loans defaulting for a binomial parameter of 0.1
p = binopdf( 50, NumberOfLoans, ProbOfDefault );
fprintf( 'Probability of 50 loans defaulting is %.3g\n', p );
% Expected loss
[ ExpNumDefaults, VarDefaults ] = binostat( NumberOfLoans, ProbOfDefault );
ExpLoss = PricePerLoan * ExpNumDefaults;
VarLoss = (PricePerLoan .^ 2) * VarDefaults;
fprintf( 'Expected loss of portfolio: %d\n', ExpLoss );
fprintf( 'Variance of portfolio: %d\n', VarLoss );输出:
Probability of 50 loans defaulting is 3.21e-09
Expected loss of portfolio: 1000000
Variance of portfolio: 9000000000这利用了statistics包,您可以像这样从一个八度终端安装它( -forge选项直接从Octave Forge网站下载):
pkg install statistics -forge我之所以使用统计软件包而不是“手工”执行这些计算,是因为需要阶乘的中间步骤会导致非常大的数字,这可能会破坏您的计算,而统计软件包以优化的方式实现这些函数,从而绕过这些问题。
如果你是一个完全的八度初学者,那么在上面的代码片段中可能会发生很多新的事情。我建议您阅读official documentation中有关八度的基础知识,并使用help函数直接从八度终端查找此处使用的函数。
https://stackoverflow.com/questions/60028474
复制相似问题