基于Matlab的熵权TOPSIS法

方法本质:熵权以得到权重;TOPSIS由topsis算法简化而来,其用来排名。因此熵权TOPSIS法主要得到两个结果,一个权重,一个排名。本质上与数据类型无关,无论是时间序列、截面数据、面板数据都可以进行处理,值得注意的是Matlab面板数据排列方式属于时间堆积式,这点与STATA相反。「中文部分记得注释~」

clearvars

clc

format short

format compact

X = 0.5*log(abs(100*(rand(300,4))))+sqrt(abs(100*(rand(300,4))));

 基于仿真梅森算法生成300*9的随机数矩阵。300行为样本容量,可以是时间、截面及面板数据。

Variable = {'X1','X2','X3','X4','权重之和'}';                      

 划重点:'权重之和'不能少;转置!!!

[Wj2,T1,T2_sort] = ShangTopsis(X,Variable)      

 该函数在个人主页资源部分可下载,代码注释也较为详细。         

得到的结果如图片所示,权重结果和排名结果,其中排名结果四列分别为——城市id、正理想距离、负理想距离、贴近度。最后关于,熵权topsis的推导网上有很多,感兴趣的坛友可以去看看,我参照的推导比较多,一本是杨德平老师经济预测那本书,一处是与网上资源进行对照。

你可能感兴趣的:(matlab,算法,开发语言)