Derive Two Asset (Risky + Safe) and Choices/Outcomes Distribution (Vectorized)
back to Fan's Dynamic Assets Repository Table of Content.
This uses ff_az_ds_vec, which works for single and multiple assets.
The function here works with both ff_akz_vf_vecsv as well as ff_wkz_vf_vecsv. Results are identical, but ff_wkz_vf_vecsv is significantly faster.
@include
@seealso
- derive distribution f(y'(y,z)) one asset loop: ff_az_ds
- derive distribution f(y'({x,y},z)) two assets loop: ff_akz_ds
- derive distribution f(y'({x,y},z, z')) two assets loop: ff_iwkz_ds
- derive distribution f(y'({y},z)) or f(y'({x,y},z)) vectorized: ff_az_ds_vec
- derive distribution f(y'({y},z, z')) or f(y'({x,y},z, z')) vectorized: ff_iwkz_ds_vec
- derive distribution f(y'({y},z)) or f(y'({x,y},z)) semi-analytical: ff_az_ds_vecsv
- derive distribution f(y'({y},z, z')) or f(y'({x,y},z, z')) semi-analytical: ff_iwkz_ds_vecsv
Contents
Set Parameters Main
Options for Distribution solutions
- it_subset = 5 is basic invoke quick test
- it_subset = 6 is invoke full test
- it_subset = 7 is profiling invoke
- it_subset = 8 is matlab publish
- it_subset = 9 is invoke operational (only final stats) and coh graph
close all; clear all; it_param_set = 8; st_akz_or_wkz = 'wkz';
Get Parameters
Note that akz and wkz share the smae funcgrid and default_param functions
% Set Parameters [param_map, support_map] = ffs_akz_set_default_param(it_param_set); support_map('bl_profile_dist') = false; % Call Grid Generator <https://fanwangecon.github.io/CodeDynaAsset/m_akz/paramfunc/html/ffs_akz_get_funcgrid.html ffs_akz_get_funcgrid> [armt_map, func_map] = ffs_akz_get_funcgrid(param_map, support_map); % 1 for override
Alternative 1: Solving the Dynamic Programming Problem (AKZ)
if (strcmp(st_akz_or_wkz, 'akz')) result_map = ff_akz_vf_vecsv(param_map, support_map, armt_map, func_map); end
Alternative 2: Solving the Dynamic Programming Problem (AWZ)
if (strcmp(st_akz_or_wkz, 'wkz')) result_map = ff_wkz_vf_vecsv(param_map, support_map, armt_map, func_map); end
Distribution Start Profiler and Timer
% Start Profiling if (it_param_set == 7) profile off; profile on; end % Start Timer if (support_map('bl_time')) tic; end % Get Profile name st_profile_name_main = support_map('st_profile_name_main');
Derive Distribution
% Call Distribution Program <https://fanwangecon.github.io/CodeDynaAsset/m_az/solve/html/ff_az_ds_vec.html ff_az_ds_vec>
result_map = ff_az_ds_vec(param_map, support_map, armt_map, func_map, result_map);
----------------------------------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Summary Statistics for: cl_mt_pol_coh
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
----------------------------------------
fl_choice_mean
6.6378
fl_choice_sd
3.2117
fl_choice_coefofvar
0.4838
fl_choice_prob_zero
0
fl_choice_prob_below_zero
0
fl_choice_prob_above_zero
1.0000
fl_choice_prob_max
0
tb_disc_cumu
cl_mt_pol_cohDiscreteVal cl_mt_pol_cohDiscreteValProbMass CDF cumsumFrac
________________________ ________________________________ ________ __________
0.44365 0.00078431 0.078431 5.2421e-05
1.4896 0 0.078431 5.2421e-05
1.7324 1.3347e-10 0.078431 5.2421e-05
1.7861 3.2488e-10 0.078431 5.2421e-05
1.8481 8.1664e-10 0.078432 5.2421e-05
1.9196 1.6823e-09 0.078432 5.2421e-05
2.0021 2.8547e-09 0.078432 5.2422e-05
2.0973 3.9661e-09 0.078432 5.2424e-05
2.207 4.446e-09 0.078433 5.2425e-05
2.3337 3.9182e-09 0.078433 5.2426e-05
cl_mt_pol_cohDiscreteVal cl_mt_pol_cohDiscreteValProbMass CDF cumsumFrac
________________________ ________________________________ ___ __________
57.254 0 100 1
57.254 0 100 1
57.262 0 100 1
57.264 0 100 1
57.269 0 100 1
57.271 0 100 1
57.274 0 100 1
57.275 0 100 1
57.277 0 100 1
57.277 0 100 1
tb_prob_drv
percentiles cl_mt_pol_cohDiscreteValPercentileValues fracOfSumHeldBelowThisPercentile
___________ ________________________________________ ________________________________
0.1 2.7703 0.00075046
1 2.9189 0.0046305
5 3.3795 0.03197
10 3.9458 0.053693
15 4.1803 0.098284
20 4.3216 0.13576
25 4.4846 0.17805
35 4.6727 0.21843
50 5.557 0.3322
65 6.8355 0.47334
75 7.8814 0.58557
80 8.4891 0.65283
85 9.5307 0.71365
90 10.63 0.78803
95 13.177 0.87786
99 18.291 0.96894
99.9 24.692 0.99598
----------------------------------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Summary Statistics for: cl_mt_pol_a
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
----------------------------------------
fl_choice_mean
0.3116
fl_choice_sd
1.1459
fl_choice_coefofvar
3.6775
fl_choice_prob_zero
0.8815
fl_choice_prob_below_zero
0
fl_choice_prob_above_zero
0.1185
fl_choice_prob_max
0
tb_disc_cumu
cl_mt_pol_aDiscreteVal cl_mt_pol_aDiscreteValProbMass CDF cumsumFrac
______________________ ______________________________ ______ __________
0 0.88152 88.152 0
1.0204 0.0046027 88.612 0.015073
1.0204 0.03178 91.79 0.11915
1.0204 0.0025706 92.047 0.12757
1.0204 0.011357 93.183 0.16476
1.0204 2.2776e-05 93.185 0.16483
2.0408 5.4136e-05 93.191 0.16519
2.0408 0.009004 94.091 0.22416
2.0408 0.0016919 94.26 0.23524
2.0408 0.0158 95.84 0.33873
cl_mt_pol_aDiscreteVal cl_mt_pol_aDiscreteValProbMass CDF cumsumFrac
______________________ ______________________________ ___ __________
38.776 2.2065e-11 100 1
39.796 7.7778e-12 100 1
39.796 2.2972e-12 100 1
40.816 2.2706e-12 100 1
41.837 5.1456e-14 100 1
41.837 1.8174e-13 100 1
42.857 6.9732e-16 100 1
42.857 5.6187e-18 100 1
43.878 6.3289e-19 100 1
44.898 0 100 1
tb_prob_drv
percentiles cl_mt_pol_aDiscreteValPercentileValues fracOfSumHeldBelowThisPercentile
___________ ______________________________________ ________________________________
0.1 0 0
1 0 0
5 0 0
10 0 0
15 0 0
20 0 0
25 0 0
35 0 0
50 0 0
65 0 0
75 0 0
80 0 0
85 0 0
90 1.0204 0.11915
95 2.0408 0.33873
99 6.1224 0.75304
99.9 11.224 0.95765
----------------------------------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Summary Statistics for: cl_mt_pol_k
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
----------------------------------------
fl_choice_mean
4.5080
fl_choice_sd
2.2205
fl_choice_coefofvar
0.4926
fl_choice_prob_zero
7.8431e-04
fl_choice_prob_below_zero
0
fl_choice_prob_above_zero
0.9992
fl_choice_prob_max
2.7782e-07
tb_disc_cumu
cl_mt_pol_kDiscreteVal cl_mt_pol_kDiscreteValProbMass CDF cumsumFrac
______________________ ______________________________ ________ __________
0 0.00078431 0.078431 0
1.0204 2.0755e-08 0.078433 4.698e-09
2.0408 1.4236e-11 0.078433 4.7045e-09
2.0408 8.1326e-05 0.086566 3.6822e-05
2.0408 0.10671 10.758 0.048346
2.0408 0.00011562 10.769 0.048399
2.0408 1.594e-07 10.769 0.048399
3.0612 0.00046316 10.816 0.048713
3.0612 0.33955 44.771 0.27929
3.0612 0.00085004 44.856 0.27987
cl_mt_pol_kDiscreteVal cl_mt_pol_kDiscreteValProbMass CDF cumsumFrac
______________________ ______________________________ ______ __________
14.286 0.0011993 99.658 0.98758
15.306 0.0020759 99.865 0.99463
15.306 1.4866e-06 99.866 0.99463
16.327 0.00032948 99.899 0.99583
17.347 0.00029884 99.928 0.99698
18.367 0.00050528 99.979 0.99904
19.388 5.9324e-05 99.985 0.99929
20.408 4.6963e-05 99.99 0.9995
21.429 0.00010426 100 1
22.449 2.7782e-07 100 1
tb_prob_drv
percentiles cl_mt_pol_kDiscreteValPercentileValues fracOfSumHeldBelowThisPercentile
___________ ______________________________________ ________________________________
0.1 2.0408 0.048346
1 2.0408 0.048346
5 2.0408 0.048346
10 2.0408 0.048346
15 3.0612 0.27929
20 3.0612 0.27929
25 3.0612 0.27929
35 3.0612 0.27929
50 4.0816 0.4288
65 5.102 0.61593
75 5.102 0.61593
80 6.1224 0.74117
85 6.1224 0.74117
90 7.1429 0.80373
95 9.1837 0.91265
99 12.245 0.97174
99.9 17.347 0.99698
----------------------------------------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Summary Statistics for: cl_mt_pol_c
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
----------------------------------------
fl_choice_mean
1.8182
fl_choice_sd
0.5550
fl_choice_coefofvar
0.3052
fl_choice_prob_zero
0
fl_choice_prob_below_zero
0
fl_choice_prob_above_zero
1.0000
fl_choice_prob_max
0
tb_disc_cumu
cl_mt_pol_cDiscreteVal cl_mt_pol_cDiscreteValProbMass CDF cumsumFrac
______________________ ______________________________ ________ __________
0.44365 0.00078431 0.078431 0.00019137
0.46916 0 0.078431 0.00019137
0.49467 0 0.078431 0.00019137
0.60745 1.2601e-09 0.078431 0.00019137
0.71196 1.3347e-10 0.078432 0.00019137
0.72951 0.0016725 0.24568 0.00086242
0.73747 0 0.24568 0.00086242
0.7657 3.2488e-10 0.24568 0.00086242
0.79121 0 0.24568 0.00086242
0.79848 0.0030749 0.55317 0.0022128
cl_mt_pol_cDiscreteVal cl_mt_pol_cDiscreteValProbMass CDF cumsumFrac
______________________ ______________________________ ___ __________
7.2536 0 100 1
7.2536 0 100 1
7.2624 0 100 1
7.2636 0 100 1
7.2692 0 100 1
7.2707 0 100 1
7.274 0 100 1
7.2752 0 100 1
7.2767 0 100 1
7.2772 0 100 1
tb_prob_drv
percentiles cl_mt_pol_cDiscreteValPercentileValues fracOfSumHeldBelowThisPercentile
___________ ______________________________________ ________________________________
0.1 0.72951 0.00086242
1 0.87804 0.0050293
5 0.99654 0.027155
10 1.1191 0.059227
15 1.2604 0.11019
20 1.2946 0.12438
25 1.4234 0.195
35 1.5074 0.25417
50 1.7334 0.38021
65 2.0197 0.53371
75 2.162 0.64853
80 2.295 0.71753
85 2.3829 0.77202
90 2.597 0.84228
95 2.8274 0.91558
99 3.2736 0.98017
99.9 3.9464 0.99782
OriginalVariableNames cl_mt_pol_coh cl_mt_pol_a cl_mt_pol_k cl_mt_pol_c
______________________ _____________ ___________ ___________ ___________
'mean' 6.6378 0.31159 4.508 1.8182
'sd' 3.2117 1.1459 2.2205 0.555
'coefofvar' 0.48385 3.6775 0.49256 0.30524
'min' 0.44365 0 0 0.44365
'max' 57.277 44.898 22.449 7.2772
'pYis0' 0 0.88152 0.00078431 0
'pYls0' 0 0 0 0
'pYgr0' 1 0.11848 0.99922 1
'pYisMINY' 0.00078431 0.88152 0.00078431 0.00078431
'pYisMAXY' 0 0 2.7782e-07 0
'p0_1' 2.7703 0 2.0408 0.72951
'p1' 2.9189 0 2.0408 0.87804
'p5' 3.3795 0 2.0408 0.99654
'p10' 3.9458 0 2.0408 1.1191
'p15' 4.1803 0 3.0612 1.2604
'p20' 4.3216 0 3.0612 1.2946
'p25' 4.4846 0 3.0612 1.4234
'p35' 4.6727 0 3.0612 1.5074
'p50' 5.557 0 4.0816 1.7334
'p65' 6.8355 0 5.102 2.0197
'p75' 7.8814 0 5.102 2.162
'p80' 8.4891 0 6.1224 2.295
'p85' 9.5307 0 6.1224 2.3829
'p90' 10.63 1.0204 7.1429 2.597
'p95' 13.177 2.0408 9.1837 2.8274
'p99' 18.291 6.1224 12.245 3.2736
'p99_9' 24.692 11.224 17.347 3.9464
'fl_cov_cl_mt_pol_coh' 10.315 2.269 6.5618 1.4843
'fl_cor_cl_mt_pol_coh' 1 0.61655 0.92011 0.83273
'fl_cov_cl_mt_pol_a' 2.269 1.313 0.7055 0.25051
'fl_cor_cl_mt_pol_a' 0.61655 1 0.27728 0.39391
'fl_cov_cl_mt_pol_k' 6.5618 0.7055 4.9305 0.9258
'fl_cor_cl_mt_pol_k' 0.92011 0.27728 1 0.75125
'fl_cov_cl_mt_pol_c' 1.4843 0.25051 0.9258 0.30802
'fl_cor_cl_mt_pol_c' 0.83273 0.39391 0.75125 1
'fracByP0_1' 0.00075046 0 0.048346 0.00086242
'fracByP1' 0.0046305 0 0.048346 0.0050293
'fracByP5' 0.03197 0 0.048346 0.027155
'fracByP10' 0.053693 0 0.048346 0.059227
'fracByP15' 0.098284 0 0.27929 0.11019
'fracByP20' 0.13576 0 0.27929 0.12438
'fracByP25' 0.17805 0 0.27929 0.195
'fracByP35' 0.21843 0 0.27929 0.25417
'fracByP50' 0.3322 0 0.4288 0.38021
'fracByP65' 0.47334 0 0.61593 0.53371
'fracByP75' 0.58557 0 0.61593 0.64853
'fracByP80' 0.65283 0 0.74117 0.71753
'fracByP85' 0.71365 0 0.74117 0.77202
'fracByP90' 0.78803 0.11915 0.80373 0.84228
'fracByP95' 0.87786 0.33873 0.91265 0.91558
'fracByP99' 0.96894 0.75304 0.97174 0.98017
'fracByP99_9' 0.99598 0.95765 0.99698 0.99782
End profiler and Timer
% End Timer if (support_map('bl_time')) toc; end % End Profiling if (it_param_set == 7) profile off profile viewer % append function name st_func_name = 'ff_akz_ds_vec'; support_map('st_profile_path') = [support_map('st_matimg_path_root') '/solve/profile/']; support_map('st_profile_name_main') = [st_func_name st_profile_name_main]; % support_map params_group = values(support_map, {'st_profile_path', ... 'st_profile_prefix', 'st_profile_name_main', 'st_profile_suffix'}); [st_profile_path, st_profile_prefix, st_profile_name_main, st_profile_suffix] = params_group{:}; % Save st_file_name = [st_profile_prefix st_profile_name_main st_profile_suffix]; profsave(profile('info'), strcat(st_profile_path, st_file_name)); end