如何在MatLab/Octave中模拟贷款组合?



我对MatLab/Octave很陌生,我正在努力解决一个我试图解决的问题。

投资组合由 1,000 笔贷款组成,每笔贷款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亿美元的方差

我真的在为投资组合的模拟而苦苦挣扎。

这是以八度音阶实现这一点的最直接方法(在我看来(。

%%% 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 %.3gn', p );
% Expected loss
[ ExpNumDefaults, VarDefaults ] = binostat( NumberOfLoans, ProbOfDefault );
ExpLoss = PricePerLoan * ExpNumDefaults;
VarLoss = (PricePerLoan .^ 2) * VarDefaults;
fprintf( 'Expected loss of portfolio: %dn', ExpLoss );
fprintf( 'Variance of portfolio: %dn', 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

我会使用统计包而不是"手动"执行这些计算的原因是,需要阶乘的中间步骤会导致非常大的数字,这可能会破坏您的计算,而统计包以优化的方式实现这些功能,从而解决这些问题。

如果你是一个完全的八度初学者,那么上面的代码片段中可能会发生很多新的东西。我建议您从官方文档中阅读八度的基础知识,并使用help函数直接从八度终端查找此处使用的功能。

相关内容

  • 没有找到相关文章

最新更新