首页 > 编程知识 正文

权重怎么算,等权重指数计算公式

时间:2023-05-03 19:32:37 阅读:151854 作者:3243

(用MATLAB实现)

1.线性加权法

线性加权法的适用条件是各评价指标之间相互独立,这样可以采用多元线性回归法得到各指标对应的系数。

举个例子,估值的对象是股票,已知几个股票的各项指标以及这些股票的历史表现,其中最后一列标记为1的是上涨股,标记为0的是普通股,标记为-1的是下跌股。 希望基于这些已知的数据,建立股票的估值模型,从而可以利用模型对新股进行估值。

1 .导入数据

clear all,closealls=dataset(xlsfile ),SampleA1.xlsx ); 2 .多元线性回归

导入数据后,可以首先建立多元线性回归模型。 具体实现过程和结果如下。

myfit=linearmodel.fit(s; DISP(myfit ) sx=s ) :1:10; sy=s (3360,11; n=1:size(s,1 ); sy1=predict(myfit,sx ); figureplot(n,sy,' ob ',n,sy1,' *r ' ) xlabel )、'样品编号',' fontsize ',12 ' ylabel )、'综合得分',' fontsize '

使用该模型预测原始数据,得到的股票综合得分如图1所示。 从图中可以看出,尽管这些数据存在一定的偏差,但三个聚类的分层非常明显,表明模型在刻画历史数据方面具有较高的精度。

图1多元线性回归模型得到的总分与原始分数的比较图

3 .逐步回归

上述对所有变量进行回归,也可以采用逐步回归进行因子筛选,是得到优选因子后的模型,具体实现过程如下。

myfit2=linearmodel.Stepwise(s; DISP(myfit2) sy2=predict (myfit 2,sx ); figureplot(n,sy,' ob ',n,sy2,' *r ' ) xlabel )、'样品编号',' fontsize ',12 ' ylabel )、'综合得分',' fontsize '

通过该模型可以看出,逐步回归模型得到的模型单因子少了5个,组合因子多了5个,反而提高了模型的决策系数。 这表明逐步回归得到的模型精度较高,影响因子较少,对分析模型本身非常有帮助。 特别是有助于消除因子。

利用该模型预测原始数据,得到的股票综合得分如图2所示,总体趋势与图1相似。

图2逐步回归模型得到的综合得分与原得分的比较图

以上是线性加权评估模型的构建方法,所用的程序框架可以直接应用于大多数这类问题,核心是建立评估指标体系,是建模的基本功。 一般来说,线性加权法的特点如下。

(1)该方法可以线性补偿各评价指标之间的作用,保证综合评价指标的公平性;

)2)该方法对权重系数的评价结果影响明显,即权重较大的指标值对综合指标的作用较大;

)3)该方法计算简单,可操作性强,易于推广。

2.层次分析法

层次分析法(Analytic Hierarchy Process,AHP )是美国运输学家无心毛皮虾(T. L. Saaty )于20世纪70年代初提出的一种决策方法,是将半定性、半定量问题转化为定量问题的有效方法,具有多种因素

AHP的本质是根据人类对事物的认知特征,对感性认识进行量化的过程。 在分析诸多因素时,大脑很难同时整理出很多信息,而层次分析法的优点是将因素归纳起来分层,逐层分析和量化事物,从而更准确地认识复杂事物,帮助决策。

在数学建模中,层次分析法的应用场景很多,总结起来主要有以下几个场景。

(1)评价、评价类主题。 这样的主题可以直接用层次分析法进行评价,如奥运会评价、彩票方案评价、导师与学生的相互选择、建模论文评价、城市空气质量分析等。

)2)资源分配与决策类主题。 这样的题目可以转换成评价类的题目,按照AHP求解。 例如,投资一笔资金,有几个候选项目。

那么如何进行投资分配最合理呢?这类题目中还有一个典型的应用,就是方案的选择问题,比如旅游景点的选择、电脑的挑选、学校的选择、专业的选择等等,这类应用可以说是 AHP 法最经典的应用场景了。

(3) 一些优化问题,尤其是多目标优化问题。对于通常的优化问题,目前已有成熟的方法求解。然而,这些优化问题一旦具有如下特性之一,如:

①问题中存在一些难以度量的因素;

②问题的结构在很大程度上依赖于决策者的经验;

③问题的某些变量之间存在相关性;

④需要加入决策者的经验、偏好等因素,

这时就很难单纯依靠一个优化的数学模型来求解。这类问题,通常的做法是借助 AHP 法将复杂的问题转化为典型的、便于求解的优化问题,比如多目标规划,借助层次分析法,确定各个目标的权重,从而将多目标规划问题转化为可以求解的单目标规划问题。

        如何用 MATLAB 来实现层次分析法的过程,层次分析法中,需要 MATLAB 的地方主要就是将评判矩阵,转化为因素的权重矩阵。为此,这里只介绍如何用 MATLAB 来实现这一转化。

将评判矩阵转化为权重矩阵,通常的做法就是求解矩阵最大特征根和对应阵向量。

需要注意的是,在将评判矩阵转化为权重向量的过程中,一般需要先判断评判矩阵的一致性,因为通过一致性检验的矩阵,得到的权重才更可靠。

        下面就以一个实例来说明如何应用 MATLAB 来求解权重矩阵,具体程序如下:

%% AHP法权重计算MATLAB程序%% 数据读入clcclear allA=[1 2 6; 1/2 1 4; 1/6 1/4 1];% 评判矩阵%% 一致性检验和权向量计算[n,n]=size(A);[v,d]=eig(A);r=d(1,1);CI=(r-n)/(n-1);RI=[0 0 0.58 0.90 1.12 1.24 1.32 1.41 1.45 1.49 1.52 1.54 1.56 1.58 1.59];CR=CI/RI(n);if CR<0.10 CR_Result='通过'; else CR_Result='不通过'; end %% 权向量计算w=v(:,1)/sum(v(:,1));w=w'; %% 结果输出disp('该判断矩阵权向量计算报告:');disp(['一致性指标:' num2str(CI)]);disp(['一致性比例:' num2str(CR)]);disp(['一致性检验结果:' CR_Result]);disp(['特征值:' num2str(r)]);disp(['权向量:' num2str(w)]);

        运行该程序,可得到以下结果:

该判断矩阵权向量计算报告:一致性指标:0.0046014一致性比例:0.0079334一致性检验结果:通过特征值:3.0092权向量:0.58763 0.32339 0.088983

        应用这段程序时,只要将评判矩阵输入到程序中,其它地方都不需要修改,然后就可以直接、准确地计算出对应的结果,所以这段程序在实际使用中非常灵活。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。