楼主: tulipsliu
2529 11

[程序分享] MATLAB 最新的意大利学者TommasoBelluzzo-SystemicRisk-2b4ebd0程序分享 [推广有奖]

促进中国计量经济学发展学科带头人

学科带头人

43%

还不是VIP/贵宾

-

威望
0
论坛币
386080 个
通用积分
470.0502
学术水平
127 点
热心指数
140 点
信用等级
103 点
经验
46957 点
帖子
1769
精华
0
在线时间
2481 小时
注册时间
2007-11-5
最后登录
2024-4-26

初级热心勋章

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
这个是一个MATLAB 可以计算 CoVaR
SRISK finance-network 的程序;他分享在MATHWORK 公司的程序分享网站以及github网站。

前后有好几个版本,四月份我下载的其他版本。然后最新的这个版本,还可以计算 finance risk spillover 金融风险溢出。
三个代码:第一个为这个版本的主程序 run 里的代码;只给大家看,这个程序不一定能运行到最后,而且电脑最后是6核16G内存的,比如我的4核4G内存的电脑就无法运行第三部分 金融分享溢出。
第二个代码和第三个代码是上一个版本的,我不上传,因为有朋友的数据,我只发给他修改的主程序。大家对比看自己怎么修改主程序。
Tommaso Belluzzo ,意大利人,他这个系列的程序都是用 run.m 代表调用工具箱。

第一个代码,请参阅。
  1. warning('off','all');

  2. spmd
  3.         warning('off','all')
  4. end

  5. close('all');
  6. clearvars();
  7. clc();
  8. delete(allchild(0));

  9. [path_base,~,~] = fileparts(mfilename('fullpath'));

  10. if (~strcmpi(path_base(end),filesep()))
  11.     path_base = [path_base filesep()];
  12. end

  13. if (~isempty(regexpi(path_base,'Editor')))
  14.     path_base_fs = dir(path_base);
  15.     is_live = ~all(cellfun(@isempty,regexpi({path_base_fs.name},'LiveEditorEvaluationHelper')));

  16.     if (is_live)
  17.         pwd_current = pwd();

  18.         if (~strcmpi(pwd_current(end),filesep()))
  19.             pwd_current = [pwd_current filesep()];
  20.         end
  21.         
  22.         while (true)
  23.             answer = inputdlg('It looks like the program is being executed in a non-standard mode. Please, confirm or change the root folder of this package:','Manual Input Required',1,{pwd_current});
  24.    
  25.             if (isempty(answer))
  26.                 return;
  27.             end
  28.             
  29.             path_base_new = answer{:};

  30.             if (isempty(path_base_new) || strcmp(path_base_new,path_base) || strcmp(path_base_new(1:end-1),path_base) || ~exist(path_base_new,'dir'))
  31.                continue;
  32.             end
  33.             
  34.             path_base = path_base_new;
  35.             
  36.             break;
  37.         end
  38.     end
  39. end

  40. if (~strcmpi(path_base(end),filesep()))
  41.     path_base = [path_base filesep()];
  42. end

  43. paths_base = genpath(path_base);
  44. paths_base = strsplit(paths_base,';');

  45. for i = numel(paths_base):-1:1
  46.     path_current = paths_base{i};

  47.     if (~strcmp(path_current,path_base) && isempty(regexpi(path_current,[filesep() 'Scripts'])))
  48.         paths_base(i) = [];
  49.     end
  50. end

  51. paths_base = [strjoin(paths_base,';') ';'];
  52. addpath(paths_base);

  53. dataset = fullfile(path_base,['Datasets' filesep() 'Example_Large.xlsx']);
  54. data = parse_dataset(dataset);

  55. out_temp_stochastic = fullfile(path_base,['Templates' filesep() 'TemplateStochastic.xlsx']);
  56. out_file_stochastic = fullfile(path_base,['Results' filesep() 'ResultsStochastic.xlsx']);
  57. result_stochastic = run_stochastic(data,out_temp_stochastic,out_file_stochastic,0.95,0.40,0.08,0.40,true);
  58. mat_stochastic = fullfile(path_base,['Results' filesep() 'DataStochastic.mat']);
  59. save(mat_stochastic,'result_stochastic');

  60. pause(2);

  61. out_temp_connectedness = fullfile(path_base,['Templates' filesep() 'TemplateConnectedness.xlsx']);
  62. out_file_connectedness = fullfile(path_base,['Results' filesep() 'ResultsConnectedness.xlsx']);
  63. result_connectedness = run_connectedness(data,out_temp_connectedness,out_file_connectedness,252,0.05,true,0.06,true);
  64. mat_connectedness = fullfile(path_base,['Results' filesep() 'DataConnectedness.mat']);
  65. save(mat_connectedness,'result_connectedness');

  66. pause(2);

  67. out_temp_spillover = fullfile(path_base,['Templates' filesep() 'TemplateSpillover.xlsx']);
  68. out_file_spillover = fullfile(path_base,['Results' filesep() 'ResultsSpillover.xlsx']);
  69. result_spillover = run_spillover(data,out_temp_spillover,out_file_spillover,252,2,4,true,true);
  70. mat_spillover = fullfile(path_base,['Results' filesep() 'DataSpillover.mat']);
  71. save(mat_spillover,'result_spillover');

  72. mat_dataset = fullfile(path_base,['Results' filesep() 'Dataset.mat']);
  73. save(mat_dataset,'data');
复制代码


后面两个我将演示修改主程序,下载ZIP 文件的人记得修改 run.m
  1. warning('off','all');

  2. close('all');
  3. clearvars();
  4. clc();
  5. delete(allchild(0));

  6. [path_base,~,~] = fileparts(mfilename('fullpath'));

  7. if (~strcmpi(path_base(end),filesep()))
  8.     path_base = [path_base filesep()];
  9. end

  10. paths_base = genpath(path_base);
  11. addpath(paths_base);

  12. path_dset = strrep('Datasets\Example.xlsx','\',filesep());            % 修改这里替换为你的表格文件名字
  13. path_rpro = strrep('Results\ResultsPRO.xlsx','\',filesep());
  14. path_rnet = strrep('Results\ResultsNET.xlsx','\',filesep());

  15. data = parse_dataset(fullfile(path_base,path_dset));

  16. main_pro(data,fullfile(path_base,path_rpro),0.95,0.40,0.08,true);
  17. pause(2);
  18. main_net(data,fullfile(path_base,path_rnet),0.05,true,true);

  19. save('data.mat','data');

  20. rmpath(paths_base);
复制代码


第二个文件17行我已经注释修改为你的数据文件哪里修改 excel 表格文件名字即可。这里我发一个修改的给你们看,当然没数据。

  1. warning('off','all');

  2. close('all');
  3. clearvars();
  4. clc();
  5. delete(allchild(0));

  6. [path_base,~,~] = fileparts(mfilename('fullpath'));

  7. if (~strcmpi(path_base(end),filesep()))
  8.     path_base = [path_base filesep()];
  9. end

  10. paths_base = genpath(path_base);
  11. addpath(paths_base);

  12. path_dset = strrep('Datasets\weiFinanceData.xlsx','\',filesep());            % 修改这里替换为你的表格文件名字
  13. path_rpro = strrep('Results\wei20190825ResultsPRO.xlsx','\',filesep());      % 修改这里保存为另外的CoVaR结果表格名字
  14. path_rnet = strrep('Results\wei20190825ResultsNET.xlsx','\',filesep());      % 修改这里保存为另外的金融网络表格文件名字

  15. data = parse_dataset(fullfile(path_base,path_dset));

  16. main_pro(data,fullfile(path_base,path_rpro),0.95,0.40,0.08,true);
  17. pause(2);
  18. main_net(data,fullfile(path_base,path_rnet),0.05,true,true);

  19. save('weidata.mat','data');

  20. rmpath(paths_base);
复制代码


TommasoBelluzzo-SystemicRisk-2b4ebd0.zip (2.3 MB)


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


劳动经济学
沙发
zwzhai 发表于 2020-4-5 20:46:40 |只看作者 |坛友微信交流群
OK!!!!!!!!!!!!!

使用道具

藤椅
耶梦加得ddd 发表于 2020-4-14 11:39:44 |只看作者 |坛友微信交流群
请问运行时出现The current parallel pool does not support SPMD.该怎么解决呢

使用道具

板凳
tulipsliu 在职认证  发表于 2020-4-14 18:56:33 |只看作者 |坛友微信交流群
耶梦加得ddd 发表于 2020-4-14 11:39
请问运行时出现The current parallel pool does not support SPMD.该怎么解决呢
这个程序很霸道,会打开并行计算。要求的MATLAB不低于2014b ,不高于2019a。
我也不知道怎么回答你这个问题。你先看看是不是没达到这个版本范围之内。

实在解决不了,加我的QQ

280201722

我看看怎么回复你。

使用道具

报纸
tulipsliu 在职认证  发表于 2021-5-28 15:05:12 |只看作者 |坛友微信交流群
已经修改售价为 0

使用道具

地板
waddling 发表于 2022-1-19 14:48:46 |只看作者 |坛友微信交流群
QQ拼音截图20220119144624.png 请问换成自己的数据后运行,总是出现图中的报错是怎么回事呀,检查了好几遍明明没有缺失值

QQ拼音截图20220119144624.png (40.6 KB)

QQ拼音截图20220119144624.png

使用道具

7
shanchunn 发表于 2023-2-13 14:42:30 |只看作者 |坛友微信交流群
waddling 发表于 2022-1-19 14:48
请问换成自己的数据后运行,总是出现图中的报错是怎么回事呀,检查了好几遍明明没有缺失值
我也遇到了同样的问题,请问您找到解决办法了吗

使用道具

8
sowoozoo 发表于 2023-7-16 19:25:45 |只看作者 |坛友微信交流群
waddling 发表于 2022-1-19 14:48
请问换成自己的数据后运行,总是出现图中的报错是怎么回事呀,检查了好几遍明明没有缺失值
你好,请问你这个问题有解决吗?

使用道具

9
zsuphoenix 发表于 2023-7-22 20:37:11 |只看作者 |坛友微信交流群
把并行运算的那块代码改掉试试

使用道具

10
tulipsliu 在职认证  发表于 2023-8-11 11:11:21 |只看作者 |坛友微信交流群
waddling 发表于 2022-1-19 14:48
请问换成自己的数据后运行,总是出现图中的报错是怎么回事呀,检查了好几遍明明没有缺失值
是作者程序中, datetime 读取文件的时候,无法将季度数据表格读取错误导致。Debug 需要时间。还有问题可以加好友联系。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 21:38