熵值法excel计算步骤 熵值法如何计算

发布时间: 9/16/2023 5:23:57 PM 来源: 我没人疼

熵值法的步骤

(1)选取n个国家,m个指标,则为第i个国家的第j个指标的数值。(i=1,2…,n; j=1,2,…,m)

熵值法excel计算步骤 熵值法如何计算

(2) 指标的标准化处理:异质指标同质化

由于各项指标的计量单位并不统一,因此在用它们计算综合指标前,我们先要对它们进行标准化处理,即把指标的绝对值转化为相对值,并令,从而解决各项不同质指标值的同质化问题。而且,由于正向指标和负向指标数值代表的含义不同(正向指标数值越高越好,负向指标数值越低越好) ,因此,对于高低指标我们用不同的算法进行数据

标准化处理。其具体方法如下:

正向指标:

负向指标:

则为第i个国家的第j个指标的数值。(i=1,2…,n; j=1,2,…,m)。为了方便起见,仍记数据。

(3)计算第 j 项指标下第 i 个国家占该指标的比重。

(4)计算第 j 项指标的熵值。

(5)计算第j项指标的差异系数。对第项指标,指标值的差异越大,对方案评价的左右就越大,熵值就越小,定义差异系数。

(6)求权值。

(7)计算各国家的综合得分。

熵值法步骤

(1)方法原理及适用场景

熵值法属于一种客观赋值法,其利用数据携带的信息量大小计算权重,得到较为客观的指标权重。熵值是不确定性的一种度量,熵越小,数据携带的信息量越大,权重越大;相反熵越大,信息量越小,权重越小。

适用场景:熵值法广泛应用于各个领域,对于普通问卷数据(截面数据)或面板数据均可计算。在实际研究中,通常情况下是与其他权重计算方法配合使用,如先进行因子或主成分分析得到因子或主成分的权重,即得到高维度的权重,然后再使用熵值法进行计算,想得到具体各项的权重。

(2)操作步骤

使用SPSSAU【综合评价-熵值法】。

使用熵值法计算权重时,需将数据整理为以下格式:

1个指标占用1列数据。下图中样本编号只是个编号无实际意义,用于标识下样本的ID号,一般是比如年份一类的数据信息,分析时并不需要使用。

(3)注意事项

熵值法的计算公式上会有取对数,因此如果小于等于0的数字取对数,则会出现null值。此种情况共有两种办法。

第一种:SPSSAU非负平移功能是指,如果某列(某指标)数据出现小于等于0,则让该列数据同时加上一个‘平移值’【该值为某列数据最小值的绝对值+0.01】,以便让数据全部都大于0,因而满足算法要求。

第二种:研究者也可以手工查看数据并将小于等于0的数据设置为异常值,但此种做法会让样本减少。

熵值法怎么把多个指标合成一个指标

具体步骤如下:

1、计算各指标的熵值,熵值越大表示该指标的信息量越大,即该指标对综合评价的影响越大。

2、计算各指标的熵值,熵值越大表示该指标的信息量越大,即该指标对综合评价的影响越大。

3、根据各指标的权重计算加权熵值,加权熵值越小表示综合评价越好。

4、将加权熵值转化为综合评价指标,可以采用线性或非线性的转换方法,如指数函数、对数函数等。

如何用熵权法计算权重?

熵权法是一种客观赋权方法。十分复杂,计算步骤如下:

1、构建各年份各评价指标的判断矩阵。

2、将判断矩阵进行归一化处理, 得到归一化判断矩阵。

3、根据熵的定义,根据各年份评价指标,可以确定评价指标的熵。

4、定义熵权。定义了第n个指标的熵后,可得到第n个指标的熵权。

5、计算系统的权重值。

根据信息熵的定义,对于某项指标,可以用熵值来判断某个指标的离散程度,其信息熵值越小,指标的离散程度越大, 该指标对综合评价的影响(即权重)就越大,如果某项指标的值全部相等,则该指标在综合评价中不起作用。

因此,可利用信息熵这个工具,计算出各个指标的权重,为多指标综合评价提供依据。

注意事项:

系统由有序转变为无序被的过程是熵增,比如系的鞋带会开;家中铺的很整齐的床单睡过后会变乱。

“热力学第二定律”热量可以自发地从较热的物体传递到较冷的物体,但不可能自发地从较冷的物体传递到较热的物体。

比如一滴墨滴进清水,清水会变黑;一个热的物体和一个冷的物体放在一起,热的物体会变冷,冷的物体会变热.....物理系统总是会趋向平衡状态。

一个系统的温度是不均匀的,它慢慢趋向均匀;一个溶液的浓度是不均匀的,同样它会慢慢趋向均匀。

如何用excel 做属性ahm赋权法

理解熵值法

1

学习熵值法,熵值法是一种理论的数学方法,从计算机科学角度上看,属于一种算法。要运用熵值法当然要理解它,搞懂它。

2

熵值法原理: 熵的概念源于热力学,是对系统状态不确定性的一种度量。在信息论中,信息是系统有序程度的一种度量。而熵是系统无序程度的一种度量,两者绝对值相等,但符号相反。根据此性质,可以利用评价中各方案的固有信息,通过熵值法得到各个指标的信息熵,信息熵越小,信息的无序度越低,其信息的效用值越大,指标的权重越大。

3

具体的方法步骤见附图课件。

END

利用Excel进行熵值法计算求解

给出算例,题干是购买教车的一个决策矩阵,给出了四个方案供我们进行选择,每个方案中均有相同的六个属性,我们需要利用熵值法求出各属性的权重,级在方案中的贡献度。

一:求第j个属性下第i个方案Ai的贡献度,公式为附图一,在excel中,先求出各列的和,然后用每行的数值比上列和,形成新的矩阵,如附图2所示。

求出所有方案对属性Xj的贡献总量,用附图一所示的算法。在excel操作中,将刚才生成的矩阵每个元素变成每个元素与该ln(元素)的积,如附图2所示。

求出常数k,k为1/ln(方案数),本例中有4个方案,4中车的类型,所以求得k为

0.721348,再求k与新矩阵每一列和的乘积,这样获得的6个积为所有方案对属性xj的贡献度。至此所有的Ej就求出来了。

dj为第j属性下各方案贡献度的一致性程度。dj=1-Ej,利用上面求得的Ej,可以得到dj

各属性权重为对应的dj与所有dj和的商。dj的和为 0.22478 ,求得各属性的权重为 0.14 0.07 0.49 0.16 0.04 0.10

所以在购买汽车时,据所提供信息,利用熵值法计算得出的权重为油耗占14%,功率占7%,费用占49%,安全性占16%,维护性占4%,操作性占10%。故我们在进行购买决策时,更多是考虑车型的价格和安全性等重要因素。这是从权重角度考虑的。

就本例而言,每个车型每个指标的得分与其权重的乘积之和为其综合评价值,这样求得本田5.118分,奥迪18.32分,桑塔纳8.216分,别克12.495分。所以综合评价排序为奥迪、别克、桑塔纳、本田。

熵值法用excel计算的程序,谁有请发给我一份,不胜感激。在线等

程序如下,希望你可以看懂并选为满意答案,我的知道上没财富值了,谢谢!

Dimzbdf0(), zbdfl(), min_zb(), max_zb(), zbh(), p0(), pl(), pclogp(), h(), w(),sum_h As Single

Dim temp, fw, df As Variant

Dim SZfCommandBar As CommandBar

Dim SZfCommandBarButton As CommandBarButton

Public n, m

Private Sub Workbook_BeforeClose(CanceI As Boolean)

Application.CommandBars("熵值法").Delete

End Sub

Private SubWorkbook_open()

On Error ResumeNext

Application.CommandBars("熵值法").Delete

Set SZfCommandBar =Application.CommandBars.Add("熵值法")

WithSZfCommandBar.Controls

SetSZfCommandBarButton = .Add(msoControlButton)

With szfCommand.BarButton

.Style =msoButtonlconAndCaption

.Caption = "熵值法"

.OnAction ="S2F"

End With

End With

SZfCommandBar.ViSmle= True

End Sub

Private Sub S2F()

On Error ResumeNext

fw =InputBox("请输入数据在EXCEL中的起始结束位置" & vbCrLf &vbCrLf & " ※一定要正确输入,否则按确定后将会出错! ", "输入范围", ActiveWindow.RangeSelection.AddressLocal(0, 0))

If Len(Trim(fw)) =0 Then

MsgBox "没有输入正确范围,请重新执行程序输入正确的数据范围!",vbOKOnly, "没有输入"

Else

n =Range(fw).Rows.Count

m =Range(fw).Coluruns.Count

ReDim zbdf0(n, m),zbdfl(n, m), min_zb(m), max_zb(m), zbh(m), pO(n, m), pl(n, m), pclogp(n, m),h(m), w(m)

For i = l To n

For J = 1 To m

zbdf0(i, J) =ActiveSheet.Range(fw).Cells(i, J)

Next

Next

For J = 1 To m

min_zb(J) =zbdfO(1, J)

max_zb(J) =zbdfO(1, J)

zbh(J) = 0

For i = l To n

If min_zb(J) >zbdfO(i, J) Then

min_zb(J) =zbdf0(i, J)

End If

If max_zb(J)

max_zb(J) =zbdf0(i, J)

End If

zbh(J) = zbh(J) +zbdf0(i, J)

Next

Next

For J = 1 To m

zbh(J) = 0

For i = 1 To n

zbdfl(i, J) =IIf((min_zb(J)) >= 0, zbdf0(i, J), (zbdm(i, J) - mm_zb(J)) / (max_zb(J) -mim_zb(J)))

zbh(J) = zbh(J) +zbdfl(i, J)

Next

Next

sum_h = 0

For J = 1 To m

h(J) = 0

For i = l To n

p0(i, J) = zbdfl(i,J) / zbh(J)

pl(i, J) = 10000 *pO(i, J) + 1

pclogp(i, J) =pl(i, J) * ApplicaonWorksheetFunction.Logl0(pl(i, J))

h(J) = h(J) +pelogp(i, J)

Next

sum_h = sum_h +h(J)

Next

For J = 1 To m

w(J) = h(J) / sum_h

Next

df =Applicatin.WorksheetFunction.MMun(pclogp,Application.WorksheetFunction.Transpose(w))

Application.Worksheets("熵值法输出").Delete

Worksheets.Addafter:=Sheets(Application.Worksheets.Count)

Appliction.ActiveSheet.Name= "熵值法输出"

Columns("B:B").ColumnWidth= 15

[B1] = "熵值法得分"

For i = 2 To n + 1

Cells(i, 2).Value =df(i - 1, 1)

Next

[C1] = "熵值法排名"

Range("C2:C"& (n + l)).FormulaArray = "=RANK(RC[-1 ]:R[" & (n - 1) &"l]C[-1 ],R2C2:R" & n + l & "C21)"

End If

End Sub

相关推荐