一种基于matlab的投入产出相关系数矩阵快速计算及分析方法
技术领域
1.本发明涉及矩阵运算技术、投入产出技术、产业关联分析等领域,用于实现投入产出相关系数矩阵快速计算及时间序列三维分析模型构建。
背景技术:2.美国经济学家列昂惕夫(w.leontief)1953年提出了投入产出表的概念及其编制方法,阐述了投入产出技术的基本原理,创立了投入产出技术和投入产出模型这一科学理论。投入产出模型的基本框架就是投入产出表的第一象限,即中间产品流量矩阵。因此,投入产出模型与数值矩阵具有天然的联系。这就使得许多投入产出经济问题都与矩阵理论密切相关,投入产出技术与矩阵计算直接关联。
3.投入产出表提供了一个国家在特定时期内的经济运行过程和产业间相互关系完整而系统的经济信息,可以利用它来为一国产业经济管理提供多种服务。利用投入产出表可以计算出许多具有重要经济涵义的系数,形成投入产出系数系统。其中,从不同层次上可分为流量系数、直接系数序列、完全系数序列,从不同方向上可分为投入系数序列、产出系数序列。基于投入产出表的投入产出相关系数矩阵的运算,按照产业间供给和需求联系,可以计算产业前向关联效应系数和后向关联效应系数进行产业联系分析,可以计算影响力系数和感应度系数进行产业波及效应分析,可以进行经济结构分析、宏观经济效益分析和政策模拟等。然而,投入产出相关系数矩阵大都采用嵌套循环的计算和手工汇总分析方法,存在计算和分析效率问题。
4.世界投入产出表是各国家产业间相互联系和平衡比例关系的一种平衡表,是研究世界各国经济贸易、产业关联等的重要依据。世界银行集团(wbg)、亚洲开发银行(adb)、经济合作与发展组织(oecd)等组织开展世界投入产出表的编制和研究工作。投入产出相关系数矩阵在垂直专业化、增值贸易的计算和产业经济、全球价值链(gvc)的分析中具有基础而又重要的作用。世界投入产出表积累了几十张涉及数十个国家和数十个部门的投入产出数据,其投入产出相关系数矩阵计算和分析效率就显得尤为突出。以亚洲开发银行(asian development bank adb)2021年发布的(包括2000年、2007至2020年,15年)世界投入产出数据表为例,每个投入产出表有63个国家和地区,35个行业,就形成2205(63*35)阶的方阵,15年就有15个2205阶的方阵,要对如此庞大的矩阵进行乘除、求逆、转置、求和等运算,使用excel等常用分析工具特别费时费力还容易错,采用stata等专业分析软件又特别难学习难开发,即使应用世界银行集团2020年发布的stata函数包icio也不能一次性得到多个年度按时间序列构成的数据进行分析。
5.在众多将投入产出相关系数应用于不同产业领域进行经济分析应用中,研究者大多只注重分析应用和政策模拟,而忽视了投入产出相关系数矩阵计算效率和多维分析模型的构建,直接采用手工方式或嵌套循环方式来计算投入产出相关系数,然后再手工汇总国家、部门两个维度的数据进行分析,导致计算和分析效率低下问题。
6.为了解决以上问题,本发明基于专业数学软件matlab高效的矩阵计算和强大的数据分析能力,采用矩阵运算技术取代n个元素的嵌套循环计算,对十多个年度大数据量的投入产出相关系数矩阵进行快速计算,将计算的时间复杂从o(n2)降低到o(n),并在计算机闪存内按年度的时间顺序自动构建基于时间序列的经济分析指标三维矩阵模型,大大提高了分析效率和准确性。
技术实现要素:7.本发明的目的在于提供一种基于matlab的投入产出相关系数矩阵快速计算及分析方法,该方法从多年的世界投入产出表中读取投入产出相关数据,基于matlab矩阵运算技术快速计算投入产出相关系数矩阵,构建基于时间序列的三维矩阵模型,可按年度、国家、行业进行单一或组合维度的分析预测,大大提高了分析效率和准确性。
8.为实现上述目的,本发明提供如下技术方案:一种基于matlab的投入产出相关系数矩阵快速计算及分析方法,主要包括以下步骤:
9.步骤1,读取投入产出表数据;
10.步骤2,计算投入产出相关系数矩阵;
11.步骤3,计算经济分析指标矩阵;
12.步骤4,构建时间序列三维矩阵模型;
13.步骤5,基于经济分析指标三维矩阵模型进行分析。
14.进一步的,所述步骤1读取世界投入产出表数据具体为:
15.读取世界投入产出表的第i象限数据形成矩阵o、总产出形成向量gc和总投入形成向量gt;第i象限形成矩阵x
ij
表示部门i对部门j的投入(或分配)的数量,n为矩阵o的阶数;
16.进一步的,所述步骤2运用matlab矩阵运算技术快速计算投入产出相关系数矩阵包括计算直接消耗系数矩阵、计算直接分配系数矩阵、计算完全需求系数矩阵、计算完全供给系数矩阵:
17.计算直接消耗系数矩阵a=o*inv(diag(gt)),diag()为将向量对角化,inv()为矩阵求逆运算,直接消耗系数矩阵a
ij
表示部门j生产单位产品对部门i产品的直接消耗量,并称其为直接消耗系数,a
ij
=x
ij
/xj,xj为部门j的总投入量;
18.计算直接分配系数矩阵r=inv(diag(gc))*o,diag()为将向量对角化,inv()为矩阵求逆运算,直接分配系数矩阵r
ij
表示部门j所分配到部门i的产品份额,并称其为直接分配系数,r
ij
=x
ij
/xi,xi为部门i的总产出量;
19.计算完全需求系数矩阵b=inv(eye(n,n)-a);
20.计算完全供给系数矩阵d=inv(eye(n,n)-r),inv()为矩阵求逆运算,eye(n,n)为
生产n阶单位矩阵;
21.进一步的,所述步骤3计算经济分析指标矩阵具体为:
22.利用步骤2计算得出的投入产出相关系数矩阵,来计算需要进行分析的经济分析指标矩阵。在进行产业波及效应分析时,就需要计算影响力系数和感应度系数这两个经济分析指标矩阵,用完全需求系数矩阵b计算影响力系数矩阵用完全供给系数矩阵d计算感应度系数矩阵sum()为求和函数;
23.进一步的,所述步骤4构建基于时间序列的经济分析指标三维矩阵模型具体为:
24.将每一年度计算出来的经济分析指标矩阵,按年度的时间顺序存放入经济分析指标三维矩阵模型,构建基于时间序列的经济分析指标三维矩阵模型。当进行产业波及效应分析时,就要将每一年度的影响力系数矩阵f、感应系数矩阵e按国家、部门进行归类处理,按年度的时间顺序分别存入影响力系数三维矩阵tf和感应度系数三维矩阵te,构建基于时间序列的影响力系数三维矩阵tf和感应度系数三维矩阵te。具体过程为,将每一年度计算出来的影响力系数矩阵f、感应系数矩阵e按ic个国家、is个部门进行归类处理,fr=(reshape(f,is,ic))',er=(reshape(e,is,ic))',reshape()为将矩阵变换成特定维数矩阵的函数,“'”为矩阵转置运算;按年度分别存入影响力系数三维矩阵tf(year,country,sector)=fr和感应度系数三维矩阵te(year,country,sector)=er。
25.进一步的,所述步骤5基于经济分析指标三维矩阵模型进行分析具体为:
26.利用基于时间序列的经济分析指标三维矩阵模型,可按年度、国家、行业进行单一或组合维度的经济对比分析及预测。当进行产业波及效应分析时,就可以利用影响力系数三维矩阵tf和感应度系数三维矩阵te按年度、国家、行业进行单一或组合维度的产业波及效应快速分析。
27.有益效果:
28.本发明构建了基于世界投入产出表的经济分析指标三维矩阵模型,用matlab实现了投入产出相关系数矩阵、经济分析指标矩阵快速计算和经济分析指标三维系数矩阵存储,最终形成可按年度、国家、部门对经济分析指标进行快速分析,有利于经济领域科研人员对按时间序列构成的投入产出相关系数矩阵和经济分析指标矩阵进行分析。本发明采用在计算机闪存中构建时间序列的三维矩阵模型来提高分析速度,运用矩阵运算技术取代n个元素的嵌套循环计算,将计算的时间复杂从o(n2)降低到o(n),大大提高了计算速度和分析效率。
附图说明
29.图1是基于本发明矩阵运算的投入产出相关系数矩阵计算流程图。
30.图2是基于excel手工运算的投入产出相关系数矩阵计算流程图。
31.图3是基于编程的非矩阵运算的投入产出相关系数矩阵计算流程图。
具体实施方式
32.为了使本发明的目的、技术方案、及优点更加清楚明白,以影响力系数和感应度系数为经济分析指标,采用亚洲开发银行(adb)15年的世界投入产出表数据进行产业波及效应分析为例,结合附图对本发明进行进一步地说明。此处所描述的具体实施例仅用于解释本发明技术方案,并不限于本发明。
33.按照图1所示流程图对亚洲开发银行(asian development bank adb)2021年发布的15年(2000年、2007至2020年)世界投入产出表(第i象限2205行*2205列,第ii象限2205行*1列,第iii象限1行*2205列)的投入产出数据(15个2205阶方阵,15个2205行向量,15个2205列向量)进行了计算,在计算机闪存中形成包含15个年度的经济分析指标影响力系数三维矩阵(存储了63个国家或地区,35个部门,15年的数据)、感应度系数三维矩阵(存储了63个国家或地区,35个部门,15年的数据),据此,可按年度、国家、部门进行单一或组合维度的产业波及效应分析。
34.采用本发明实施例和两种常用实施例(基于excel手工运算、基于编程的非矩阵运算)对上述实际算例(adb 2021年发布的2000年、2007至2020年,共15年的投入产出数据)进行了计算。三种投入产出计算实施例分别为:
35.例1:本发明基于矩阵运算的计算,如图1所示,运用矩阵运算技术,按照定义,逐年计算直接消耗系数a=o*inv(diag(gt))、直接分配系数r=inv(diag(gc))*o,diag()为将向量对角化,inv()为矩阵求逆运算,计算完全需求系数矩阵b=inv(eye(n,n)-a)即实现b=(i-a)-1
的运算;计算完全供给系数矩阵d=inv(eye(n,n)-r)即实现d=(i-r)-1
的运算;计算影响力系数矩阵即实现的矩阵运算,计算感应度系数矩阵即实现的矩阵运算,sum()为求和函数;将每一年度计算出来的影响力系数矩阵f、感应系数矩阵e按63个国家、35个部门进行归类处理fr=(reshape(f,35,63))'、er=(reshape(e,35,63))',reshape()为将矩阵变换成特定维数的矩阵,“'”为矩阵转置运算;按年度分别存入影响力系数三维矩阵tf(y,:,:)=fr、感应度系数三维矩阵te(y,:,:)=er,“y”为年度序数,形成时间序列的影响力系数三维矩阵tf(year,country,sector)、感应度系数三维矩阵te(year,country,sector),可按年度year、国家country、部门sector进行单一或组合维度进行产业波及的快速分析。
36.例2:基于excel的手工计算,如图2所示,运算excel的批量工具和minverse()求逆等函数,按定义手工逐年循环计算直接消耗系数a
ij
=x
ij
/xj、直接分配系数r
ij
=x
ij
/xi,基于结果计算完全需求系数矩阵b=(i-a)-1
、完全供给系数矩阵d=(i-r)-1
,基于以上结果再
循环计算影响力系数感应度系数最后按年度汇总计算结果。
37.例3:基于编程的非矩阵运算的计算,如图3所示,运用可编程软件按照定义,逐年按国家和部门循环计算直接消耗系数a
ij
=x
ij
/xj、直接分配系数r
ij
=x
ij
/xi,基于计算结果再循环计算完全需求系数b=(i-a)-1
、完全供给系数d=(i-r)-1
,基于以上结果再循环计算影响力系数感应度系数最后按年度汇总计算结果。
38.三种实施例的投入产出相关系数矩阵计算时间见表1,计算时间不包括数据读入和输出时间。
39.表1三种计算方法所需时间比较
[0040][0041]
从表1可见,目前经济研究人员通行的做法是基于excel计算投入产出相关系数,费时、费力、易错且不易重复计算;少数懂编程的经济研究人员采用基于编程非矩阵运算的计算,大大节省了计算时间,但是,仍然不能够实现经济分析指标按年度、国家、部门进行单一或组合维度的数据筛选和分析。本发明方法构建了经济分析指标三维矩阵模型,可按年度、国家、行业进行单一或组合维度的数据筛选和分析预测,完全采用矩阵运算技术计算投入产出相关系数矩阵和经济指标分析矩阵,进一步提高投入产出相关系数矩阵a、r、b、d、e、f的计算和分析速度,完成15年投入产出相关系数矩阵计算时间为9.0435秒,仅占整个计算过程的6.478%。本发明投入产出相关系数矩阵计算时间为例3的1/25、为例2的1/5000。
[0042]
本发明不局限实施例,以上所述仅表达了本发明实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形、改进及替代,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
技术特征:1.一种基于matlab的投入产出相关系数矩阵快速计算及分析方法,其特征在于:首先,读取投入产出表数据;其次,利用矩阵运算技术对投入产出表数据进行投入产出相关系数矩阵的快速计算,采用矩阵运算技术取代n个元素的嵌套循环计算,将计算的时间复杂从o(n2)降低到o(n);再次,利用投入产出相关系数矩阵计算经济分析指标矩阵;然后,构建基于时间序列的三维矩阵模型用来存放经济分析相关指标矩阵;最后,基于经济分析指标三维矩阵模型,按年度、国家、行业进行单一或组合维度的分析预测,具体包括如下步骤:步骤1,读取投入产出表数据;步骤2,计算投入产出相关系数矩阵;步骤3,计算经济分析指标矩阵;步骤4,构建时间序列三维矩阵模型;步骤5,基于时间序列三维矩阵模型进行分析。2.根据权利要求1所述的基于matlab的投入产出相关系数矩阵快速计算及分析方法,其特征在于:所述步骤1中读取世界投入产出表数据具体如下:读取世界投入产出表的第i象限数据形成矩阵o、总产出形成向量gc和总投入形成向量gt,取得世界投入产出表所包含国家的数量ic和部门的数量is。3.根据权利要求1所述的基于matlab的投入产出相关系数矩阵快速计算及分析方法,其特征在于:所述步骤2中运用matlab矩阵运算技术快速计算投入产出相关系数矩阵包括计算直接消耗系数矩阵、计算直接分配系数矩阵、计算完全需求系数矩阵、计算完全供给系数矩阵:计算直接消耗系数矩阵a=o*inv(diag(gt));计算直接分配系数矩阵r=inv(diag(gc))*o;计算完全需求系数矩阵b=inv(eye(n,n)-a);计算完全供给系数矩阵d=inv(eye(n,n)-r),diag()为将向量对角化,inv()为矩阵求逆运算,eye(n,n)为生产n阶单位矩阵,n为矩阵o的阶数。4.根据权利要求1所述的基于matlab的投入产出相关系数矩阵快速计算及分析方法,其特征在于:所述步骤3计算经济分析指标矩阵具体如下:利用步骤2计算得出的投入产出相关系数矩阵,来计算需要进行分析的经济分析指标矩阵,当进行产业波及效应分析时,需要计算影响力系数和感应度系数这两个经济分析指标矩阵,用完全需求系数矩阵b计算影响力系数矩阵用完全供给系数矩阵d计算感应度系数矩阵sum()为求和函数。5.根据权利要求1所述的基于matlab的投入产出相关系数矩阵快速计算及分析方法,其特征在于:所述步骤4构建基于时间序列的经济分析指标三维矩阵模型具体如下:将每一年度计算出来的经济分析指标矩阵,按年度的时间顺序存放入经济分析指标三维矩阵模型,构建基于时间序列的经济分析指标三维矩阵模型,当进行产业波及效应分析时,需要将每一年度的影响力系数矩阵f、感应系数矩阵e按国家、部门进行归类处理,按年
度的时间顺序分别存入影响力系数三维矩阵tf和感应度系数三维矩阵te,构建基于时间序列的影响力系数三维矩阵tf和感应度系数三维矩阵te。6.根据权利要求1所述的基于matlab的投入产出相关系数矩阵快速计算及分析方法,其特征在于:所述步骤5基于经济分析指标三维矩阵模型进行分析具体如下:利用基于时间序列的经济分析指标三维矩阵模型,可按年度、国家、行业进行单一或组合维度的经济分析及预测,当进行产业波及效应分析时,就可以利用影响力系数三维矩阵tf和感应度系数三维矩阵te按年度、国家、行业进行单一或组合维度的产业波及效应分析。7.根据权利要求2所述的基于matlab的投入产出相关系数矩阵快速计算及分析方法,其特征在于:所述第i象限形成矩阵x
ij
表示部门i对部门j的投入或分配的数量。8.根据权利要求3所述的基于matlab的投入产出相关系数矩阵快速计算及分析方法,其特征在于:所述直接消耗系数矩阵a
ij
表示部门j生产单位产品对部门i产品的直接消耗量,并称其为直接消耗系数,a
ij
=x
ij
/x
j
,x
j
为部门j的总投入量;所述直接分配系数矩阵r
ij
表示部门j所分配到部门i的产品份额,并称其为直接分配系数,r
ij
=x
ij
/x
i
,x
i
为部门i的总产出量。9.根据权利要求5所述的基于matlab的投入产出相关系数矩阵计算及分析方法,其特征在于,所述步骤4的具体过程为,将每一年度计算出来的影响力系数矩阵f、感应系数矩阵e按ic个国家或地区、is个部门进行归类处理,fr=(reshape(f,is,ic))',er=(reshape(e,is,ic))',reshape()为将矩阵变换成特定维数的矩阵,“'”为矩阵转置运算;将fr、er按年度分别存入影响力系数三维矩阵tf(year,country,sector)=fr和感应度系数三维矩阵te(year,country,sector)。
技术总结本发明提供了一种基于MATLAB的投入产出相关系数矩阵快速计算及分析方法,主要包括以下步骤:步骤1,读取投入产出表数据;步骤2,计算投入产出相关系数矩阵;步骤3,计算经济分析指标矩阵;步骤4,构建时间序列三维矩阵模型;步骤5,基于时间序列三维矩阵模型进行分析。本发明采用矩阵运算技术快速计算投入产出相关系数矩阵、构建时间序列三维矩阵模型,形成可以按年度、国家、行业进行快速分析的方法,大大提高了计算速度和分析效率,有利于经济领域科研人员对按时间序列构成的投入产出相关系数矩阵及计算结果进行快速分析。矩阵及计算结果进行快速分析。矩阵及计算结果进行快速分析。
技术研发人员:李忠态 文淑惠 杨建龙 王家寿 程先楠 文艺
受保护的技术使用者:昆明理工大学
技术研发日:2022.04.19
技术公布日:2022/7/5