Matlab学习系列33.-泰尔指数及分解

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab学习系列33.-泰尔指数及分解

33. 泰尔指数及分解

一.泰尔指数

泰尔指数(Theil index )或者泰尔熵标准(Theil ’s entropy measure)泰是由泰尔(Theil,1967)利用信息理论中的熵概念来计算收入不平等而得名。

熵在信息论中被称为平均信息量。在信息理论中,假定某事件E 将以某概率p 发生,而后收到一条确定消息证实该事件E 的发生,则此消息所包含的信息量用公式可以表示为:

1

h()ln()p p

=

设某完备事件组由各自发生概率依次为12(,,,)n p p p L

由n 个事件

12(,,,)n E E E L 构成,则有1

1n

i i p ==∑,熵或者期望信息量等于各事件的信息

量与其相应概率乘积的总和:

111

1

()()log()log()n

n

n

i i i i i i i i i H x p h p p p p p ======-∑∑∑

(1)

将信息理论中的熵指数概念用于收入差距的测度时,可将收入差距的测度解释为将人口份额转化为收入份额(类似于洛伦兹曲线中将人口累计百分比信息转化为收入累计百分比)的消息所包含的信息量。而泰尔指数只是熵指数中的一个应用最广泛的特例。泰尔指数的表达式为:

11ln()n i

i i y y T n y y

==∑ (2)

其中,T 为收入差距程度的测度泰尔指数,i y 表示第i 个体的收入,y 表示所有个体的平均收入。

对于分组数据,泰尔指数有另一种表达式:

1

ln(

)k

i

i i i

w T w e ==∑ (3)

其中,i w 表示第i 组收入占总收入的比重,i e 表示第i 组人口数占总人口数的比重。

例1.

(I) 按公式(2)计算:

function T=Theil2(x)

%函数Theil2()计算泰尔指数, 反映收入水平的差异 %其中,x 为n 个个体的收入 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]; %每个个体的收入(万美元) T2=Theil2(y2)

运行结果:

T2 = 0.0791

(II) 按公式(3)计算:

function T=Theil(y,p)

%函数Theil()计算泰尔指数, 反映收入水平的差异

%其中,y 为各组的平均收入; p 为各组包含的个体数 w=y.*p/sum(y.*p); e=p./sum(p);

T=sum(w.*log(w./e)); 主程序:

y=[10 8 6 4 2]; %各组的平均收入(万美元) p=[2 4 6 4 2]; %各组包含的个体数 T=Theil(y,p)

运行结果:

T = 0.0791

二. 泰尔指数分解法

泰尔指数作为收入不平等程度的测度指标具备良好的可分解性质,即将样本分为多个群组时,泰尔指数可以分别衡量组内差距与组间差距对总差距的贡献。假设包含n 个个体的样本被分为K 个群组,每组分别为(1,,)k g k K =L ,第k 组k g 中的个体数目为k n ,则有

1

K

k

k n

n ==∑,i y 表示个体i 的收入份额(占总

收入的比例), k y 表示第k 组的收入份额(占总收入的比例),记b T 与w T 分别为组间差距和组内差距,则可将泰尔指数分解如下:

1

1

ln

(ln )1k

K

K

k i i k

b w k k k k i g k k k

y y y y T T T y y n n

y n ==∈=+=+∑∑∑

(4) 在上式中组间差距b T 与组内差距w T 分别有如下表达式:

1

ln

K

k b k k k y T y n n

==∑

(5)

1

(ln )1k

K

i i k

w k k i g k k

y y y T y y n =∈=∑∑

(6)

另外,值得注意的是组内差距项分别由各组的组内差距之和构成,各组的组内差距的计算公式与样本总体的计算公式并无二致,只是将样本容量控制在第k 组的个体数目k n 。

例 2 还是例1的数据,计算组间差距b T 与组内差距w T ,验证泰尔指数

b w T T T =+

function [Tb,Tw]=TbTw(x,n)

%函数TbTw()计算泰尔指数分解, 返回Tb 为组间差距, Tw 为组内差距 %泰尔指数T=Tb+Tw

%x 为N 个个体的收入向量, 依次分为K 个分组

%n=[n1,...,nK]为各分组的个体数向量, 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 个分组的nk 个个体的收入份额(占总收入的比例) 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 组的组内差距 end

Tw=sum(y.*z); %总的组内差距为各分组组内差距的加权和 主程序:

x=[10 10 8 8 8 8 6 6 6 6 6 6 4 4 4 4 2 2];

相关文档
最新文档