一种基于层次分析法的多权重综合排序方法与流程

文档序号:16120021发布日期:2018-11-30 23:05阅读:696来源:国知局

本发明属于金融领域,涉及一种多权重综合排序方法,具体涉及一种基于层次分析法的多权重综合排序方法。

背景技术

资本市场自诞生以来,不断涌现出各类型金融产品,股票市场作为其核心组成部分,是一个地区或国家经济活动的重要指标。根据中国证券监督管理委员会统计数据显示,截止2017年12月,国内上市公司达3485家,总市值(a,b股)56.75万亿,流通市值44.91万亿,2017年沪深两市新增438家上市公司,约占全球新增上市公司数量的30%。在如此规模庞大的股票市场中,如何快速做出合理的投资决策成为一件愈发困难的事情。因此,如何解析股票价值组成、如何通过量化指标判断股票综合投资排序,选择合理投资方向,具有十分重要的理论研究意义和现实应用价值。进入21世纪以来,计算机信息处理和海量大数据处理技术的发展,使得建立在数学模型之上,寻找和进行投资决策、量化投资、智能选股成为可能或必然。

与常规评估方法相比,多准则决策评估的机理性特点是:1)定性与定量相结合,将特定关键数据归一化、分段数字化;2)使用加权重的方式对各个影响因子重要性信息进行处理,使得各个因子都可以合理进入决策系统;3)以决策判断矩阵的方式提炼信息,可以适应复杂程度高、现代化、动态化的项目需求。该理论适用范围包括产品选型、城市规划布局、工业设施选址、金融和投资应用等。作为多准则决策学说中的核心理论之一,层次分析法(analytichierarchyprocess)首次由美国运筹学家t.l.saaty在1971年提出,是一种定性与定量相结合的方法,旨在系统化、层次化、以权重的方式解决决策问题,通常适用于含有许多半定性、半定量问题的复杂系统决策,将其层次化,通过逐层比较各种关联因素的重要性来为分析、决策提供定量的依据。该理论引入中国以来,学术界对此方法在包括行为学、经济学和资源评价等领域,进行了多方验证,均有很好的适用性。

目前,尚未有学者使用成熟的决策学方法论来实现多目标的综合排序,且相关投资决策研究范围多以特定行业为主体,如银行股投资选择机制,时间范围和多样性均存在局限性,难以获得具有广泛适用性的结论。



技术实现要素:

本发明的目的在于克服上述现有技术的缺点,提供了一种基于层次分析法的多权重综合排序方法,该方法能够实现多目标的综合排序,并且适用性较强。

为达到上述目的,本发明所述的基于层次分析法的多权重综合排序方法包括以下步骤:

1)确定排序目标数据库的指标体系,所述排序目标数据库包含m个目标,每个目标对应n个技术指标,其中,m及n均大于等于1;

2)按照各技术指标数值的大小对其进行分层处理,得m行n列的目标数据矩阵a,a=(aij)m×n,aij>0,i=1,2,…,m;j=1,2,…,n;

3)根据目标数据矩阵a构建m个n×n的判断矩阵,设第i个目标对应的判断矩阵为bi,且bi满足以下条件:

bi=(bkl)n×n,bkl>0,(k,l=1,2,l,n)

bkk=1,(k=1,2,…,n)

4)计算m个判断矩阵的特征值及特征向量,得与m个目标对应的m个特征向量ti,其中,特征向量ti为n维列向量;

5)对步骤4)得到的m个特征向量中的元素进行排序并打分,并得到与m个目标相对应的m个特征分值向量fi;

6)根据排序目标技术指标的重要性设定n个技术指标对应的权重值,再根据n个技术指标对应的权重值构建权重向量w,其中,权重向量w为n维的行向量;

7)计算每个目标的加权打分值,其中,第i个目标的加权打分值yi为:

yi=w·fi,(i=1,2,l,m)

其中,fi为第i个目标对应的特征分值向量;

8)根据步骤7)得到的各目标的加权打分值对各目标进行排序,完成基于层次分析法的多权重综合排序。

步骤2)中按照各技术指标数值的大小对其进行分层处理具体包括以下步骤:

21)对m个目标的n个技术指标分别建立数据区间;

22)将步骤21)建立的数据区间按照实际需求划分为x个子区间,[jl1,ju1],…,[jlx,jux],1<x<m;

23)定义层次标度,得分层后的目标数据矩阵a。

步骤21)的具体操作为:

对m个目标的第j个技术指标所对应的数据列表中的数据由小到大进行排序,以建立数据区间[jl,ju],其中,jl为第j个技术指标所对应的数据列表中最小的数值,ju为第j个技术指标所对应的数据列表中最大的数值。

步骤23)的具体操作为:

当第i个目标的第j个技术指标数值落在区间[jlx,jux]时,则该技术指标用标度x来表示,x=1,2,3,…,x,将m个目标的n个技术指标对应数值全部采用层次标度来表示,则可构建一个m行n列的目标数据矩阵a,且a[i,j]=x。

步骤3)中构造判断矩阵bi的具体操作为:

则判断矩阵bi可表示为:

步骤4)中计算m个判断矩阵的特征值及特征向量的具体操作为:

4a)根据以下公式计算第i个目标对应判断矩阵bi的全部特征值λ1,λ2,…,λn;

|λe-bi|=0

其中,e为单位矩阵;

4b)将步骤4a)计算得到的最大特征值λmax代入判断矩阵bi中,得相应的特征向量ti,其中,特征向量ti为n维列向量;

4c)重复步骤4a)及4b),得与m个目标相对应的m个特征向量。

步骤5)中对步骤4)得到的m个特征向量中的元素进行排序并打分的具体操作为:

5a)将第i个目标对应的特征向量ti中的元素由大到小进行排序;

5b)根据排列顺序赋予每个元素分值,其中,元素较大的元素分值大于等于元素较小的元素分值;

5c)结合步骤5a)及5b),将由步骤4)计算得到的特征向量ti转换为特征分值向量fi;

5d)重复步骤5a)、5b)及5c),得与m个目标相对应的m个特征分值向量。

本发明具有以下有益效果:

本发明所述的基于层次分析法的多权重综合排序方法在具体操作时,采用多权重多技术指标综合排序相结合实现多目标的综合排序,克服单一技术指标排序的局限性,具体的,按照各技术指标数值的大小对其进行分层处理,以消除各技术指标之间数值的数量级差异,使得后续排序处理更加方便,提高计算的可编程性。另外,通过权重向量及与m个目标相对应的m个特征分值向量fi构建每个目标的加权打分值,使得排序结果更加的多样化,在实际操作时,用户可以根据实际需要调整各指标的权重,从而得到综合的排序结果。

附图说明

图1为本发明的流程图。

具体实施方式

下面结合附图对本发明做进一步详细描述:

参考图1,本发明所述的基于层次分析法的多权重综合排序方法包括以下步骤:

1)确定排序目标数据库的指标体系,所述排序目标数据库包含m个目标,每个目标对应n个技术指标,其中,m及n均大于等于1;

2)按照各技术指标数值的大小对其进行分层处理,得m行n列的目标数据矩阵a,a=(aij)m×n,aij>0,i=1,2,…,m;j=1,2,…,n;

3)根据目标数据矩阵a构建m个n×n的判断矩阵,设第i个目标对应的判断矩阵为bi,且bi满足以下条件:

bi=(bkl)n×n,bkl>0,(k,l=1,2,l,n)

bkk=1,(k=1,2,…,n)

4)计算m个判断矩阵的特征值及特征向量,得与m个目标对应的m个特征向量ti,其中,特征向量ti为n维列向量;

5)对步骤4)得到的m个特征向量中的元素进行排序并打分,并得到与m个目标相对应的m个特征分值向量fi;

6)根据排序目标技术指标的重要性设定n个技术指标对应的权重值,再根据n个技术指标对应的权重值构建权重向量w,其中,权重向量w为n维的行向量;

7)计算每个目标的加权打分值,其中,第i个目标的加权打分值yi为:

yi=w·fi,(i=1,2,l,m)

其中,fi为第i个目标对应的特征分值向量;

8)根据步骤7)得到的各目标的加权打分值对各目标进行排序,完成基于层次分析法的多权重综合排序。

步骤2)中按照各技术指标数值的大小对其进行分层处理具体包括以下步骤:

21)对m个目标的n个技术指标分别建立数据区间;

22)将步骤21)建立的数据区间按照实际需求划分为x个子区间,[jl1,ju1],…,[jlx,jux],1<x<m;

23)定义层次标度,得分层后的目标数据矩阵a。

步骤21)的具体操作为:

对m个目标的第j个技术指标所对应的数据列表中的数据由小到大进行排序,以建立数据区间[jl,ju],其中,jl为第j个技术指标所对应的数据列表中最小的数值,ju为第j个技术指标所对应的数据列表中最大的数值。

步骤23)的具体操作为:

当第i个目标的第j个技术指标数值落在区间[jlx,jux]时,则该技术指标用标度x来表示,x=1,2,3,…,x,将m个目标的n个技术指标对应数值全部采用层次标度来表示,则可构建一个m行n列的目标数据矩阵a,且a[i,j]=x。

步骤3)中构造判断矩阵bi的具体操作为:

则判断矩阵bi可表示为:

步骤4)中计算m个判断矩阵的特征值及特征向量的具体操作为:

4a)根据以下公式计算第i个目标对应判断矩阵bi的全部特征值λ1,λ2,…,λn;

|λe-bi|=0

其中,e为单位矩阵;

4b)将步骤4a)计算得到的最大特征值λmax代入判断矩阵bi中,得相应的特征向量ti,其中,特征向量ti为n维列向量;

4c)重复步骤4a)及4b),得与m个目标相对应的m个特征向量。

步骤5)中对步骤4)得到的m个特征向量中的元素进行排序并打分的具体操作为:

5a)将第i个目标对应的特征向量ti中的元素由大到小进行排序;

5b)根据排列顺序赋予每个元素分值,其中,元素较大的元素分值大于等于元素较小的元素分值;

5c)结合步骤5a)及5b),将由步骤4)计算得到的特征向量ti转换为特征分值向量fi;

5d)重复步骤5a)、5b)及5c),得与m个目标相对应的m个特征分值向量。

实施例一

本发明可用于股票投资量化决策中,可通过对股票各项财务技术指标加权量化,达到优化投资目标综合排序的目的,具体操作过程为:

1)确定排序目标数据库的指标体系;该排序目标数据库包含m个目标,每个目标对应n个技术指标,其中m,n>=1。

随机选取沪深a股m=10支股票作为排序目标,且综合选取该10支股票的n=9个重要财务技术指标数据共同构成排序目标数据库的指标体系;该9个财务技术指标分别为p1:净资产收益率,p2:净利润,p3:每股盈利,p4:每股未分配利润,p5:负债率,p6:市净值,p7:市盈率,p8:每股净资产,p9:每股现金均值。

2)由于各个技术指标所对应的数值有可能是小数,也可能存在数量级的差异,为了保证后续便于操作,按照各指标数值的大小对其进行分层处理,并得到一个10行9列的目标数据矩阵a,a=(aij)10×9,aij>0,(i=1,2,l,10;j=1,2,l,9);

其中,所述分层处理的具体操作为:

首先,对10支股票的9个财务技术指标分别建立数据区间,具体做法为:

对10支股票的第j个财务技术指标所对应的数据列表中的数据由小到大进行排序,建立数据区间[jl,ju],其中,jl为第j个技术指标所对应的数据列表中最小的数值,ju为第j个技术指标所对应的数据列表中最大数值;

其次,将得到的每一个数据区间分别按照实际需求划分为x=5个子区间,[jl1,ju1],…,[jl5,ju5];

最后,定义层次标度,得到分层后的股票数据矩阵a,其具体做法为:

定义技术指标数值落在区间[jlx,jux]时,其对应的标度为x,x=1,2,3,4,5;

即当第i支股票的第j个技术指标数值落在区间[jl1,ju1]时,则该技术指标用标度1来表示;

当第i支股票的第j个技术指标数值落在区间[jl2,ju2]时,则该技术指标用标度2来表示;

当第i支股票的第j个技术指标数值落在区间[jl3,ju3]时,则该技术指标用标度3来表示;

当第i支股票的第j个技术指标数值落在区间[jl4,ju4]时,则该技术指标用标度4来表示;

当第i支股票的第j个技术指标数值落在区间[jl5,ju5]时,则该技术指标用标度5来表示;

将10支股票的9个财务技术指标对应的数值全部采用层次标度来表示,则可得到一个10行9列的数据矩阵a,a[i,j]=x。

3)构造判断矩阵,根据股票数据矩阵a构造出9个10×10的判断矩阵,设第j个技术指标对应的判断矩阵为bj,j=1,2,…,9,且bj满足以下条件:

bj=(bkl)10×10,bkl>0,(k,l=1,2,l,10)

bkk=1,(k=1,2,…,n)

其中,令判断矩阵bj也可表示为:

4)计算步骤3)中构建的9个判断矩阵的特征值及特征向量,具体步骤包括:

4a)根据以下公式计算第j个技术指标对应的判断矩阵bj的全部特征值λ1,λ2,…,λ10;

|λe-bj|=0

其中,e为单位矩阵;

4b)将最大特征值λmax代入判断矩阵bj中,得相应的特征向量tj,特征向量tj为10×1的列向量;

4c)重复步骤4a)及4b),得与9个技术指标相对应的9个特征向量tj,j=1,2,…,9。

5)对步骤4)得到的9个特征向量中的元素进行排序并打分,具体步骤包括:

5a)将第j个技术指标对应特征向量tj中的元素由大到小进行排序;

5b)根据排列顺序赋予每个元素分值;

例1:定义特征向量元素大小排序第一至第九的打分分别为:9,8,7,6,5,4,3,2,1。

例2:定义特征向量元素大小排序第一至第九的打分分别为:18,16,14,12,10,8,6,4,2。

例3:定义特征向量元素大小排序第一至第九的打分分别为:9,7,5,4,3,2,1,1,1。

5c)结合步骤5a)及5b),将步骤4)计算得到的特征向量tj转换为特征分值向量fj;

5d)重复步骤5a)、5b)及5c),得与9个技术指标相对应的9个特征分值向量fj,fj=(fij)10×1。

6)构造特征分值矩阵c,根据步骤5)得到的9个特征分值向量fj构建109的特征分值矩阵c=(cij)10×9,cij>0,cij=fij;

7)根据股票技术指标的重要性定义出各技术指标对应的权重值,由该9个技术指标对应的9个权重值构建权重向量w,权重向量w为19的行向量;

8)根据特征分值矩阵c及权重向量w计算加权打分值向量y,其中,

y=c·wt

其中,wt为表征权重向量w的转置;

9)根据加权打分值向量y对10支股票进行排序。

实施例二

实施例二与实施例一的区别在于步骤2),实施例二中的步骤2)为:

由于各个技术指标所对应的数值有可能是小数,也可能存在数量级的差异,为了保证后续便于操作,按照各指标数值的大小对其进行分层处理,得10行9列的数据矩阵a,a=(aij)10×9,aij>0;

所述分层处理包含如下步骤:

首先,对10支股票的9个财务技术指标分别建立数据区间,具体做法为:

对10支股票的第j个财务技术指标所对应的数据列表中的数据由小到大进行排序,建立数据区间[jl,ju],其中,jl为第j个技术指标所对应的数据列表中最小的数值,ju为第j个技术指标所对应的数据列表中最大数值;

其次,将上述得到的每一个数据区间分别按照实际需求划分为x=5个子区间,[jl1,ju1],…,[jl5,ju5];

最后,定义层次标度,得分层后的目标数据矩阵a,其具体做法如下所述:

定义技术指标数值落在区间[jlx,jux]时,其对应的标度为2x-1,x=1,2,3,4,5;

即当第i个目标的第j个技术指标数值落在区间[jl1,ju1]时,则该技术指标用标度1来表示;

当第i个目标的第j个技术指标数值落在区间[jl2,ju2]时,则该技术指标用标度3来表示;

当第i个目标的第j个技术指标数值落在区间[jl3,ju3]时,则该技术指标用标度5来表示;

当第i个目标的第j个技术指标数值落在区间[jl4,ju4]时,则该技术指标用标度7来表示;

当第i个目标的第j个技术指标数值落在区间[jl5,ju5]时,则该技术指标用标度9来表示;

将10支股票的9个财务技术指标对应数值全部采用层次标度来表示,得一个10行9列的目标数据矩阵a,且a[i,j]=2x-1。

以上仅是本发明的两个最佳实例,不构成对本发明的任何限制,显然在本发明的构思下,可以对排序过程中赋值方式或打分方式进行不同的变更与改进,但这些均在本发明的保护之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1