前言
最近查一点泰尔指数的资料,发现无论是公式还是软件实现,都说的特别乱,看不出所以然。
特整理了该内容,并用Matlab软件给出了实现的代码。
一、泰尔指数
泰尔指数(Theil index)或者泰尔熵标准(Theil’s entropy measure)泰是由泰尔(Theil,1967)利用信息理论中的熵概念来计算收入不平等而得名。
熵在信息论中被称为平均信息量。在信息理论中,假定某事件E将以某概率p发生,而后收到一条确定消息证实该事件E的发生,则此消息所包含的信息量用公式可以表示为:
\[h(p)=ln(\frac{1}{p})\]
设某完备事件组由各自发生概率依次为p1,p2,...,p_n由n个事件E1,E2,...,E_n构成,则有\[\sum_{i=1}^n p_i =1\],熵或者期望信息量等于各事件的信息量与其相应概率乘积的总和:
\[H(x)=\sum_{i=1}^n p_i h(p_i) = \sum_{i=1}^n p_i \ln\big(\frac{1}{p_i}\big) = -\sum_{i=1}^n p_i \ln(p_i)\] (1)
将信息理论中的熵指数概念用于收入差距的测度时,可将收入差距的测度解释为将人口份额转化为收入份额(类似于洛伦兹曲线中将人口累计百分比信息转化为收入累计百分比)的消息所包含的信息量。而泰尔指数只是熵指数中的一个应用最广泛的特例。泰尔指数的表达式为:
\[T=\frac{1}{n} \sum_{i=1}^n \frac{y_i}{\bar{y}} \ln\big(\frac{y_i}{\bar{y}}\big)\] (2)
其中,T为收入差距程度的测度泰尔指数,y_i表示第i个个体的收入,\[\bar{y}\]表示所有个体的平均收入。
对于分组数据,泰尔指数有另一种表达式:
\[T=\sum_{k=1}^K w_k \ln\big( \frac{w_k}{e_k} \big)\] (3)
其中,w_k表示第k组收入占总收入的比重,e_k表示第k组人口数占总人口数的比重。
例1.
(I) 按公式(2)计算:
主程序:
运行结果:
T2 = 0.0791
(II) 按公式(3)计算:
主程序:
运行结果:
T = 0.0791
二. 泰尔指数分解法泰尔指数作为收入不平等程度的测度指标具备良好的可分解性质,即将样本分为多个群组时,泰尔指数可以分别衡量组内差距与组间差距对总差距的贡献。假设包含n个个体的样本被分为K个群组,每组分别为\[g_k, (k=1,\cdots,K)\],第k组g_k中的个体数目为n_k,则有\[\sum_{k=1}^K n_k =n\],
y_i表示个体i的收入份额(占总收入的比例), y_k表示第k组的收入份额(占总收入的比例),记T_b与T_w分别为组间差距和组内差距,则可将泰尔指数分解如下:
\[T=T_b+T_w=\sum_{k=1}^K y_k \ln\big(\frac{y_k}{n_k /n} \big) + \sum_{k=1}^K y_k \Big(\sum_{i \in g_k} \frac{y_i}{y_k} \ln \frac{y_i / y_k}{1/n_k} \Big)\] (4)
在上式中组间差距T_b与组内差距T_w分别有如下表达式:
\[T_b=\sum_{k=1}^K y_k \ln\big(\frac{y_k}{n_k /n} \big) \] (5)
\[T_w = \sum_{k=1}^K y_k \Big(\sum_{i \in g_k} \frac{y_i}{y_k} \ln \frac{y_i / y_k}{1/n_k} \Big)\] (6)
另外,值得注意的是组内差距项分别由各组的组内差距之和构成,各组的组内差距的计算公式与样本总体的计算公式并无二致,只是将样本容量控制在第k组的个体数目n_k。
例2 还是例1的数据,计算组间差距T_b与组内差距T_w,验证泰尔指数T=T_b+T_w
主程序:
运行结果:
Tb= 0.0791
Tw= -3.7007e-17
说明:由于该例中,每个分组内各个个体的收入是相同的,故每个分组的组内差距为0,总的组内差距Tw也为0,结果中的-3.7007e-17是由于Matlab中的双精度误差造成的,相当于是0.
例3 修改例1中的数据,让各分组的个体收入不相等,继续测试上述算法。
原第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
主程序:
运行结果:
Tb= 0.0791
Tw= 0.0077
T= 0.0868
ans= 0.0868