泰尔指数r语言_【数学建模】泰尔指数及分解的计算方法与Matlab实现
補(bǔ)充更方便使用的R語(yǔ)言版本:張敬信:【R語(yǔ)言】泰爾指數(shù)及其分解?zhuanlan.zhihu.com
前言
最近查一點(diǎn)泰爾指數(shù)的資料,發(fā)現(xiàn)無(wú)論是公式還是軟件實(shí)現(xiàn),都說(shuō)的特別亂,看不出所以然。
特整理了該內(nèi)容,并用Matlab軟件給出了實(shí)現(xiàn)的代碼。
一.泰爾指數(shù)
泰爾指數(shù)(Theil index)或者泰爾熵標(biāo)準(zhǔn)(Theil’s entropy measure)泰是由泰爾(Theil,1967)利用信息理論中的熵概念來(lái)計(jì)算收入不平等而得名。
熵在信息論中被稱為平均信息量。在信息理論中,假定某事件E將以某概率p發(fā)生,而后收到一條確定消息證實(shí)該事件E的發(fā)生,則此消息所包含的信息量用公式可以表示為:
設(shè)某完備事件組由各自發(fā)生概率依次為
, 由n個(gè)事件
構(gòu)成,則有
, 熵或者期望信息量等于各事件的信息量與其相應(yīng)概率乘積的總和:
將信息理論中的熵指數(shù)概念用于收入差距的測(cè)度時(shí),可將收入差距的測(cè)度解釋為將人口份額轉(zhuǎn)化為收入份額(類似于洛倫茲曲線中將人口累計(jì)百分比信息轉(zhuǎn)化為收入累計(jì)百分比)的消息所包含的信息量。而泰爾指數(shù)只是熵指數(shù)中的一個(gè)應(yīng)用最廣泛的特例。泰爾指數(shù)的表達(dá)式為:
其中,
為收入差距程度的測(cè)度泰爾指數(shù),
表示第
個(gè)體的收入,
表示所有個(gè)體的平均收入。
對(duì)于分組數(shù)據(jù),泰爾指數(shù)有另一種表達(dá)式:
其中,
表示第
組收入占總收入的比重,
表示第
組人口數(shù)占總?cè)丝跀?shù)的比重。
例1.
(I) 按公式(2)計(jì)算:
functionT=Theil2(x)%函數(shù)Theil2()計(jì)算泰爾指數(shù), 反映收入水平的差異
%其中,x為n個(gè)個(gè)體的收入
xx=x./mean(x);
T=mean(xx.*log(xx));
主程序:
y2=[10 10 8 8 8 8 6 6 6 6 6 6 4 4 4 4 2 2];
%每個(gè)個(gè)體的收入(萬(wàn)美元)
T2=Theil2(y2)
運(yùn)行結(jié)果:
T2 = 0.0791
(II) 按公式(3)計(jì)算:
functionT=Theil(y,p)%函數(shù)Theil()計(jì)算泰爾指數(shù), 反映收入水平的差異
%其中,y為各組的平均收入; p為各組包含的個(gè)體數(shù)
w=y.*p/sum(y.*p);
e=p./sum(p);
T=sum(w.*log(w./e));
主程序:
y=[10 8 6 4 2]; %各組的平均收入(萬(wàn)美元)
p=[2 4 6 4 2]; %各組包含的個(gè)體數(shù)
T=Theil(y,p)
運(yùn)行結(jié)果:
T = 0.0791
二. 泰爾指數(shù)分解法
泰爾指數(shù)作為收入不平等程度的測(cè)度指標(biāo)具備良好的可分解性質(zhì),即將樣本分為多個(gè)群組時(shí),泰爾指數(shù)可以分別衡量組內(nèi)差距與組間差距對(duì)總差距的貢獻(xiàn)。假設(shè)包含
個(gè)個(gè)體的樣本被分為
個(gè)群組,每組分別為
,第
組
中的個(gè)體數(shù)目為
,則有
.
用
表示個(gè)體
的收入份額(占總收入的比例),
表示第
組的收入份額(占總收入的比例)
記
與
分別為組間差距和組內(nèi)差距,則可將泰爾指數(shù)分解如下:
在上式中組間差距與組內(nèi)差距分別有如下表達(dá)式:
其中,
為第k組的組內(nèi)差距(k=1,...K).
進(jìn)一步,可以計(jì)算第k組組內(nèi)差距的貢獻(xiàn)率和組間差距的貢獻(xiàn)率:
另外,值得注意的是組內(nèi)差距項(xiàng)分別由各組的組內(nèi)差距之和構(gòu)成,各組的組內(nèi)差距的計(jì)算公式與樣本總體的計(jì)算公式并無(wú)二致,只是將樣本容量控制在第k組的個(gè)體數(shù)目。
例2還是例1的數(shù)據(jù),計(jì)算組間差距與組內(nèi)差距,驗(yàn)證泰爾指數(shù)
function[Tb,Tw,T,z,Db,Dw]=TbTw(x,n)%函數(shù)TbTw()計(jì)算泰爾指數(shù)分解
%返回Tb為組間差距, Tw為組內(nèi)差距, z為各個(gè)組內(nèi)差距,
%返回T為泰爾指數(shù), Db為組間貢獻(xiàn)率, Dw為各個(gè)組內(nèi)貢獻(xiàn)率
%泰爾指數(shù)T=Tb+Tw
%x為N個(gè)個(gè)體的收入向量, 依次分為K個(gè)分組, n=[n1,...,nK]為各分組的個(gè)體數(shù)向量, sum(n)=N
K=length(n);
s=[0,cumsum(n)];
for k=1:K
X{k}=x(s(k)+1:s(k+1))./sum(x); %X{k}為第k個(gè)分組的nk個(gè)個(gè)體的收入份額(占總收入的比例)
y(k)=sum(X{k}); %y(k)為第k組的收入份額(占總收入的比例)
end
Tb=sum(y.*log(y./(n./length(x)))); %組間差距
for k=1:K
z(k)=sum((X{k}./y(k)).*log(n(k)*X{k}./y(k))); %第k組的組內(nèi)差距
end
Tw=sum(y.*z); %總的組內(nèi)差距為各分組組內(nèi)差距的加權(quán)和
T=Tb+Tw; %泰爾指數(shù)
Db=Tb/T; %組間貢獻(xiàn)率
Dw=y.*z/T; %各分組內(nèi)的組內(nèi)貢獻(xiàn)率
主程序:
x=[10 10 8 8 8 8 6 6 6 6 6 6 4 4 4 4 2 2];
%每個(gè)個(gè)體的收入(萬(wàn)美元)
n=[2 4 6 4 2]; %各分組的個(gè)體數(shù)
[Tb,Tw,T,z,Db,Dw]=TbTw(x,n)
運(yùn)行結(jié)果:
Tb
= 0.0791
Tw
= -3.7007e-17
T
= 0.0791
z
= 1.0e-15 *
0 0
-0.1110 0 0
Db
= 1.0000
Dw
= 1.0e-15 *
0 0
-0.4680 0 0
說(shuō)明:由于該例中,每個(gè)分組內(nèi)各個(gè)個(gè)體的收入是相同的,故每個(gè)分組的組內(nèi)差距為0,總的組內(nèi)差距Tw也為0,結(jié)果中的-3.7007e-17是由于Matlab中的雙精度誤差造成的,相當(dāng)于是0.
例3 修改例1中的數(shù)據(jù),讓各分組的個(gè)體收入不相等,繼續(xù)測(cè)試上述算法。
原第1組:10、10,改為9.5、10.5
原第2組:8、8、8、8,改為7、9、7.5、8.5
原第3組:6、6、6、6、6、6改為5、7、5.5、6.5、6、6
原第4組:4、4、4、4改為3、5、3.5、4.5
原第5組:1.5、2.5
主程序:
x2=[9.5 10.5 7 9 7.5 8.5 5 7 5.5 6.5 6 6 3 5 3.5 4.5 1.5 2.5]; %每個(gè)個(gè)體的收入(萬(wàn)美元)
n=[2 4 6 4 2]; %各分組的個(gè)體數(shù)
[Tb,Tw,T,z,Db,Dw]=TbTw(x2,n)
運(yùn)行結(jié)果:
Tb
= 0.0791
Tw
= 0.0077
T
= 0.0868
z
= 0.0013 0.0049
0.0058 0.0197 0.0316
Db
= 0.9112
Dw
= 0.0027 0.0167
0.0223 0.0336 0.0135
作者:張敬信
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
總結(jié)
以上是生活随笔為你收集整理的泰尔指数r语言_【数学建模】泰尔指数及分解的计算方法与Matlab实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: “顶梁柱”落地青川,救助一个人,撑起一个
- 下一篇: 我用Fedora19 办公